我有一个S3存储桶,我想根据用于访问它的凭据的年龄限制访问权限。例如,如果用于访问存储桶的令牌的使用期限已超过X天,则我想拒绝访问。我该如何实现?这项政策-
{
"Version": "2012-10-17",
"Statement": {
"Sid": "RejectLongTermCredentials",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::${bucket}“,
"arn:aws:s3:::${bucket}/*”
],
"Condition": {
aws:TokenIssueTime > 90 days
}
}
}
是否可以计算令牌的age
?任何帮助将不胜感激!
答案 0 :(得分:0)
您所描述的内容听起来与Amazon S3 pre-signed URLs非常相似。
预先签名的URL 提供了对私有对象的限时访问权限。
想象一下照片共享应用程序。它将像这样工作:
<img>
标签生成链接到照片的HTML页面)时,该应用将:
Access Denied
错误只需两行代码即可生成一个预签名的URL,并且不需要对S3进行API调用。
与您的问题不同,上述过程不需要使用安全令牌服务(STS)令牌(需要链接到IAM用户或IAM角色)。它旨在用于应用而不是IAM用户。