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

时间:2016-12-07 18:06:46

标签: amazon-web-services

这不是“使用API​​调用获取我的AWS凭据”这一问题的重复,因为我特别询问亚马逊在他们给出的示例中的含义。

我在这里看:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

我看到了这一点:

Warning

If you use services that use instance metadata with IAM roles, ensure that you don't expose your credentials when the services make HTTP calls on your behalf. The types of services that could expose your credentials include HTTP proxies, HTML/CSS validator services, and XML processors that support XML inclusion.

The following command retrieves the security credentials for an IAM role named s3access.

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

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

但我确实运行了上述内容,它只是超时了。因此,IP地址169.254.169.254不是Amazon正在运行的服务。那是什么?

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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只会返回一些内容。