我正在创建IAM策略以限制对EC2资源的访问。 我在 CreateVolume 动作中苦苦挣扎。 我有以下政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCreateTaggedVolumes",
"Effect": "Allow",
"Action": "ec2:CreateVolume",
"Resource": "arn:aws:ec2:*:*:volume/*",
"Condition": {
"StringEquals": {
"aws:RequestTag/Zone": "MyZone"
},
"ForAllValues:StringEquals": {
"aws:TagKeys": [
"Name",
"Zone"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:*:*:volume/*",
"Condition": {
"StringEquals": {
"ec2:CreateAction": "CreateVolume"
}
}
}
]
}
我也有一些策略,允许用户仅在“ MyZone”子网中创建EC2实例,并将带有标签:Zone = MyZone的卷附加到带有标签:Zone的 instances = MyZone。
问题是使用此方法可能会被利用: 用户可以从任何快照(例如管理员创建的快照)创建卷,然后将其附加到他/她自己的EC2 实例 。但理想情况下,他只需要能够从带有特定标签的快照创建卷。
并且AWS仅为 CreateVolume 操作提供 volume 资源。因此,我无法修改上述策略以仅允许从具有特定标签的快照或使用任何其他与快照相关的条件的卷创建。
有什么解决方法吗?