本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 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密钥)执行了哪些操作。这些操作包括集群加密、集群解密以及生成数据密钥。