0

我有这个服务控制策略。

{
    "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": [
                        "?*"
                    ]
                }
            }
        }
    ]
}

而且我希望它强制执行一个规则,即标签是使用 of 创建的keyName并且必须与value我在单独的策略中定义的列表关联,否则资源创建应该失败。

我不确定我做错了什么,因为仍然在没有key Name.

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

有没有办法强制所有ec2可标记资源在创建时必须具有keyofName和关联值?

4

1 回答 1

1

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

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

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

于 2021-05-11T19:59:23.690 回答