亚马逊 Redshift 的使用方式 AWS KMS - AWS Key Management Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 Redshift 的使用方式 AWS KMS

本主题讨论 Amazon Redshift AWS KMS 如何使用加密数据。

Amazon Redshift 加密

Amazon Redshift 数据仓库是一个由称作节点的各种计算资源构成的集合,这些节点已整理到名为集群的组中。每个集群运行一个 Amazon Redshift 引擎并包含一个或多个数据库。

Amazon Redshift 使用基于密钥的四层架构来进行加密。此架构包括数据加密密钥、数据库密钥、群集密钥和根密钥。您可以使用 AWS KMS key 作为根密钥。

数据加密密钥对群集中的数据块进行加密。为每个数据块分配一个随机生成的 AES -256 密钥。这些密钥使用群集的数据库密钥进行加密。

数据库密钥对群集中的数据加密密钥进行加密。数据库密钥是随机生成的 AES -256 密钥。它存储在独立于 Amazon Redshift 集群的网络中的磁盘上,并跨安全通道传递到集群中。

群集密钥对 Amazon Redshift 群集的数据库密钥进行加密。您可以使用 AWS KMS AWS CloudHSM、或外部硬件安全模块 (HSM) 来管理集群密钥。有关更多详细信息,请参阅 Amazon Redshift 数据库加密文档。

您可以通过选中 Amazon Redshift 控制台中相应的框请求加密。您可以从加密框下方显示的列表中选择,指定一个客户托管密钥。如果您不指定客户托管的密钥,则 Amazon Redshift 将 AWS 托管式密钥 用于您账户下的 Amazon Redshift。

重要

亚马逊 Redshift 仅支持对称加密密钥。KMS您不能在 Amazon Redshift 加密工作流程中使用非对称KMS密钥。有关确定KMS密钥是对称还是非对称的帮助,请参阅。识别不同的密钥类型

加密上下文

与之集成的每项服务在请求数据密钥、加密和解密时都 AWS KMS 指定了加密上下文。加密上下文是用于检查数据完整性的其他经过身份验证的数据 (AAD)。 AWS KMS 也就是说,在为加密操作指定加密上下文时,该服务还要为解密操作指定同一加密上下文,否则解密会失败。Amazon Redshift 使用加密上下文的集群 ID 和创建时间。在 CloudTrail 日志文件requestParameters字段中,加密上下文将与之类似。

"encryptionContext": { "aws:redshift:arn": "arn:aws:redshift:region:account_ID:cluster:cluster_name", "aws:redshift:createtime": "20150206T1832Z" },

您可以在 CloudTrail 日志中搜索集群名称,以了解使用 AWS KMS key (KMS密钥)执行了哪些操作。这些操作包括集群加密、集群解密以及生成数据密钥。