复制和加密 AMI 所需的 AWS 权限

smi*_*tan 4 amazon-ec2 amazon-web-services ec2-ami amazon-iam aws-kms

我正在尝试将 AMI 从一个 AWS 账户复制到另一个账户,并使用目标账户中的 CMK 对其进行加密。

CMK 上的关键策略是:

{
  "Version": "2012-10-17",
  "Id": "key-default",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::TARGET-ACCOUNT-NUMBER:root"
      },
      "Action": "kms:*",
      "Resource": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我在目标账户中创建了一个具有以下策略的角色:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:ListAliases",
                "kms:GenerateDataKey",
                "kms:DescribeKey",
                "kms:Encrypt",
                "ec2:CopyImage"
            ],
            "Resource": "*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

与此角色相关的还有AmazonEC2ReadOnlyAccess策略。

如果我登录到 root 账户并承担目标账户中的角色,然后尝试使用我的 CMK 复制 AMI,它会失败并显示Snapshot snap-abc123xyz is in an unexpected state: error. 快照上没有其他信息来指示根本原因。

如果我将AdministratorAccess策略附加到 AMI 复制的角色,那么它一定是权限问题。

有人可以提供复制带有加密的 AMI 所需的权限列表吗?

sud*_*udo 5

来自此博客:https : //aws.amazon.com/blogs/aws/new-cross-account-copying-of-encrypted-ebs-snapshots/

“目标账户 – 目标账户中的 IAM 用户或角色需要能够对与原始快照关联的密钥执行 DescribeKey、CreateGrant 和 Decrypt 操作。用户或角色还必须能够执行 CreateGrant、Encrypt、对与调用 CopySnapshot 关联的密钥进行解密、DescribeKey 和 GenerateDataKeyWithoutPlaintext 操作。”

另外,我相信这就是您要查找的内容:https : //aws.amazon.com/blogs/security/how-to-create-a-custom-ami-with-encrypted-amazon-ebs-snapshots-and-与其他账户和地区共享/