我目前正在为AWS DynamoDB设置加密,以确定被视为敏感的表上的各个列。根据我的研究,我已经确定使用AWS KMS可能是最好的方法。从这个问题出发(可能是非常基本的)关于这样做的基本工作的问题。
我认为,加密这些数据的真正目的是阻止人们通过受感染的AWS账户访问我的数据(也许AWS本身就受到了损害,但我认为这是次要的)。但是,如果我的AWS账户遭到入侵......攻击者是否可以访问我的KMS密钥(不是直接访问,而是使用API加密和解密数据的能力?)
这是一个非常基本的问题,我敢肯定,但我觉得我无法向前迈进这个大洞。
答案 0 :(得分:1)
拥有KMS的目的是保护您的数据,而密钥永远不会被您的应用程序看到,因为密钥永远不会离开KMS。您将数据提交到AWS KMS,以便在您控制的密钥下进行加密或解密。您可以在这些密钥上设置使用策略,以确定哪些用户可以使用它们来加密和解密数据。所有使用这些密钥的请求都记录在AWS CloudTrail中,这样您就可以了解谁在何时使用了哪个密钥。
拥有KMS使攻击者无法获得加密密钥。即使攻击者暂停您的AWS账户(假设他获得管理员访问权限和KMS访问权限)并使用KMS解密邮件,您也可以通过日志访问这些密钥,这是必要的安全步骤。识别这些威胁。
因此,一般来说,如果您向用户提供最低权限(不允许每个人访问KMS),在使用MFA保持root帐户安全的同时,攻击者将很难访问KMS。