我想阻止用户在没有带有“project”键的标签时创建 S3 存储桶。 遵循政策是行不通的。无论如何它都会阻止创建
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyCreationWithoutProjectTag",
"Effect": "Deny",
"Action": "s3:CreateBucket",
"Resource": "*",
"Condition": {
"StringNotLike": {
"aws:RequestTag/project": "*"
}
}
}
]}
EC2 的标签强制执行 - AWS 和 对 AWS 资源强制标记
没有帮助。
转到 AWS Organizations 中的策略并选择标签策略。如果之前未启用,请务必启用它。然后制定这样的政策。您可以为此使用给定的 json 编辑器。
{
"tags": {
"Project": {
"tag_key": {
"@@assign": "Project"
},
"enforced_for": {
"@@assign": [
"s3:bucket"
]
}
}
}
}
在这里,我为项目标签创建了标签策略。创建标签策略后,请确保将其附加到目标 OU/帐户。
此后,再次转到策略并选择服务控制策略 (SCP) 如果它不可用,请确保启用它。在其中创建一个新的 SCP 策略并添加以下策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyS3CreationSCP1",
"Effect": "Deny",
"Action": [
"s3:CreateBucket"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:RequestTag/Project": "true"
}
}
}
]
}
在这里我创建了 SCP 来强制执行之前的标签策略。创建 SCP 后,请确保将其附加到目标 OU/帐户。