有没有办法在创建EC2实例时强制执行标记?我,用户无法在没有特定标签的情况下启动实例。我可以根据标签使用该标签来控制特定实例吗?
答案 0 :(得分:0)
您可以使用Amazon Config实现此目的。
urtc.tuple2seconds
您不会阻止某人创建没有标记的实例,但您可以在Config仪表板中看到它已标记,或者您可以触发SNS操作通过电子邮件通知您。
答案 1 :(得分:0)
是的,您必须使用“ec2:CreateAction”条件来限制创建标记时创建资源(实例/卷)和“aws:RequestTag”条件以控制创建资源所需的标记键值
答案 2 :(得分:0)
在为客户工作时,我有一个类似的用例。答案是是可以!
您可以强制用户使用IAM策略应用特定的标签。
例如,您可以将一个策略附加到拒绝 ec2:RunInstances 操作的用户/角色(最好是角色),条件是检查标签Key和Value是否不符合您的期望。由于此策略使用双重否定 Deny 和 StringNotLike ,因此可能会造成一些混乱,但是我相信这样可以更轻松地实施标记,因为您可以将此策略添加到拥有管理员政策,并且仍然可以使用。
{
"Sid": "ConditionalEC2creationName",
"Effect": "Deny",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringNotLike": {
"aws:RequestTag/Name": "*"
}
}
},
{
"Sid": "ConditionalEC2creationEnv",
"Effect": "Deny",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringNotLike": {
"aws:RequestTag/Env": "*"
}
}
}
不幸的是,由于我没有时间对其进行优化,因此我无法使其在单个块中运行。我认为这与 ForAllValues , ForAnyValue 有关。
ForAllValues –如果请求中的每个指定键值与策略中的至少一个值匹配,则条件返回true。如果请求中没有匹配的键,或者键值解析为空数据集(例如,空字符串),则它也会返回true。
ForAnyValue –如果请求中的任一键值与策略中的任何条件值匹配,则条件返回true。如果没有匹配的键或数据集为空,则条件返回false。
答案 3 :(得分:0)
是的,很有可能使用标签值中的选项进行EC2创建,请尝试一下
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Deny",
"Action": "ec2:RunInstances",
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringNotLike": {
"aws:RequestTag/Env": [
"Dev",
"Prod"
]
}
}
}
]
}