是的,可以在不同的 AWS 账户中创建 KMS 副本密钥。以下是一个 Python 代码示例,展示如何通过 Boto3 在一个账户中创建主密钥,然后在另一个账户中通过主密钥创建 KMS 副本密钥:
首先,在主账户中创建主密钥:
import boto3
client = boto3.client('kms')
response = client.create_key(Description='Primary Key')
key_id = response['KeyMetadata']['KeyId']
然后,在另一个账户中使用主密钥 ID 创建副本密钥:
import boto3
client = boto3.client('kms')
replication_key_policy = {
'Version': '2012-10-17',
'Statement': [{
'Sid': 'Enable IAM User Permissions',
'Effect': 'Allow',
'Principal': {'AWS': 'arn:aws:iam::123456789012:root'},
'Action': 'kms:*',
'Resource': '*'
}]
}
destination_region = 'us-west-2'
response = client.replicate_key(
KeyId='arn:aws:kms:us-east-1:ACCOUNT-ID:alias/PrimaryKeyAlias',
ReplicaRegion=destination_region,
Policy=json.dumps(replication_key_policy)
)
key_id = response['ReplicaKeyMetadata']['KeyId']
在上面的示例代码中,AccountId
是目标账户的 AWS 账户 ID。PrimaryKeyAlias
是在主账户中为主密钥创建的别名。
这里,我们在源区域的账户中创建了新的 KMS 主密钥,并使用主密钥 ID 在目标区域的账户中创建了副本密钥。
以上是在不同的账户中创建 KMS 副本密钥的示例代码。