【问题标题】:AWS Retrieving Security Credentials from Instance MetadataAWS 从实例元数据中检索安全凭证
【发布时间】:2017-04-22 19:17:34
【问题描述】:

这不是“使用 API 调用获取我的 AWS 凭证”问题的重复项,因为我专门询问亚马逊在他们提供的示例中的含义。

我在看这里:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

我看到了这一点:

警告

如果您使用将实例元数据与 IAM 角色结合使用的服务,请确保在服务代表您进行 HTTP 调用时您不会公开您的凭证。可能暴露您的凭据的服务类型包括 HTTP 代理、HTML/CSS 验证器服务和支持 XML 包含的 XML 处理器。

以下命令检索名为 s3access 的 IAM 角色的安全凭证。

$ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access

这个 IP 地址来自哪里?什么是 169.254.169.254?它不可能是我的服务器,因为我没有在端口 80 上运行软件,我也不会在我的服务器上授予亚马逊别名。

但是我确实运行了上面的,它只是超时了。所以 IP 地址 169.254.169.254 并不是亚马逊主动运行的服务。那是什么?

有人理解亚马逊提供的这个例子吗?

【问题讨论】:

  • 您确实从 AWS 内部的 EC2 实例上查询了此地址,是吗?这仅适用于 EC2 内部。
  • 我一直在 EC2 实例中运行类似的调用 (curl 169.254.169.254/latest/meta-data/iam/security-credentials),但它实际上正在超时。大约30秒左右。这只是需要很长时间才能做出响应,还是有什么办法可以解决这个问题?
  • 是的...这个开箱即用的 IP 是我们真正没想到的东西...它是一个硬编码的元数据服务器 IP,正如人们在下面解释的...但是看在上帝的份上! AWS 至少应该清楚地记录它,因为我认为目标是避免未配置的 DNS 框之类的事情,但即便如此,请在文档中将其清除。

标签: amazon-web-services


【解决方案1】:

169.254 在链接本地地址空间内:https://en.wikipedia.org/wiki/Link-local_address

它通常用于许多 localhost/local-subnet 用例。亚马逊恰好将他们的元数据服务放在了 169.254.169.254,以便可以从 EC2 实例中查询。

curl http://169.254.169.254/latest/meta-data

应该总是返回一些东西,完整的http://169.254.169.254/latest/meta-data/iam/security-credentials/s3access 只会返回一些东西,如果你有一个 IAM 角色附加到你的实例,名为s3access

【讨论】:

  • 谢谢你,但这个问题已经回答过了。
  • 您之前可能已经回答过了,但我发现您的回答提供了更多信息。在这里学到了一些东西。谢谢
  • 这是展示如何做到这一点的最清晰的帖子:rhynorater.github.io/AWS-Metadata-Identity-Credentials
【解决方案2】:

169.254.169.254 是 AWS 元数据服务的地址。您可以从 EC2 服务器查询此地址以获取有关该服务器的信息。可以通过这种方式获得的元数据记录在 here 中。

您是说当您从 EC2 服务器运行 curl 命令时它会超时?

【讨论】:

    猜你喜欢
    • 2018-11-22
    • 2021-01-11
    • 2018-04-18
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    相关资源
    最近更新 更多