我想使用相对较新的S3默认加密属性来确保写入S3存储桶中特定前缀的所有对象都已加密。在这种情况下,我需要能够将不同AWS账户拥有的KMS密钥指定为默认密钥。这可能吗?如果是这样的话:
如何指定密钥(我最初尝试使用控制台 Terraform是最终目标),
提供AWS S3就足够了 是否允许使用外资KMS密钥进行加密?或者是 上传文件的角色还需要权限吗?
答案 0 :(得分:3)
是的,这是可能的。对于以下步骤,我们假设S3存储桶位于由您控制的帐户A中,而KMS密钥位于由客户控制的帐户B中,并且将对象上传到S3的API调用是由IAM调用程序进行的在帐户A中指定(这是我对您的问题的理解,如果我错了,请纠正我)。步骤:
帐户B:
Key Users
的权限需要包括一个外部AWS账户(账户A)。要在创建密钥后在控制台上执行此操作,只需选择密钥,请转到Key Users
,External accounts
部分,单击Add external account
,然后从账户中粘贴12位AWS账户ID A并保存。结果将类似于arn:aws:iam::ACCOUNT_ID:root
。这样,便可以访问帐户A的密钥管理员,并且他们可以为帐户A中定义的用户/角色授予对该帐户的权限。在KMS密钥ARN上做一个记录,下一步将需要它。帐户A:
AWS-KMS
,选择Custom KMS ARN
,然后从帐户B中创建的KMS密钥中粘贴ARN。根据您的编写,这与您所写的不完全相同。想要,所以下一步是:最后一步:
如果您的客户曾经想“锁定”数据的使用,则他们要做的就是暂时禁用密钥(使用KMS API或AWS控制台)和/或安排密钥删除(但这是无法撤消。