2

如何使用来自不同账户的 KMS CMK 通过 AWS Secret Manager 启用静态加密?

4

1 回答 1

2

AWS Secret manager无法使用 AWS 管理控制台使用跨账户密钥加密,您必须使用 AWS CLI

如果您想创建密钥并将其共享给另一个帐户

首先创建具有正确访问共享帐户的密钥策略的 KMS CMK 密钥。有很多关于这个的教程。

在这里,我们授予对 AccountA 根目录的密钥访问权限。此外,我们还限制了密钥用于自动缩放和 secretsmanager。

{
    "Sid": "Allow use of the key for SSM only",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::AccountA:root"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:ViaService": [
                "secretsmanager.*.amazonaws.com",
                "autoscaling.*.amazonaws.com"
            ]
        }
    }
},
{
    "Sid": "Allow reading of key metadata",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::AccountA:root"
    },
    "Action": "kms:DescribeKey",
    "Resource": "*"
},
{
    "Sid": "Allow attachment of persistent resources",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::AccountA:root"
    },
    "Action": [
        "kms:CreateGrant",
        "kms:ListGrants",
        "kms:RevokeGrant"
    ],
    "Resource": "*"
}

现在 Account A root 必须授予用户或角色访问权限才能使用密钥。授予访问权限的典型 IAM 策略如下所示。此策略应与账户 A 中的角色或用户相关联。

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "VisualEditor2",
        "Effect": "Allow",
        "Action": [
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*"
        ],
        "Resource": [
            "arn:aws:kms:<KEY>"
        ]
    }
]

}

现在您已经准备好使用 KMS ket,因此请继续执行以下步骤。

如果您已经拥有来自其他账户的 KMS CMK

首先检查密钥是否可以访问

aws kms describe-key --key-id arn:aws:kms:<KEY_ID>

如果您没有得到响应,则意味着您无权访问密钥,请检查密钥策略并确保正确授予所有访问权限。

如果您有权访问密钥,则使用 AWS CLI 来使用密钥。

重新分配给现有密钥

aws secretsmanager update-secret --secret-id <secret id> --kms-key-id <KMS key id>

或者用密钥创建一个新的秘密

aws secretsmanager create-secret --name <NameOfTheSecret> \
--description "Test Description" \
--kms-key-id <KMS Key Id>
于 2019-06-05T06:05:57.163 回答