2

我目前正在 AWS DynamoDB 上为被认为敏感的表上的各个列设置加密。根据我的研究,我认为最好的方法可能是使用 AWS KMS。由此引发了一个(也许是非常基本的)关于这样做的基本工作原理的问题。

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

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

4

1 回答 1

3

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

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

所以一般来说,如果你给用户提供最小权限(不允许所有人访问 KMS),同时通过 MFA 保证 root 帐户的安全,攻击者访问 KMS 将非常困难。

于 2017-07-07T17:43:06.420 回答