使用 AWS KMS 加密静态数据的目的是什么?

What is the purpose of encrypting data at rest with AWS KMS?

我目前打算在 AWS DynamoDB 上为 table 上被视为敏感的各个列设置加密。根据我的研究,我认为执行此操作的最佳方式可能是使用 AWS KMS。由此产生了一个(也许是非常基本的)关于这样做的基本工作原理的问题。

我想,我对这些数据进行加密的真正目的是防止人们通过受感染的 AWS 帐户访问我的数据(也许 AWS 本身也被感染了,但我认为这是次要的)。但是,如果我的 AWS 帐户遭到入侵......攻击者是否无法访问我的 KMS 密钥(不是直接访问,而是使用 API 加密和解密数据的能力?)

我敢肯定,这是一个非常基本的问题,但我觉得我的知识有这么大的漏洞,我无法继续前进。

拥有 KMS 的目的是保护您的数据,同时密钥对您的应用程序永远不可见,因为密钥永远不会离开 KMS。您将数据提交给 AWS KMS,以便使用您控制的密钥进行加密或解密。您可以对这些密钥设置使用策略,以确定哪些用户可以使用它们来加密和解密数据。使用这些密钥的所有请求都记录在 AWS CloudTrail 中,因此您可以了解谁在何时使用了哪个密钥。

有了 KMS,攻击者就不可能获得加密密钥。即使攻击者持有您的 AWS 账户(假设他获得管理员访问权限和 KMS 访问权限)并使用 KMS 解密消息,您也可以通过访问这些密钥的日志看到这是必要的安全步骤识别这些威胁。

所以一般来说,如果您为用户提供最小权限(不允许所有人访问 KMS),同时使用 MFA 保证根帐户的安全,攻击者将很难访问 KMS。