我有多个亚马逊网络服务账户,但我不记得这个EC2实例是在哪个亚马逊网络服务账户上创建的,有什么最好的方法可以在更短的时间内找出答案吗?
注意:我需要知道帐户DNS名称或别名。(不是帐号)
发布于 2019-12-05 15:32:29
如果您有权访问该实例,则可以使用Instance metadata API
[ec2-user ~]$ curl http://169.254.169.254/latest/dynamic/instance-identity/document它返回带有accountId字段的json。
发布于 2019-12-05 17:18:56
如果您为所有帐户配置AWS CLI,则可以获取帐户ID、ARN和用户ID。该脚本执行以下操作。
./script.sh 52.x.x.xscript.sh
#!/bin/bash
INSTANCE_IP="${1}"
if [ -z "${INSTANCE_IP}" ]; then
echo "pls provide instance IP"
echo "./scipt.sh 54.x.x.x"
exit 1
fi
PROFILE_LIST=$(grep -o "\\[[^]]*]" < ~/.aws/credentials | tr -d "[]")
for PROFILE in $PROFILE_LIST; do
ALL_IPS=$(aws ec2 describe-instances --profile "${PROFILE}" --query "Reservations[].Instances[][PublicIpAddress]" --output text | tr '\r\n' ' ')
echo "looking against profile ${PROFILE}"
for IP in $ALL_IPS; do
if [ "${INSTANCE_IP}" == "${IP}" ]; then
echo "Instance IP matched in below account"
aws sts get-caller-identity
exit 0
fi
done
done
echo "seems like instance not belong to these profile"
echo "${PROFILE_LIST}"
exit 1发布于 2022-02-28 02:19:06
循环遍历帐户
循环遍历区域
也要注意lightsail!
我想出了以下几点,并对我有所帮助。我没有排除没有lightsail的地区
for region in `aws ec2 describe-regions --output text --query 'Regions[*].[RegionName]' --region eu-west-1` ; do \
echo $region; \
aws ec2 describe-network-interfaces --output text --filters Name=addresses.private-ip-address,Values="IPv4 address" --region $region ; \
aws lightsail get-instances --region eu-west-1 --output text --query 'instances[*].[name,publicIpAddress]' --region $region; \
donehttps://stackoverflow.com/questions/59190030
复制相似问题