我创建了一个 EC2 实例,其实例配置文件仅对一个存储桶具有读取访问权限。我的理解是,密钥和访问密钥将由亚马逊轮换,我不需要在我的应用程序或机器中保留任何密钥。但是,我可以通过登录实例并访问 URL 来获取访问密钥、私有密钥和授权。 http://169.254.169.254/latest/meta-data/iam/security-credentials/
,返回角色名称,http://169.254.169.254/latest/meta-data/iam/security-credentials/<role_name>
返回如下所示的 JSON 文本。
{
"Code" : "Success",
"LastUpdated" : "2014-02-26T06:54:56Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "SOME_ACCESS_KEY",
"SecretAccessKey" : "SOME_SECRET_KEY",
"Token" : "A_REALLY_BIG_TEXT",
"Expiration" : "2014-02-26T13:00:45Z"
}
现在,我甚至可以使用它们来访问 EC2 实例之外的允许资源,例如使用 BasicSessionCredentials
并且正如我所看到的,此实例的有效期为 6 小时。有没有办法让它在 15 分钟内过期或其他一些值,比如当我们创建临时凭证时。
这是在过期之前更新的,不知道多久更新一次,但我看到它以大约 1 小时的间隔更新,我可以以某种方式更改此更新频率吗?
AWS 文档对此进行了解释,此处和此处
临时安全凭证在过期之前一直有效,并且无法撤销。但是,由于每次使用临时安全凭证发出 AWS 请求时都会评估策略,因此您可以在颁发凭证后修改临时凭证的访问权限。