您可以在不使用密钥管理服务 (KMS) 的情况下加密 AWS 服务中的数据吗?

Can you encrypt data in AWS services without using Key Management Service (KMS)?

我想使用存储在本地 HSM 中的密钥来加密一些 Amazon 服务(主要是 RDS)中的数据。

如果您通常使用 AWS 执行此操作,您会将您的密钥放入客户管理的密钥库中,并在加密服务时使用其 ARN。

我试图跳过这一步并托管我自己的密钥,直接将它们提供给服务而不将它们存储在 AWS 上。我知道您可以使用此处记录的 S3 存储桶执行此操作“Use Your own Encryption Keys with S3’s Server-Side Encryption”,但我无法找到如何使用其他服务执行此操作。

支持加密的 AWS 服务与 KMS 集成。所以简短的回答是,,您必须使用 KMS,即使在使用您自己导入的密钥时也是如此(您已经注意到的 S3 除外)。

这是一件好事,KMS 是一项完全托管的服务,可自动处理底层密钥管理基础结构 (KMI) 的可用性、可伸缩性、安全性和硬件维护。它还与 AWS CloudTrail 协同工作,为您提供详细的审计信息。当您将所有这些加起来时,您可以更好地控制密钥的生命周期和耐用性。在此处查看与 KMS 集成的服务列表: https://aws.amazon.com/kms/features/#AWS_Service_Integration

如果您必须满足特定的合规性要求,KMS 通过 KMS 自定义密钥存储功能.[=13] 与 AWS CloudHSM 集成=]

S3 和 RDS 是不同类型的服务,并且以不同的方式加密不同的东西。

使用 S3 REST API,您可以选择在每个请求上发送您的自我管理加密密钥,无论是写入还是读取对象。您最终对这些密钥负责,如果您丢失了它们,您就丢失了数据。

更多信息:https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html

RDS中,加密方式不同。为 RDS 实例启用加密后,静态加密的数据包括数据库实例的底层存储、其自动备份、只读副本和快照。这不是简单的 S3 PUT 或 GET。

您可能想查看对 Oracle 和 SQL 服务器的透明数据加密 (TDE) 支持,它提供数据库文件级别的加密,执行实时 I/O 加密和解密数据和日志文件(无论底层存储如何)。

https://aws.amazon.com/blogs/security/aws-cloudhsm-is-now-integrated-with-amazon-rds-for-oracle-and-provides-enhanced-management-tools/