MongoDB Atlas 支持多种身份验证方法,以确保强大的安全性。Atlas 要求所有用户进行身份验证才能访问 Atlas 用户界面、Atlas 数据库和 Atlas 管理 API。
注意
MongoDB Atlas责任共担模型定义了MongoDB及其客户在维护安全和弹性数据环境方面的互补职责。在此框架下, MongoDB管理根本的平台的安全性和操作完整性,而客户则负责其特定部署的配置、管理和数据策略。有关安全性和卓越运营之间所有权的详细划分,请参阅责任共担模型。
注意
在此上下文中,“用户”可以是人类或应用程序。我们将人类用户称为"员工身份" ,将应用程序称为"工作负载身份" 。
有两个因素决定应使用哪种身份验证类型:
身份类型(人类或机器)
身份需要访问的资源。资源可以是以下之一:Atlas 用户界面、Atlas 数据库或 Atlas API。
Atlas UI 身份验证
工作负载用户
这仅应用于员工用户。
Atlas 数据库身份验证
Atlas API 身份验证
注意
这应用于员工和工作负载用户。
身份验证类型
以下部分详细介绍了访问 Atlas 用户界面、Atlas 数据库或 Atlas 管理 API 时使用的身份验证方法。
联合身份验证
联合身份验证允许您通过中央身份提供商跨多个系统和应用程序管理Atlas用户用户界面的所有身份验证,从而降低用户管理的复杂性。借助联合身份验证,您可以在身份提供商的工具中实施安全策略,例如密码复杂性、档案轮换和 MFA。
对于 Atlas UI,您可以使用任何兼容的身份提供程序,例如 Okta、Microsoft Entra ID 或 Ping Identity。
Workforce Identity Federation
Workforce Identity Federation 允许您通过身份提供程序来管理 Atlas 数据库的身份验证。要了解更多信息,请参阅使用 OIDC 设置 Workforce Identity Federation。
Workload Identity Federation
Workload Identity Federation 使在Azure和Google Cloud Platform等云环境中运行的应用程序能够使用Atlas进行身份验证,而无需管理单独的数据库用户凭证。借助 Workload Identity Federation,您可以使用Azure托管身份、Google 服务帐户或任何 OAuth 2.0 兼容服务来管理Atlas数据库用户。这些身份验证机制允许对Atlas数据库进行无密码访问权限,从而简化管理并增强安全性。
AWS IAM 角色身份验证
您还可以通过Amazon Web Services IAM 角色进行身份验证。要学习;了解更多信息,请参阅Amazon Web Services IAM 身份验证。
要了解更多信息,请参阅使用 OAuth 2.0 设置 Workload Identity Federation 和配置联合身份验证。
多因素身份验证
对于任何有权访问权限Atlas控制平面的人类用户,我们都需要MFA来增强安全性。Atlas支持以下 MFA 方法作为从节点(secondary node from replica set)身份识别:
安全密钥
生物识别技术
OTP 身份验证器
通过 Okta Verify 发送推送通知
电子邮件
注意
如果您使用的是“联合身份验证”,则可在IdP中配置和管理MFA。如果您使用Atlas凭证,则在Atlas中配置和托管MFA。使用Atlas凭证时需要进行 MFA。
要了解更多信息,请参阅管理多因素身份验证选项。
X.509 客户端证书
X.509 证书提供双向 TLS 的安全性,使其适用于预发布和生产环境,您可以将自己的证书颁发机构用于 X.509。X.509 的缺点是您必须在应用程序端管理证书及其安全性,而 Workload Identity Federation 允许无密码访问,应用程序的安全性也更容易保证。
要了解更多信息,请参阅 X.509。
SCRAM 密码身份验证
Atlas 集群支持 SCRAM 密码身份验证用于用户身份验证,但我们建议仅在开发和测试环境中使用 SCRAM。
如果您利用 X.509 或SCRAM身份验证,我们建议您使用 HashiCorp Vault 或 Amazon Web Services Secrets 经理等第三方密钥管理器来生成和存储复杂的数据库凭证。
要学习更多信息,请参阅 SCRAM。
服务账户
服务账户使用行业标准 OAuth2.0 协议,经由 Atlas 管理 API 安全地完成 Atlas 身份验证。我们建议您尽可能使用服务账户而不是 API 密钥,因为服务账户通过使用短期访问令牌和必要的凭据轮换来提高安全性。
您可以使用 Atlas UI、Atlas CLI、Atlas 管理 API 和 Terraform 来管理服务账户的程序化访问。
API 密钥
服务帐户是首选的身份验证方法。Atlas为基于API密钥的身份验证提供传统支持,以管理编程访问权限。基于API密钥的身份验证使用HTTP摘要式身份身份验证来保护请求。
为了进一步增强安全性并将未经授权访问的风险降至最低:
遵循定期轮换API密钥的最佳实践。示例,要学习;了解如何使用 HashiCorp Vault 轮换这些密钥,请参阅 Hashicorp 文档。
为 API 密钥使用 IP 访问列表。要了解更多信息,请参阅需要针对 Atlas Administration API 的 IP 访问列表。
要学习;了解更多信息,请参阅Atlas 管理 API 身份验证方法。
密钥管理
我们建议使用第三方密钥管理器(如HashiCorp Vault 或 AWS Secrets Manager)来生成和存储复杂的数据库凭证。密钥管理器可以根据配置的角色为 Atlas 数据库动态生成数据库凭证。
要了解更多信息,请参阅博客在 HashiCorp Vault 中管理 MongoDB Atlas 数据库密钥。。
部署
要了解与身份验证相关的部署建议,请参阅 Atlas 组织、项目和集群指导。
附加安全措施
为了进一步增强安全性并最大限度地降低未经授权访问的风险,请考虑以下额外的安全措施:
要了解更多信息,请参阅服务帐户概述。