AWS CloudFormation 模板:使用条件来确定范围

AWS CloudFormation template: using conditions to scope

我正在尝试使用条件来确定 CloudFormation 模板中资源的范围,但我没有成功。我尝试使用 "Deny: NotPrincipal",如下所示,但由于错误 "Policy document should not specify a principal",不允许该操作。非常感谢任何有关如何将 ec2:CopyImage 的范围限定为特定角色的建议。谢谢

        {
          "Sid": "DenyCopyAMI",
          "Effect": "Deny",
          "NotPrincipal": {
            "AWS": [
              "arn:aws:sts::*:assumed-role/EngineeringRole/*",
              "arn:aws:sts::*:assumed-role/PlatformRole/*",
              "arn:aws:iam::*:role/EngineeringRole/*",
              "arn:aws:iam::*:role/PlatformRole/*"
            ]
          },

这是 AWS 在 restricting access to a role 上发表的一篇文章。

使用iam get-role找到RoleId并将其添加到aws:userId

下的策略条件
aws iam get-role --role-name Test-Role

IAM 政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "ec2:CopyImage",
            "Resource": "*",
            "Condition": {
                "StringNotLike": {
                    "aws:userId": [
                        "AROAJPXXXXXJE5XOMQARS:*",
                        "AROAJPXXXXXJE5XOMQARS:*",
                        "AROAJXXXXXXV3EZVH2W5A:*",
                        "AROAJXXXXXXBH4XK552KI:*"
                    ]
                }
            }
        }
    ]
}