0

是否可以从 AWS IAM 策略中的显式拒绝中排除卷

{
      "Sid": "DenyCreationOfUnencryptedEBSVOL",
      "Effect": "Deny",
      "Action": "ec2:CreateVolume",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "ec2:Encrypted": "false"
        }
      }
    },

这会阻止任何未加密的卷创建。

考虑使用条件组合将只允许在值的任何位置包含名称值的卷。

“测试_未加密”

{
      "Sid": "DenyCreationOfUnencryptedEBSVOL",
      "Effect": "Deny",
      "Action": "ec2:CreateVolume",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "ec2:Encrypted": "false"
        },
        "StringNotLike": {
          "aws:ResourceTag/Name":"*Test_Unencrypted*"
        }
      }
    },

是否可以像上面那样从拒绝中排除单个资源?

4

1 回答 1

3

您可以使用密钥NotResource。例子:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Deny",
    "Action": "s3:*",
    "NotResource": [
      "arn:aws:s3:::HRBucket/Payroll",
      "arn:aws:s3:::HRBucket/Payroll/*"
    ]
  }
}

这会将拒绝操作应用于除上述对象之外的所有资源。

示例取自https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_notresource.html

编辑:我现在看到您可能还意味着排除附加了特定标签的资源。因此,当存在 test_unencrypted 标签时,您允许创建它。我认为您也可以为此使用StringNotEqualswithaws:RequestTag/MyTagKey: MyTagValue条件键。然后,只有提供标签才能创建卷。请注意,此条件仅适用于设置或删除标签的 api 调用(CreateVolume 支持此)

于 2021-09-21T19:33:22.157 回答