本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon DocumentDB 静态数据加密
注意
AWS KMS 正在将 “客户主密钥 (CMK)” 一词替换为 “AWS KMS key和 KMS 密钥”。这一概念并未改变。为了防止重大更改, AWS KMS 保留了该术语的一些变体。
您可以通过在创建集群时指定存储加密选项来在 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,Amazon DocumentDB AWS KMS 会要求使用您的 KMS 密钥生成用于加密存储卷的密文数据密钥。加密文字数据密钥使用您定义的 KMS 密钥进行加密,并与加密的数据和存储元数据一起存储。当 Amazon DocumentDB 需要访问您的加密数据时,它会请求 AWS KMS 使用您的 KMS 密钥解密密文数据密钥,并将明文数据密钥缓存在内存中,以高效地加密和解密存储卷中的数据。
Amazon DocumentDB 中的存储加密功能适用于所有支持的实例大小以及所有可用 Amazon DocumentDB AWS 区域 的地方。
为 Amazon DocumentDB 集群启用静态加密
当使用或 () 配置集群时,您可以在 Amazon DocumentDB 集群上启用 AWS 管理控制台 或禁用静态加密。 AWS Command Line Interface AWS CLI默认情况下,您使用控制台创建的集群启用了静态加密功能。默认情况下,您使用创建的 AWS CLI 集群会禁用静态加密。因此,您必须使用 --storage-encrypted 参数显式启用静态加密。无论哪种情况,在创建集群后,都无法更改静态加密选项。
Amazon DocumentDB 用于检索和管理加密密钥,并定义控制如何使用 AWS KMS 这些密钥的策略。如果您未指定 AWS KMS 密钥标识符,Amazon DocumentDB 将使用默认的 AWS 托管服务 KMS 密钥。Amazon DocumentDB 会为你的每个 KMS 密钥创建一个单独的 KMS 密钥 AWS 区域 。 AWS 账户有关更多信息,请参阅 AWS Key Management Service 概念。
要开始创建自己的 KMS 密钥,请参阅AWS Key Management Service 开发人员指南中的入门。
重要
您必须使用对称加密 KMS 密钥加密您的集群,因为 Amazon DocumentDB 仅支持对称加密 KMS 密钥。请勿使用非对称 KMS 密钥尝试对 Amazon DocumentDB 集群中的数据进行加密。有关更多信息,请参阅AWS Key Management Service 开发人员指南中的非对称 KMS 密钥 AWS KMS。
如果 Amazon DocumentDB 无法再访问集群的 KMS 密钥(例如,当拥有 AWS 账户 该密钥的被暂停、密钥被禁用、密钥计划删除、Amazon DocumentDB 所依赖的密钥策略或授权被移除时),则集群将首先转换为状态。inaccessible-encryption-credentials-recoverable当集群处于此状态时,Amazon DocumentDB 会停止集群的实例,并且您无法读取或写入集群,但是如果在 7 天内恢复对 KMS 密钥的访问权限,集群仍然可以恢复。如果在 7 天内未恢复访问权限,则集群将转换为终端inaccessible-encryption-credentials状态。从终端状态来看,集群不再可用,数据库的当前状态也无法恢复 — 您只能从备份中恢复或使用原始 KMS 密钥执行时间点还原。对于 Amazon DocumentDB,备份始终启用至少 1 天。
注意
作为全局群集一部分的集群的行为有所不同。当 Amazon DocumentDB 检测到无法再访问 KMS 密钥时,全局集群中的所有集群都将直接转换为终端inaccessible-encryption-credentials状态,跳过可恢复状态。这是因为作为全局群集一部分的群集只有在它是全局群集中唯一的集群时才能停止和启动。要恢复,必须从快照恢复或执行时间点恢复。要删除原始群集,必须先从全局群集中移除每个群集,然后再将其删除。
重要
在已创建加密集群的 KMS 密钥后,您无法更改它。请确保先确定您的加密密钥要求,然后再创建加密的集群。
解析处于无法访问加密状态的 Amazon DocumentDB 集群
当 Amazon DocumentDB 无法访问集群加密时使用的 KMS 密钥时,Amazon DocumentDB 集群将变为无法访问的加密状态。有两种这样的状态,恢复路径取决于集群所处的状态。
inaccessible-encryption-credentials-recoverable 状态
当集群处于inaccessible-encryption-credentials-recoverable状态时,您可以available通过恢复 Amazon DocumentDB 对 KMS 密钥的访问权限,然后启动集群来恢复集群。要解决此状态,请执行以下操作:
-
AWS 账户 确认拥有 KMS 密钥的处于活动状态。如果账户被暂停,请重新激活。
-
确认已启用 KMS 密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的启用和禁用密钥。
-
检查是否计划删除 KMS 密钥。如果是,请取消计划中的密钥删除。有关更多信息,请参阅《AWS Key Management Service 开发者指南》中的计划和取消密钥删除。
-
确认 KMS 密钥策略和亚马逊 DocumentDB 所依赖的任何授权仍然允许亚马逊 DocumentDB 使用该密钥。
-
恢复对 KMS 密钥的访问后,使用 AWS 管理控制台 或运行
start-db-clusterAWS CLI 命令启动集群。例
对于 Linux、macOS 或 Unix:
aws docdb start-db-cluster \ --db-cluster-identifierexample-cluster对于 Windows:
aws docdb start-db-cluster ^ --db-cluster-identifierexample-cluster
重要
如果在 7 天内未恢复对 KMS 密钥的访问权限,则集群将转换为无法启动的终端inaccessible-encryption-credentials状态。
inaccessible-encryption-credentials 状态
inaccessible-encryption-credentials状态为终端。集群无法启动,数据库的运行状态也无法恢复。要恢复数据,请从快照还原或对新集群执行时间点还原。您仍必须有权访问原始 KMS 密钥才能执行恢复。如果 KMS 密钥已删除,则无法恢复数据。
注意
作为全局群集一部分的集群会直接转换到失去对 KMS 密钥的访问权限时的inaccessible-encryption-credentials状态,因为作为全局群集一部分的集群只有在全局集群中唯一的集群时才能停止和启动。要删除处于此状态的群集,请先从全局群集中移除每个群集,然后分别删除这些群集。
如果由于启用了删除保护而无法删除处于inaccessible-encryption-credentials状态的集群, AWS CLI 请在重试删除之前使用关闭删除保护。
例
对于 Linux、macOS 或 Unix:
aws docdb modify-db-cluster \ --db-cluster-identifierexample-cluster\ --no-deletion-protection
对于 Windows:
aws docdb modify-db-cluster ^ --db-cluster-identifierexample-cluster^ --no-deletion-protection
然后,您可以使用delete-db-cluster命令删除集群。
例
对于 Linux、macOS 或 Unix:
aws docdb delete-db-cluster \ --db-cluster-identifierexample-cluster\ --skip-final-snapshot
对于 Windows:
aws docdb delete-db-cluster ^ --db-cluster-identifierexample-cluster^ --skip-final-snapshot
如果运行上述命令后集群仍未删除,请联系 Su AWS pp
Amazon DocumentDB 加密集群的限制
Amazon DocumentDB 加密的集群存在以下限制。
-
您只能在创建 Amazon DocumentDB 集群时而不能在创建它之后启用或禁用静态加密。但是,您可以通过创建未加密群集的快照,然后将未加密的快照还原为新集群,同时指定静态加密选项。
有关更多信息,请参阅以下主题:
-
不能通过对已启用存储加密的 Amazon DocumentDB 集群进行修改来禁用加密。
-
Amazon DocumentDB 集群中的所有实例、自动备份、快照和索引都使用相同的 KMS 密钥进行加密。