MongoDB Atlas 支持多种身份验证方法,以确保强大的安全性。Atlas 要求所有用户进行身份验证才能访问 Atlas 用户界面、Atlas 数据库和 Atlas 管理 API。
注意
在此上下文中,“用户”可以是人类或应用程序。我们将人类用户称为"员工身份" ,将应用程序称为"工作负载身份" 。
有两个因素决定应使用哪种身份验证类型:
身份类型(人类或机器)
身份需要访问的资源。资源可以是以下之一:Atlas 用户界面、Atlas 数据库或 Atlas API。
Atlas UI 身份验证
员工用户
使用 IP 访问限制,然后:
通过 SAML2.0 身份提供程序(如 Okta、Microsoft Entra ID 或 Ping Identity)使用联合身份验证,以及
使用 Atlas 凭证与多重身份验证 (MFA)。您应始终使用可用的最安全的 MFA 形式,例如硬件密钥或生物识别。
工作负载用户
这仅应用于员工用户。
Atlas 数据库身份验证
员工用户
工作负载用户
使用以下其中一项:
Atlas API 身份验证
注意
这应用于员工和工作负载用户。
身份验证类型
以下部分详细介绍了访问 Atlas 用户界面、Atlas 数据库或 Atlas 管理 API 时使用的身份验证方法。
联合身份验证
联合身份验证允许您通过一个中央身份提供程序,跨多个系统和应用程序管理 Atlas 用户界面的所有身份验证,从而降低用户管理的复杂性。通过联合身份验证,您可以在身份提供程序的工具中实施安全策略,例如密码复杂性、凭证轮换和 MFA。
对于 Atlas UI,您可以使用任何兼容 SAML 的身份提供程序,例如 Okta、Microsoft Entra ID 或 Ping Identity。
Workforce Identity Federation
Workforce Identity Federation 允许您通过身份提供程序来管理 Atlas 数据库的身份验证。要了解更多信息,请参阅使用 OIDC 设置 Workforce Identity Federation。
Workload Identity Federation
工作负载身份联合验证使在 Azure 和 Google Cloud 等云环境中运行的应用程序能够通过 Atlas 进行身份验证,而无需管理单独的数据库用户凭证。借助 Workload Identity Federation,您可以使用 Azure Managed Identities、Google Service Accounts 或任何符合 OAuth 2.0 标准的服务来管理 Atlas 数据库用户。这些身份验证机制通过允许无密码访问 Atlas 数据库,简化了管理并增强了安全性。
AWS IAM 角色身份验证
您还可以通过AWS IAM角色进行身份验证。要了解更多信息,请参阅AWS IAM 身份验证。
要了解更多信息,请参阅使用 OAuth 2.0 设置 Workload Identity Federation 和配置联合身份验证。
多因素身份验证
对于有权访问 Atlas 控制平面的任何人类用户,我们 要求 MFA 以增强安全性。Atlas 支持以下 MFA 方法作为二次身份验证:
安全密钥
生物识别技术
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密钥管理器等第三方密钥管理经理来生成和存储复杂的数据库凭证。
要学习更多信息,请参阅 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 Administration API 身份验证。
密钥管理
我们建议使用第三方密钥管理器(如HashiCorp Vault 或 AWS Secrets Manager)来生成和存储复杂的数据库凭证。密钥管理器可以根据配置的角色为 Atlas 数据库动态生成数据库凭证。
要了解更多信息,请参阅博客在 HashiCorp Vault 中管理 MongoDB Atlas 数据库密钥。。
部署
要了解与身份验证相关的部署建议,请参阅 Atlas 组织、项目和集群指导。
附加安全措施
为了进一步增强安全性并最大限度地降低未经授权访问的风险,请考虑以下额外的安全措施:
要了解更多信息,请参阅服务帐户概述。