加密 Amazon DocumentDB 静态数据

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

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

Amazon DocumentDB 与 AWS KMS 集成并使用称为信封加密的方法来保护您的数据。当 Amazon DocumentDB 群集使用 AWS KMS 客户主密钥 (CMK), Amazon DocumentDB 询问 AWS KMS 要使用CMK到 生成密文数据密钥 对存储卷进行加密。密文数据密钥使用您定义的 CMK 进行加密,并与加密的数据和存储元数据一起存储。当WhenWhen Amazon DocumentDB 需要访问您的加密数据、IT请求 AWS KMS 要使用CMK解密密文数据密钥,并在存储器中缓存明文数据密钥,以高效地对存储卷中的数据进行加密和解密。

存储加密设施 Amazon DocumentDB 适用于所有支持的实例大小和所有AWS区域 Amazon DocumentDB 可用。

为 Amazon DocumentDB集群启用静态加密

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

Amazon DocumentDB 使用 AWS KMS 检索和管理加密密钥,并定义控制这些密钥的使用方式的策略。如果您未指定 AWS KMS 密钥标识符, Amazon DocumentDB 使用默认AWS管理服务客户主密钥(CMK)。 Amazon DocumentDB 在AWS帐户中为AWS区域创建单独的CMK。有关详细信息,请参阅 AWS关键管理服务概念.

要开始创建自己的CMK,请参阅 入门AWS Key Management Service Developer Guide.

重要

您必须使用对称 CMK 加密您的集群,因为 Amazon DocumentDB 只支持对称 CMK。请勿使用非对称 CMK 尝试对 Amazon DocumentDB 集群中的数据进行加密。有关详细信息,请参阅 使用对称和非对称密钥AWS Key Management Service Developer Guide.

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

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

重要

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

您可在创建集群时,指定静态加密选项。默认情况下,当您使用 创建集群时,静态加密处于启用状态。AWS 管理控制台. 集群创建之后无法修改该选项。

在创建集群时指定静态加密选项

  1. 创建 Amazon DocumentDB 群集中所述的群集 入门 第节。但是,在步骤6中,请勿选择 创建群集.

  2. 身份验 部分,选择 显示高级设置.

  3. 向下滚动到 静态加密 第节。

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

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

    • 如果您不希望在此群集中加密静态数据,请选择 禁用加密.

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

    注意

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

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

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

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

对于 Linux、macOS 或 Unix:

  1. aws docdb create-db-cluster \
  2. --db-cluster-identifier sample-cluster \
  3. --port 27017 \
  4. --engine docdb \
  5. --master-username yourMasterUsername \
  6. --master-user-password yourMasterPassword \
  7. --storage-encrypted

对于 Windows:

  1. aws docdb create-db-cluster ^
  2. --db-cluster-identifier sample-cluster ^
  3. --port 27017 ^
  4. --engine docdb ^
  5. --master-username yourMasterUsername ^
  6. --master-user-password yourMasterPassword ^
  7. --storage-encrypted

当您创建加密时 Amazon DocumentDB 群集,您可以指定 AWS KMS 关键标识符,如以下示例。

对于 Linux、macOS 或 Unix:

  1. aws docdb create-db-cluster \
  2. --db-cluster-identifier sample-cluster \
  3. --port 27017 \
  4. --engine docdb \
  5. --master-username yourMasterUsername \
  6. --master-user-password yourMasterPassword \
  7. --storage-encrypted \
  8. --kms-key-id key-arn-or-alias

对于 Windows:

  1. aws docdb create-db-cluster ^
  2. --db-cluster-identifier sample-cluster ^
  3. --port 27017 ^
  4. --engine docdb ^
  5. --master-username yourMasterUsername ^
  6. --master-user-password yourMasterPassword ^
  7. --storage-encrypted ^
  8. --kms-key-id key-arn-or-alias

注意

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

限制 Amazon DocumentDB 加密群集

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

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

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

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

  • 所有实例、自动备份、快照和索引 Amazon DocumentDB 群集使用相同CMK加密。