我们如何使用 AWS KMS 限制访问?

问题描述

有没有办法从不同的帐户导入密钥(我们称之为 ACC B:客户密钥),在那里我可以加密某些数据,例如,机密管理器或特定的 s3 存储桶,甚至我(ACC A ) 无法访问它?机密管理器或特定 S3 存储桶中的机密驻留在 ACC A 中。

解决方法

或者一个特定的 s3 存储桶,即使我(ACC A)也无法访问它?

对于这种情况,您可以考虑使用 CMK(客户管理的密钥),其中客户端可能具有必要的权限。 CMK 也可能来自不同的账户。 (如果我没记错的话)

https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-encrpytion-keys/

You want to grant cross-account access to your S3 objects.
 You can configure the policy of a custom CMK to allow 
access from another account.

S3 的另一个选择是使用客户端 S3 加密,但会产生一些开销 - 客户端需要自己存储和管理密钥。

我可以在哪里加密某些数据,例如机密管理器

我不确定 SecretManager 是否能够使用来自不同帐户的 KMS。

要加密任何数据,客户端仍然可以直接使用 KMS。 https://docs.aws.amazon.com/wellarchitected/latest/financial-services-industry-lens/use-envelope-encryption-with-customer-master-keys.html

在这种情况下,我宁愿建议使用 AWS Encryption API,它的作用与此相同,并强制执行最佳做法。