AWS 从实例元数据中检索安全凭证

LRK*_*RK9 6 amazon-web-services

这不是问题“使用 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

小智 13

169.254 位于链路本地地址空间内: https //en.wikipedia.org/wiki/Link-local_address

它通常用于许多本地主机/本地子网用例。Amazon 恰好将他们的元数据服务放在 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.

  • 您可能不久前已经回答过,但我发现您的信息更丰富。在这里学到了一些东西。谢谢 (3认同)

Mar*_*k B 7

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

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