【发布时间】:2018-10-13 00:39:13
【问题描述】:
我有一个使用案例,我正在使用 CloudFormation 创建一组资源,例如 EC2 实例和 S3 存储桶。我看到 Cloudformation 将标签添加到 EC2 实例和 S3 存储桶中,标签的格式为
aws:cloudformation:stack-name: <stack-name>
我正在尝试编写具有基于标签的权限的 IAM 策略。该政策如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowToDescribeAll",
"Effect": "Allow",
"Action": [
"ec2:*",
"s3:*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/aws:cloudformation:stack-name": "mystackname"
}
}
},
{
"Sid": "AllPermissions",
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": "*"
}
]
}
现在,当我尝试使用 CLI 执行 S3 put 对象 API 调用时,我看到 AccessDenied 权限。当我尝试终止具有该特定标签的实例时也是如此。我找不到任何特定的 IAM 文档,其中提到我们不能在 IAM 策略中使用以 aws: 为前缀的标签。有人知道问题可能是什么吗?还是上下文键aws:ResourceTag 无效?
【问题讨论】:
-
您需要在云形成中使用内部函数:docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…
-
@Rajesh:对不起,我不明白你的评论。使用内在函数如何帮助我克服这个问题?
标签: amazon-web-services amazon-s3 amazon-ec2