限制谁可以根据标签注销 AMI
Restricting who can deregister AMI based on a Tag
是否可以限制谁可以通过 IAM 注销 AMI?我要使用的标准是附加到图像资源的标签。标签为 "ReleaseStage",值为 "Beta"、"RC" 和 "GA"... 不应允许开发人员组中的 IAM 用户注销 "GA" 标记为 AMI。
这是否可行?如果可行,我需要什么样的 IAM 政策文件才能实现?
AWS 文档有一个示例,显示在
中的策略条件中使用标签
在给定的示例中,相关行是
"Condition": {"StringEquals": {"ec2:ResourceTag/volume_user": "${aws:username}"}}
其中 volume_user
是示例中标记的名称,表达式 ${aws:username}
是与之比较的值。
条件记录从这里开始:
你的情况看起来像
"Condition": {"StringEquals": {"ec2:ResourceTag/ReleaseStage": "GA"}}
并且您将在效果为 "deny" 的策略中使用它,将该策略附加到 "developers" 组。政策本身看起来像这样:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "ec2:DeregisterImage",
"Condition": {"StringEquals": {"ec2:ResourceTag/ReleaseStage": "GA"}}
}
]
}
根据官方 documentation,"Condition" 不支持操作 "ec2:DeregisterImage"。 @Thomas Dickey 提出的解决方案对我不起作用,我还没有找到任何其他解决方案来做到这一点。
是否可以限制谁可以通过 IAM 注销 AMI?我要使用的标准是附加到图像资源的标签。标签为 "ReleaseStage",值为 "Beta"、"RC" 和 "GA"... 不应允许开发人员组中的 IAM 用户注销 "GA" 标记为 AMI。
这是否可行?如果可行,我需要什么样的 IAM 政策文件才能实现?
AWS 文档有一个示例,显示在
中的策略条件中使用标签在给定的示例中,相关行是
"Condition": {"StringEquals": {"ec2:ResourceTag/volume_user": "${aws:username}"}}
其中 volume_user
是示例中标记的名称,表达式 ${aws:username}
是与之比较的值。
条件记录从这里开始:
你的情况看起来像
"Condition": {"StringEquals": {"ec2:ResourceTag/ReleaseStage": "GA"}}
并且您将在效果为 "deny" 的策略中使用它,将该策略附加到 "developers" 组。政策本身看起来像这样:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "ec2:DeregisterImage",
"Condition": {"StringEquals": {"ec2:ResourceTag/ReleaseStage": "GA"}}
}
]
}
根据官方 documentation,"Condition" 不支持操作 "ec2:DeregisterImage"。 @Thomas Dickey 提出的解决方案对我不起作用,我还没有找到任何其他解决方案来做到这一点。