我有我想要允许使用"type“标签的AMIs。
这是我尝试过的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:RunInstances",
"ec2:StartInstances"
],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/type": "permitted_amis"
}
},
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances",
"ec2:CreateTags"
],
"Resource": [
"*"
]
}
]
}当我试图从其中一个非盟驻苏特派团启动一个实例时,我被拒绝了许可。
发布于 2014-09-01 13:01:02
问题是您不再具有EC2 :RunInstance权限,因为您将该权限与条件一起添加,因此它会重写--它将使用该标记查找一个EC2实例;看到您在资源:“*”上只有“EC2:DescribeInstance”;
添加两个单独的语句,并为每个语句指定确切的资源:
示例:(取自http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#ex5)
以下策略允许用户仅使用与其关联的指定标记"department=dev“的AMI启动实例。用户不能使用其他AMI启动实例,因为第一个语句的条件元素要求用户指定一个带有此标记的AMI。用户也不能启动子网,因为策略不为子网和网络接口资源授予权限。然而,他们可以进入EC2-经典版。第二个语句使用通配符使用户能够创建实例资源,并要求用户指定密钥对project_keypair和安全组sg-1a2b3c4d。用户仍然能够在没有密钥对的情况下启动实例。
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": [
"arn:aws:ec2:region::image/ami-*"
],
"Condition": {
"StringEquals": {
"ec2:ResourceTag/department": "dev"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:RunInstances",
"Resource": [
"arn:aws:ec2:region:account:instance/*",
"arn:aws:ec2:region:account:volume/*",
"arn:aws:ec2:region:account:key-pair/project_keypair",
"arn:aws:ec2:region:account:security-group/sg-1a2b3c4d"
]
}
]
}https://serverfault.com/questions/620533
复制相似问题