Atlas 如何加密我的数据?
默认情况下,Atlas 使用高级加密标准 (AES)-256 对所有集群存储和快照卷进行静态加密。您的云提供商会自动化此磁盘加密并管理加密密钥。
Atlas 还要求对客户端数据和集群内网络通信进行 TLS 加密。
如果您的组织需要有关Atlas加密的更多具体信息,请联系Atlas MongoDB支持:
是否可以在部署中禁用 TLS?
No.
Atlas 支持哪些版本的 TLS?
Atlas要求所有Atlas集群使用 TLS 连接。 Atlas支持 TLS协议版本 1.2和 。1.3
重要提示: Atlas不再支持 TLS1.0 或1.1 。所有集群都拒绝使用 TLS1.0 或1 1进行连接的尝试。 将集群的最低 TLS 1版本设置为.2 或更高版本。
您可以从支付卡行业 (PCI) 和美国国家标准与技术研究院 (NIST) 了解有关更改时间和原因的更多信息。
如果您对TLS支持有疑问或无法更新应用程序以支持TLS 1.3 ,请联系Atlas MongoDB支持部门。
要打开Atlas支持票证:
如何知道我的应用程序是否支持 TLS 1.3?
如果应用程序的根本的编程语言或安全库在 TLS 1.3 之前就已存在,则可能需要更新到最新版本以支持 TLS 1.3。您可能还需要更新应用程序托管操作系统以支持 TLS 1.3。
MongoDB 和 Atlas 不提供审核外部应用程序所支持的 TLS 版本的服务。第三方服务(如 howsmyssl.com)可提供相应的工具。MongoDB 不支持此服务,此处引用仅供参考。利用您组织的程序选择供应商或服务来审核应用程序。
如需更新集群以支持 TLS 1.3,我需要做些什么?
执行 Atlas 审核,检查您的应用程序是否支持 TLS 1.3。
更新技术堆栈中不支持TLS 1.3 的所有组件。
修改集群配置以使用 TLS 1.3。
如果您有 自定义 TLS 1.2 密码配置,则必须更新配置以包含 TLS 1.3 密码。
哪个证书颁发机构签署 MongoDB Atlas TLS 证书?
Atlas 集群节点的 TLS 证书由 Google Trust Services 或 Let's Encrypt 签名,以提高高可用性。Atlas 同时使用这两个证书权限机构。您必须将来自 Google Trust Services 的 GTS Root R1、GTS Root R2、GTS Root R3 和 GTS Root R4 根证书权限机构的 CA 证书添加到客户端的可信证书存储区,除此之外,还必须添加来自 Let's Encrypt 的 ISRG Root X1 根证书权限机构,以确保服务的跨实例和区域的横向扩展实现无缝连续性。
Atlas 使用 GTS Root R3 和 GTS Root R4 根 CA 证书来支持 TLS 1.3。
注意
大多数应用程序环境的受信任证书颁发机构列表中已包含 Let's Encrypt 和 Google Trust Services。
要下载证书颁发机构证书,请参阅 Google 信任服务存储库 和 ISRG 根 X1。
注意
Atlas会自动轮换证书。您无需运行rotateCertificates命令。仅当您想手动轮换证书时才使用 rotateCertificates 命令。
Atlas集群多久轮换一次 TLS 证书?
TLS 证书自颁发之日起的90 天内有效。证书在证书到期日期前 42 天进行轮换。
使用以下命令检查节点的 TLS 证书是否过期:
echo | openssl s_client -showcerts -connect $HOSTNAME:$PORT 2> /dev/null | openssl x509 -noout -enddate
硬编码“证书颁发机构”。
我们不建议对中间证书进行硬编码或固定,因为这会带来操作负担和可用性风险。如果 Let's Encrypt 或 Google Trust Services 轮换或替换固定的中间证书,您的应用程序可能无法连接,从而导致中断。
如果必须固定证书,请将其固定到证书颁发机构证书,而不是任何中间证书。
Java 用户
Let's Encrypt 的 ISRG 根证书和 Google Trust Services 根证书均可在 u 更新后Java版本7 7391的默认信任存储以及 u {Java}8 8381更新 。使用 18 7 月 2023 之后的Java发布。
确保 Java 客户端软件是最新的。使用最新的 Java 版本可以利用我们 TLS 证书的这些新证书颁发机构要求之外的改进。
如果您有自己的信任存储,请将 Let's Encrypt 和 Google Trust Services 证书添加到其中。 要学习;了解更多信息,请参阅哪个证书颁发机构签署MongoDB Atlas TLS 证书?
Windows Server 用户
默认下, Windows Server 中不包含 ISRG 根 X1、GTS 根R1 和 GTS 根R 2 根证书颁发机构,但可在Microsoft可信根计划中使用。
要配置Windows Server 以下载受信任的根证书,请参阅Windows文档。
Amazon Linux AMI 用户
某些版本的Amazon Linux AMI 可能不会同时具有 ISRG 根 X1 和 GTS 根R1 和R2 证书。请迁移到较新版本的Amazon Linux以获得所需的根证书。6 月2025之后,我们将要求Atlas支持ISRG 根 X1、GTS 根R1 和R 2 证书,以避免证书兼容性问题。
如果您必须使用较旧的Amazon Linux AMI,请手动安装 ISRG 根 X1、GTS 根R1 和R2 根证书颁发机构。
其他所有人
如果您使用的是最新的编程语言和操作系统版本, 则此更改不会对您造成影响。
为什么我的 TLS 配置更改失败? UNSAFE_TLS_TRANSITION error?
Atlas 可防止 TLS 配置更改导致集群节点之间在滚动更新期间发生通信中断。
更新 TLS 设置时,Atlas 会一个节点一个节点地应用更改。在此过程中,运行旧配置的节点必须仍能连接到运行新配置的节点。如果您提出的更改删除所有共享 TLS 版本或密码套件,则节点无法通信,这会导致集群分区和潜在的停机。
为保护集群可用性,Atlas 会阻止这些不安全过渡并返回 UNSAFE_TLS_TRANSITION 错误。
UNSAFE_TLS_TRANSITION 错误原因
当前和建议的 TLS 配置之间没有重叠时,通常会在以下场景中发生此错误:
TLS 版本不匹配。
示例:直接从仅支持 TLS 1.2 切换为仅支持 TLS 1.3。
结果:使用 TLS 1.2 的节点无法连接到需要 TLS 1.3 的节点。
密码套件不匹配。
示例:将所有现有密码套件替换为完全不同的套件。
结果:节点没有共享密码来协商连接
UNSAFE_TLS_TRANSITION 错误解决方案
分阶段更改 TLS,并确保新旧设置之间存在重叠:
适用于 TLS 版本:
启用 TLS 1.2 和 TLS 1.3。
应用更改,并允许更新完成。
在后续更新中删除 TLS 1.2 (如有需)。
对于密码套件:
- 确保在过渡期间,当前配置与新配置之间至少共享一个密码套件。
UNSAFE_TLS_TRANSITION 错误要点
避免“一次性” TLS 变更。始终保持旧配置和新配置之间的临时兼容性,以确保安全的滚动更新。
Atlas 对 Community 和不支持的驱动程序的支持策略是什么?
Atlas 为官方支持的驱动程序、Community 驱动程序和不支持的配置提供不同级别的支持。
驱动程序分类
官方支持的驱动程序
MongoDB 开发和维护这些驱动程序,它们列在 mongodb.com/zh-cn/docs/drivers 上。MongoDB 的测试矩阵、发布过程和支持 SLA 涵盖这些驱动程序。
官方支持的驱动程序包括 C、C++、C#、Go、Java、Kotlin、Node.js、PHP、Python、Ruby、Rust、Scala 和 Swift。
Community 驱动程序
第三方开发者创建并维护这些驱动程序,它们实现 MongoDB 公布的规格或传输协议。示例包括 Zookzook (Elixir)、Mango (Dart)、mongolite (R)和 mgo (Go)。
不支持的配置
任何官方支持的或 Community 驱动程序使用的已结束生命周期版本。
支持级别
官方支持的驱动程序(当前版本)
Atlas SLA 涵盖这些驱动程序。MongoDB 提供标准的故障排除和解决方案,包括连接问题的调查和修复。
官方支持的驱动程序(EOL 版本)
MongoDB 提供最大努力支持。MongoDB 会调查问题,但可能会建议升级到当前版本。
Community 驱动程序
MongoDB 提供最大努力的仅诊断支持。支持可帮助您确定问题是源于平台还是驱动程序。对于驱动程序侧问题,MongoDB 提供可用的指导,并将您引导至驱动程序维护人。MongoDB 不调试或修补 Community 驱动程序代码。
职责
什么 |service| 做
Atlas 会对影响连接层的平台变更进行风险评估,包括 TLS 版本变更、证书轮换和身份验证机制更新。Atlas 会评估已知的脆弱模式,即使脆弱来源于客户端代码。
对于高风险的平台变更, Atlas会在可行的情况下在发布说明和维护前通知中发布指导。
什么 |service| 不做
Atlas 不会:
测试、认证或保证 Community 驱动程序的正确性
测试所有配置中的所有 Community 驱动程序
承诺修补、查看或维护 Community 驱动程序
Community 驱动程序必须正确实现 TLS 协商、身份验证、传输协议和故障转移行为。MongoDB 对 Community 驱动程序的任何贡献都是自愿的,而非合同义务。
SLA 覆盖
Atlas SLA 仅涵盖当前版本中官方支持的 MongoDB 驱动程序。由 Community 驱动程序错误或不支持的驱动程序配置导致的服务中断不属于 SLA 范围。
使用当前版本的 官方支持的驱动程序,以获得完整的 SLA 覆盖和最佳支持体验。