为什么 AWS KMS 加密/解密不需要数据密钥?



我正在阅读 https://docs.aws.amazon.com/cli/latest/reference/kms/encrypt.html 和 https://docs.aws.amazon.com/cli/latest/reference/kms/decrypt.html 的 AWS 加密 cli 文档。我发现我可以在不创建数据密钥的情况下加密/解密。当我读取 https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html 时,它说我需要使用 KMS CMK 生成用于加密数据的数据密钥。 所以我对我是否需要数据密钥感到困惑?

CMK 旨在加密/解密数据密钥。因此,在直接调用加密函数时可以加密的纯文本数量限制为 4 KB。您可以通过传入大于 4 KB 的消息来轻松测试这一点。

这些操作旨在加密和解密数据密钥。他们在加密操作中使用 AWS KMS 客户主密钥 (CMK(,并且不能接受超过 4 KB(4096 字节(的数据。尽管您可以使用它们来加密少量数据(如密码或 RSA 密钥(,但它们并非用于加密应用程序数据。

您可能使用的是由使用 KMS 加密的其他 AWS 服务创建的默认 CMK。

当然,所有的加密和解密操作都需要密钥。如果未为应用程序显式创建一个,则使用的是当前默认键。

确保您的 AWS 服务和资源使用 KMS 客户主密钥 (CMK(,而不是默认 KMS 密钥,以便完全控制数据加密/解密过程并满足合规性要求。当未定义其他密钥来加密该服务的资源时,AWS 服务(如 RDS、EBS、Lambda、Elastic Transcoder、Redshift、SES、SQS、CloudWatch、EFS、S3 或工作区(使用 KMS 默认主密钥。无法修改默认密钥以确保其可用性、持久性和安全性。另一方面,KMS 客户主密钥 (CMK( 提供创建、轮换、禁用、启用和审核用于保护数据的加密密钥的功能。

见 https://www.cloudconformity.com/knowledge-base/aws/KMS/default-key-usage.html

相关内容

最新更新