seb*_*ian 7 amazon-web-services amazon-kms
我有一个 s3 文件夹,其中包含加密的对象。它使用 AWS KMS 托管密钥而不是自定义密钥进行加密。我需要另一个 AWS 账户才能从此存储桶复制文件。据我所知,我无法跨帐户共享此 KMS 密钥。我也无法轻松更改此存储桶以使用自定义密钥,因为这会对客户产生影响。这里有什么好的解决办法吗?
我对我的两个帐户做了一些实验。
我发现通过使用存储桶策略,您只能启用对其他帐户的访问:
但是,如果您使用 AWS Managed CMK,则存储桶策略不适合。
相反,您可以使用跨账户角色启用对存储桶和对象的访问。我验证它有效。
在 Acc A(带有AWS-KMS加密存储桶的 Acc A)中,我创建了一个名为 的角色kmss3bucket:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "kms:Decrypt",
"Resource": "arn:aws:kms:us-east-1:xxxxxx:key/b811de9a-150a-4d89-8a9a-03e1b878737d"
}
]
}
Run Code Online (Sandbox Code Playgroud)
Acc B 中的用户使用 STS 担任该角色:
aws sts assume-role --role-arn arn:aws:iam::xxxxx:role/kmss3bucket --role-session-name cross-account-s3
Run Code Online (Sandbox Code Playgroud)
这将生成新的临时 aws 凭证。使用凭证,Acc B 将能够从 Acc A 复制使用 AWS-KMS 加密的对象。
| 归档时间: |
|
| 查看次数: |
6789 次 |
| 最近记录: |