强制执行新 EBS 卷的 AWS IAM 策略已加密

tkw*_*rgs 7 amazon-ebs amazon-web-services amazon-iam

AWS Key Management Service Best Practices 白皮书中关于使用 Amazon EBS 进行静态数据加密的部分中,它指出:

有两种方法可以确保 EBS 卷始终加密。您可以CreateVolume 通过 IAM 策略验证作为上下文一部分的加密标志是否设置为“true”。如果标志不是“true”,则 IAM 策略可以阻止个人创建 EBS 卷

我怎样才能做到这一点?我想这个政策会是这样的:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1509465260000",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateVolume"
      ],
      "Condition": {
        "Bool": {
          "ec2:Encrypted": "true"
        }
      },
      "Resource": [
        "*"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

根据白皮书和文档,密钥Bool上的条件ec2:Encrypted最有意义,但是在尝试创建加密卷时,我的访问被拒绝。

我在声明中遗漏了什么?

Joh*_*ley 5

您将需要额外的权限来创建加密卷:

1) ec2:描述可用区

2) 公里数:*

注意:我没有深入了解 KMS 以获取使用 KMS 加密密钥的最低权限。如果您想从快照创建卷,则需要添加ec2:DescribeSnapshots.

政策示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAvailabilityZones"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Stmt1509465260000",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateVolume"
            ],
            "Condition": {
                "Bool": {
                    "ec2:Encrypted": "true"
                }
            },
            "Resource": [
                "*"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢您发布最终解决方案。这将帮助其他人更好地了解 IAM 政策。最小权限原则对于云安全非常重要。 (2认同)