【问题标题】:Get AWS Account ID from instance从实例获取 AWS 账户 ID
【发布时间】:2018-10-12 10:54:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    即使您的实例无法访问 Internet,您也可以访问该 URL。获取 id 的另一种方法是使用 aws cli。 get-caller-identity 命令返回帐户、用户 ID 和 ARN。您需要确保您的 EC2 实例有权调用它。

    aws sts get-caller-identity

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

    【讨论】:

    • 让我试试这个
    • 像魅力一样工作!!!我不知道是否也可以在离线模式下访问元数据 URL
    • 很高兴它起作用了,您也可以在使用 AWS 开发工具包进行编码时调用它。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      • 2019-05-09
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      相关资源
      最近更新 更多