【发布时间】:2017-09-10 03:46:34
【问题描述】:
我的政策文件的目标:
- 如果没有适当的标签,则阻止资源创建
- 要求为特定标签赋予特定值(例如,env 标签必须是 dev OR stg OR prd 等)
没有。 2 按预期工作;但是,如果用户创建了一个标签为空的 EC2 实例,或者只是忘记添加它,该策略仍然允许用户创建该实例。
我尝试了 null 运算符(引用 here),但它似乎不起作用。
另一种尝试是使用匹配 aws:tag-keys 值的条件(引用 here),但它似乎仅在使用 StringLike 比较运算符检查单个值时才有效
这是 Lambda 函数关闭开发实例的先决条件。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RequireEnvTags",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"ForAnyValue:StringNotEquals": {
"ec2:ResourceTag/env": [
"dev",
"stg",
"prd",
"dev-noshutdown"
]
}
},
"Resource": [
"*"
]
},
{
"Sid": "RequireDataSensitivity1",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"ForAnyValue:StringNotEquals": {
"ec2:ResourceTag/data-sensitivity": [
"public",
"internal",
"confidential",
"highly confidential"
]
}
},
"Resource": [
"*"
]
},
{
"Sid": "NullChecksDontSeemToWork0",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"Null": {
"ec2:ResourceTag/Name": "true"
}
},
"Resource": [
"*"
]
},
{
"Sid": "NullChecksDontSeemToWork1",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Condition": {
"Null": {
"ec2:ResourceTag/team": "true"
}
},
"Resource": [
"*"
]
}
]
}
【问题讨论】:
标签: amazon-ec2 null key amazon-iam policy