AWS SCP Tag Enforcer 失败

AWS SCP Tag Enforcer failing

我有这个服务控制策略。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyEC2ActionsWithoutTags",
            "Effect": "Deny",
            "Action": [
                "ec2:RunInstances",
                "ec2:CreateVpc”,
                "ec2:CreateSecurityGroup",
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:vpc/*”,
                "arn:aws:ec2:*:*:security-group/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "aws:RequestTag/Name": [
                        "?*"
                    ]
                }
            }
        }
    ]
}

而且我希望它执行一条规则,即标签是使用 Namekey 创建的,并且必须具有来自我在单独的列表中定义的列表的关联 value策略否则资源创建应该失败。

我不确定我做错了什么,因为创建安全组时仍然没有 key Name

VPC 和 EC2 实例创建失败,没有预期的 Name,但我觉得奇怪的是安全组。

有没有办法强制所有 ec2 可标记资源 必须 具有 keyName 以及创建时的关联值时间?

不要尝试使用 SCP 强制执行标签,标签策略很好,但是 SCP 强制执行标签是危险的...我们尝试过,terraform 和其他服务破坏了 api 工作流程并最终阻止了您的团队从生产力。

例如,如果您设置了一个 EMR 集群(由 ec2 支持),则不会通过 EMR 控制台将标签传递到 EC2 中的子资产和您编写的 SCP以上会破坏它。

我们放弃了使用 SCP 强制执行它,并正在寻找更强大的解决方案。