我正在探索AWS KMS作为存储加密密钥的金库。现在,我正试图加密数据库字段,如电子邮件。
因此,无论何时有电子邮件的读/写,我都不想使用AWS API(使用SDK)来加密/解密。
我想的是,是否有一种方法可以使用SDK获取明文数据密钥,并将其存储在内存中一段时间,并用于加密/解密。
我正在玩SDK,但是我没有看到任何东西来获取数据键。
我需要这样做有两个原因:(一)通过/绩效( b)降低成本
我的数据在内部物理机器中,而不是在AWS中。
发布于 2020-10-07 09:52:10
KMS的全部目的是安全地存储加密密钥。因此,您无法找到提取密钥的任何选项,因为这样的选项在设计中并不存在。这个问题就像是在说:“我需要一家有安全保险库的银行,这样我就可以把驾照存起来,这样它就不会被偷了,但我也想把它放在钱包里,等我去商店的时候。”很简单,这些需求是完全矛盾的。
如果出于某种原因,您确实想这样做,那么您可以在客户管理的密钥中使用KMS。这将允许您生成自己的密钥,将其交给AWS,并且他们将为您将其放置在KMS中。在那个时候,您可以自己拥有密钥的副本,AWS也将拥有它们的副本,您可以通过KMS使用它们。
更常见的用例是使用KMS加密数据的实际加密密钥。这样,密钥就可以以加密的形式存储。当应用程序启动时,它接受加密密钥,调用KMS对其进行解密,将解密密钥存储在内存中,然后才能正常运行。
发布于 2021-12-12 12:42:58
我想的是,有什么方法可以得到纯文本数据键吗?
AWS提供了GenerateDataKey操作:
https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html
此操作返回数据密钥的明文副本和在您指定的KMS密钥下加密的副本。您可以使用明文密钥对AWS KMS之外的数据进行加密,并将加密的数据密钥与加密的数据一起存储。
我需要这样做有两个原因:(一)通过/绩效( b)降低成本
您似乎要寻找的是data key caching,它是2017年添加到AWS中的一个特性:
https://aws.amazon.com/about-aws/whats-new/2017/08/aws-encryption-sdk-now-supports-data-key-caching/
数据键缓存可以提高性能,降低成本,并帮助您在应用程序扩展时保持在服务范围内。
你可以在这里读到更多关于它的内容:
https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/data-key-caching.html
https://security.stackexchange.com/questions/239260
复制相似问题