通过 AWS KMS 管理客户密钥
在此页面上
您可以配置Atlas项目,使用Amazon Web Services IAM角色访问Amazon Web Services KMS密钥,实现静态加密。为项目启用静态加密时,可以使用现有角色或创建新角色。
本页介绍了如何在 Atlas 项目上为基于角色的访问权限配置客户密钥管理。您还可以在您的 AWS KMS 中设置 AWS PrivateLink,以确保 Atlas 和您的 AWS KMS 之间的所有流量都通过 AWS 的专用网络接口进行。
如果您尚未为新的或现有的 Atlas 项目启用静态加密,请按照为项目启用加密密钥的基于角色的访问中的步骤为您的 Atlas 项目启用静态加密。如果您已经为 Atlas 项目启用了静态加密,并配置了对加密密钥的基于凭证的访问权限,请按照切换到项目的基于角色的加密密钥访问中的步骤,切换到对加密密钥的基于角色的访问权限。
您必须先为 Atlas 项目配置客户密钥管理,然后才能在该项目中的集群上启用它。
另请参阅:
必需的访问权限
要配置客户密钥管理,您必须拥有对项目的 Project Owner
访问权限。
拥有 Organization Owner
访问权限的用户必须将自己作为 Project Owner
添加到项目中。
通过 AWS KMS 启用客户托管密钥
Atlas 中的客户密钥管理遵循的是一种称为信封加密的流程。此流程通过使用一个密钥加密另一个密钥来创建多层加密。为了启用客户密钥管理,Atlas 使用以下加密密钥:
Customer-Managed Key (CMK)
客户管理密钥是您在 AWS KMS 中创建、拥有和管理的加密密钥。您在 AWS KMS 中创建CMK,并在项目级别将其连接到 Atlas。要了解有关 AWS KMS 中使用的 CMK 的更多信息,请参阅 AWS KMS 文档。
Atlas 仅使用此密钥来加密 MongoDB 主密钥。
MongoDB Master Key
Atlas 集群中的每个节点都会创建一个MongoDB主密钥。 MongoDB主密钥是MongoDB Server用于加密每数据库加密密钥的加密密钥。 Atlas在本地保存密钥的加密副本。
此密钥使用 CMK 加密,并对每个数据库的加密密钥进行加密。
Per-Database Encryption Key
Atlas 集群中的每个节点还会为集群中的每个数据库创建一个加密密钥。Atlas 使用这些密钥,通过 WiredTiger 读取和写入数据,WiredTiger 还对这些密钥进行加密和存储。
此密钥使用 MongoDB 主密钥加密。
例子
下面是一个三节点副本集的加密层次结构。Atlas 使用 AWS KMS 中的 CMK 为集群中的每个节点加密唯一的 MongoDB 主密钥。每个节点还包含三个数据库,每个数据库都使用每个数据库唯一的加密密钥进行加密。当集群启动时,Atlas 使用 AWS KMS 中的客户主密钥解密 MongoDB 主密钥,并将其提供给 MongoDB Server。
注意
如果您撤销 Atlas 对客户主密钥的访问权限,Atlas 就会关闭集群中的节点,在您恢复对客户主密钥的访问权限之前,您无法访问您的数据。

轮换 AWS 客户主密钥
注意
MongoDB 主密钥 - MongoDB 责任
当您使用自己的云提供商KMS时, Atlas至少每 天自动轮换MongoDB主密钥。90如果您配置了密钥轮换,则密钥轮换将在维护窗口期间开始。推迟维护(手动或自动)可能会导致密钥轮换超过 90 天。密钥滚动轮换,并且该进程不需要重写数据。
您的 AWS CMK - 您的责任
Atlas 不会自动轮换用于 AWS 提供的静态加密的 AWS CMK。
作为最佳实践,当您为 Atlas 项目 启用静态加密alert
时,Atlas90 会创建一个 来提醒您在默认情况下每 天轮换一次 AWS CMK 。您可以配置该警报的时间段。
您可以自己轮换 AWS 客户主密钥,也可以配置 AWS KMS 实例以自动轮换客户主密钥。如果配置 AWS 客户主密钥自动轮换,默认轮换时间约为 365 天。
如果您已在 AWS 中设置自动 CMK 轮换,并且不希望收到每 90 天轮换一次 CMK 的 Atlas 警报,则可以将默认警报期限修改为大于 365 天或禁用警报。
本页面介绍如何在 Atlas 中创建新密钥和更新 CMK ID,以轮换 Atlas 项目 CMK。与 AWS KMS 自动 CMK 轮换相比,这种密钥轮换方法支持对轮换周期进行更精细的控制。
重要
采用静态加密的云备份
对于使用静态加密和备份集群的集群,Atlas 会在创建快照时使用项目的 CMK 和 AWS IAM 用户凭证自动加密快照数据文件。这是在应用于所有 Atlas 存储和快照卷的现有加密上的额外加密层。
Atlas 不会在轮换后使用新的 CMK 重新加密快照。在检查项目中每个启用备份的集群是否有任何快照仍在使用该 CMK 之前,请勿删除旧 CMK。Atlas 会根据备份计划、保留和按需快照删除备份。在 Atlas 根据给定的 CMK 删除所有快照后,您可以安全地删除该 CMK。
步骤
在 Atlas 中,进入项目的 Advanced 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Advanced。
显示“高级”页面。
在停电期间重新配置 AWS KMS 地区
在区域中断期间,您的Amazon Web Services KMS地区可能不可用。如果您已启用 使用客户数密钥管理进行静态加密,则可以在至少一个节点仍然可用的情况下执行加密和解密操作。但是,如果所有节点都不可用,则无法执行加密操作。如果节点在中断期间重新启动,则该节点将不可用。
要使不可用节点进入健康状态,您可以将当前的Amazon Web Services KMS地区重新配置为可用地区。要更改KMS地区,您的Amazon Web Services KMS密钥必须是多区域密钥。要创建多区域密钥,请参阅Amazon Web Services文档。
注意
您无法将单地区钥转换为多地区密钥。
步骤
要重新配置您的Amazon Web Services KMS地区,请在Atlas中完成以下步骤:
在 Atlas 中,进入项目的 Advanced 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Advanced。
显示“高级”页面。
后续步骤
您可以通过公共网络或AWS PrivateLink使用Amazon Web Services KMS中的客户托管密钥 ( 集合扫描 )。要学习;了解详情,请参阅以下内容:
相关主题
要了解有关 MongoDB 静态加密的更多信息,请参阅 MongoDB Server 文档中的静态加密。
要了解有关使用云备份进行静态加密的更多信息,请参阅存储引擎和云备份加密。