跳至内容

如何为现有已解密的 Amazon Redshift 集群开启加密?

2 分钟阅读
0

我想为现有已解密的 Amazon Redshift 集群开启加密。

简短描述

默认情况下,Amazon Redshift 对连接到新创建的预置和恢复集群的客户端强制执行 SSL 连接。此默认更改也适用于无服务器工作组。

您可以修改现有的 Amazon Redshift 未加密集群以使用 AWS Key Management Service (AWS KMS) 加密。Amazon Redshift Serverless 默认是加密的,但您可以更改命名空间的 AWS KMS 密钥。

**注意:**DC2 和 RA3 节点类型不支持硬件安全模块 (HSM) 加密

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

修改未加密的 Amazon Redshift 集群以使用加密

要修改现有的 Amazon Redshift 集群以使用加密,请完成以下步骤:

  1. 打开 Amazon Redshift 控制台
  2. 在导航窗格中,选择 Clusters(集群),然后选择要加密的集群。
  3. 选择 Properties(属性)。
  4. 对于 Database configurations(数据库配置),选择 Edit(编辑),然后选择 Edit encryption(编辑加密)。
  5. 选择 Use AWS Key Management Service (AWS KMS)(使用 AWS Key Management Service (AWS KMS))或 Use a hardware security module (HSM)(使用硬件安全模块 (HSM))。有关加密选项的详细信息,请参阅 Amazon Redshift 数据库加密

要修改现有的 Amazon Redshift 集群以将 AWS KMS 加密与 AWS 命令行界面 (AWS CLI) 结合使用,请运行以下 modify-cluster 命令:

> aws redshift modify-cluster --cluster-identifier <value> --encrypted --kms-key-id <value>

如果您在命令中仅包含 encrypted,将使用默认 AWS KMS 密钥。要使用客户自主管理型 KMS 密钥,请添加 kms-key-id 并将 value 替换为您的客户自主管理型 KMS 密钥 ID。

如果集群的节点类型为 RA3,将使用更快的经典调整大小来执行 Amazon Redshift 集群加密更改。对于所有其他节点类型,Amazon Redshift 使用经典调整大小执行加密更改。

开启加密后,Amazon Redshift 会自动将数据迁移到具有相同集群标识符的新加密集群。在此迁移操作期间,集群处于只读模式,集群状态显示为“调整大小”。

调整大小操作的时间长度因源集群上的读取工作负载和表定义而异。您要缩放的节点类型,包括偏差注意事项,也会影响调整大小的持续时间。

更改 Amazon Redshift Serverless 中命名空间的 AWS KMS 密钥

Amazon Redshift Serverless 默认是加密的。但是,您可以修改命名空间的 AWS KMS 密钥,以便遵守组织的安全策略。当您更改 AWS KMS 密钥时,数据保持不变。

您无法从客户自主管理型 KMS 密钥更改为 AWS KMS 密钥。如果您希望在创建客户自主管理型 KMS 密钥后使用 AWS KMS 密钥,则必须创建一个新的命名空间。当密钥发生变化时,您也无法执行其他操作。更改密钥所需的时间取决于 Amazon Redshift Serverless 中的数据量。每存储 8 TB 的数据通常需要 15 分钟。

要更改命名空间的 AWS KMS 密钥,请完成以下步骤:

  1. 打开 Amazon Redshift 控制台
  2. 在导航窗格中,选择 Namespace configuration(命名空间配置),然后从列表中选择您的命名空间。
  3. Security and encryption(安全和加密)选项卡中,选择 Edit(编辑)。
  4. 选择 Customize encryption settings(自定义加密设置),然后为命名空间选择密钥或创建新密钥。

要使用 AWS CLI 更改命名空间的 AWS KMS 密钥,请运行以下 update-namespace 命令:

aws redshift-serverless update
-namespace--namespace-name
[--kms-key-id <id-of-kms-key>]
// other parameters omitted here

**注意:**如果您没有创建命名空间,则 AWS CLI 命令会导致错误。

AWS 官方已更新 10 个月前