Amazon DocumentDB 静态数据加密 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon DocumentDB 静态数据加密

注意

Amazon KMS 正将术语客户托管密钥 (CMK) 替换为 Amazon KMS keyKMS 密钥。这一概念并未改变。为防止破坏性更改,Amazon KMS 保留了此术语的一些变体。

您可以通过在创建集群时指定存储加密选项来在 Amazon DocumentDB 集群中加密静态数据。存储加密在整个集群范围内启用,应用于所有实例,包括主实例和任何副本。它还应用于集群的存储卷、数据、索引、日志、自动备份和快照。

Amazon DocumentDB 使用 256 位高级加密标准 (AES-256) 通过 Amazon Key Management Service (Amazon KMS)中存储的加密密钥来对您的数据加密。使用静态加密启用的 Amazon DocumentDB 集群时,您无需修改应用程序逻辑或客户端连接。Amazon DocumentDB 以透明方式处理数据的加密和解密,这对性能产生的影响最小。

Amazon DocumentDB 与 Amazon KMS 集成并使用称为信封加密的方法来保护您的数据。当使用 Amazon KMS对 Amazon DocumentDB 集群 进行加密时,Amazon DocumentDB 请求 Amazon KMS 使用 KMS 密钥 生成加密文字数据密钥以加密存储卷。加密文字数据密钥使用您定义的 KMS 密钥进行加密,并与加密的数据和存储元数据一起存储。当 Amazon DocumentDB 需要访问加密数据时,它会请求 Amazon KMS 使用 KMS 解密加密文字数据密钥,并将明文数据密钥缓存到内存中,以高效地加密和解密存储卷中的数据。

Amazon DocumentDB 中的存储加密功能可用于所有支持的实例大小和 Amazon DocumentDB 可用的所有 Amazon Web Services 区域。

为 Amazon DocumentDB 集群启用静态加密

使用 Amazon Web Services Management Console 或 Amazon Command Line Interface (Amazon CLI)设置集群时,可以在 Amazon DocumentDB 集群上启用或禁用静态加密。默认情况下,您使用控制台创建的集群启用了静态加密功能。默认情况下,您使用 Amazon CLI 创建的集群禁用了静态加密功能。因此,您必须使用 --storage-encrypted 参数显式启用静态加密。无论哪种情况,在创建集群后,都无法更改静态加密选项。

Amazon DocumentDB 使用 Amazon KMS 检索和管理加密密钥,并定义控制这些密钥的使用方式的策略。如果您不指定 Amazon KMS 密钥标识符,Amazon DocumentDB 使用默认的 Amazon 托管服务 KMS 密钥。Amazon DocumentDB 为您的 Amazon Web Services 账户 中每个 Amazon Web Services 区域 创建一个单独 KMS 密钥。有关更多信息,请参阅 Amazon Key Management Service 概念

要开始创建自己的 KMS 密钥,请参阅Amazon Key Management Service开发人员指南中的入门

重要

您必须使用对称加密 KMS 密钥加密您的集群,因为 Amazon DocumentDB 仅支持对称加密 KMS 密钥。请勿使用非对称 KMS 密钥尝试对 Amazon DocumentDB 集群中的数据进行加密。有关更多信息,请参阅Amazon Key Management Service开发人员指南中的非对称 KMS 密钥Amazon KMS

如果 Amazon DocumentDB 不再能够有权访问集群的加密密钥 — 例如,在撤销密钥访问权限时 — 加密的集群将进入终末状态。在此情况下,您只能从备份还原集群。对于 Amazon DocumentDB,备份始终启用 1 天。

此外,如果您禁用已加密 Amazon DocumentDB 集群的密钥,您最终将失去对该集群的读写访问权限。如果 Amazon DocumentDB 遇到用它无法访问的密钥加密的集群,则它会使该集群进入最终状态。在此状态下,集群不再可用,并且数据库的当前状态无法恢复。若要还原集群,您必须重新启用对 Amazon DocumentDB 的加密密钥的访问,然后从备份还原集群。

重要

在已创建加密集群的 KMS 密钥后,您无法更改它。请确保先确定您的加密密钥要求,然后再创建加密的集群。

Using the Amazon Web Services Management Console

您可在创建集群时,指定静态加密选项。默认情况下,当您使用 Amazon Web Services Management Console创建集群时,静态加密处于启用状态。集群创建之后无法修改该选项。

在创建集群时指定静态加密选项
  1. 入门部分所述创建 Amazon DocumentDB 集群。但在步骤 6 中,不要选择创建集群

  2. Authentication (身份验证) 部分下,选择 Show advanced settings (显示高级设置)

  3. 向下滚动至 Encryption-at-rest (静态加密) 部分。

  4. 选择要进行静态加密的选项。无论您选择哪个选项,都无法在创建集群后更改它。

    • 要对此集群中的静态数据进行加密,请选择启用加密

    • 如果您不想对此集群中的静态数据进行加密,请选择Disable encryption (禁用加密)

  5. 选择您想要的主密钥。Amazon DocumentDB 使用 Amazon Key Management Service (Amazon KMS)检索和管理加密密钥,并定义控制这些密钥的使用方式的策略。如果您不指定 Amazon KMS 密钥标识符,Amazon DocumentDB 使用默认的 Amazon 托管服务 KMS 密钥。有关更多信息,请参阅 Amazon Key Management Service 概念

    注意

    创建加密的集群后,您无法更改该集群的 KMS 密钥。请确保先确定您的加密密钥要求,然后再创建加密的集群。

  6. 根据需要完成其他部分,然后创建您的集群。

Using the Amazon CLI

要使用 Amazon CLI 加密 Amazon DocumentDB 集群,您必须在创建集群时指定该 --storage-encrypted 选项。使用 Amazon CLI 所创建的 Amazon DocumentDB 集群默认不启用存储加密。

以下示例创建启用了存储加密的 Amazon DocumentDB 集群。

对于 Linux、macOS 或 Unix:

aws docdb create-db-cluster \ --db-cluster-identifier sample-cluster \ --port 27017 \ --engine docdb \ --master-username yourMasterUsername \ --master-user-password yourMasterPassword \ --storage-encrypted

对于 Windows:

aws docdb create-db-cluster ^ --db-cluster-identifier sample-cluster ^ --port 27017 ^ --engine docdb ^ --master-username yourMasterUsername ^ --master-user-password yourMasterPassword ^ --storage-encrypted

在创建加密的Amazon DocumentDB 集群时,您可以指定 Amazon KMS 密钥标识符,如以下示例所示。

对于 Linux、macOS 或 Unix:

aws docdb create-db-cluster \ --db-cluster-identifier sample-cluster \ --port 27017 \ --engine docdb \ --master-username yourMasterUsername \ --master-user-password yourMasterPassword \ --storage-encrypted \ --kms-key-id key-arn-or-alias

对于 Windows:

aws docdb create-db-cluster ^ --db-cluster-identifier sample-cluster ^ --port 27017 ^ --engine docdb ^ --master-username yourMasterUsername ^ --master-user-password yourMasterPassword ^ --storage-encrypted ^ --kms-key-id key-arn-or-alias
注意

创建加密的集群后,您无法更改该集群的 KMS 密钥。请确保先确定您的加密密钥要求,然后再创建加密的集群。

Amazon DocumentDB 加密集群的限制

Amazon DocumentDB 加密的集群存在以下限制。

  • 您只能在创建 Amazon DocumentDB 集群时而不能在创建它之后启用或禁用静态加密。但是,您可以通过创建未加密群集的快照,然后将未加密的快照还原为新集群,同时指定静态加密选项。

    有关更多信息,请参阅以下主题:

  • 不能通过对已启用存储加密的 Amazon DocumentDB 集群进行修改来禁用加密。

  • Amazon DocumentDB 集群中的所有实例、自动备份、快照和索引都使用相同的 KMS 密钥进行加密。