从实例获取AWS账户ID

时间:2018-10-12 10:55:00

标签: amazon-web-services amazon-ec2

我们有一个需求,我们需要从在EC2实例上运行的代码中验证AWS accountID。我发现的一种方法是通过以下URL从AWS元数据IP获取此信息:

http://169.254.169.254/latest/dynamic/instance-identity/document

但是如果我无法访问互联网怎么办。是否可以在不对任何外部URL进行ping操作的情况下从Instance中保存并检索它。

2 个答案:

答案 0 :(得分:1)

即使您的实例没有Internet访问权限,您也可以访问该URL。获取ID的另一种方法是使用aws cli。 get-caller-identity命令返回帐户,用户标识和ARN。您将要确保您的EC2实例具有调用此权限。

aws sts get-caller-identity

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:GetCallerIdentity", "Resource": "*" } ] }

答案 1 :(得分:0)

  

但是如果我无法访问互联网怎么办。是否可以在不对任何外部URL进行ping操作的情况下从Instance中保存并检索它。

这不是外部IP,此IP是ec2实例的本地元数据服务。它没有通过互联网。使用它来检索帐户ID是完全可以接受的,实际上,亚马逊为您提供了使用其各种SDK从实例检索此类信息所需的一切。

quasar指出,替代解决方案是使用aws sts get-caller-identity,但这将需要对实例角色的权限才能工作。