MongoDB Atlas支持多种身份身份验证方法,确保稳健的安全性。 Atlas要求所有用户进行身份验证才能访问权限Atlas用户用户界面、 Atlas数据库和Atlas Administration API。
注意
在这种情况下,“用户”可以是人或应用程序。我们将人类用户称为“劳动力身份”,将应用程序称为“工作负载身份”。
有两个因素决定使用哪种身份验证类型:
身份类型(人或机器)
身份需要访问权限的资源。资源可以是以下之一: Atlas用户界面、 Atlas数据库或Atlas API。
Atlas UI 身份验证
Atlas 数据库身份验证
劳动力用户
使用 Workforce Identity Federation。
对于开发和测试环境,您还可以使用SCRAM 。考虑 创建具有实时数据库访问权限权限的临时数据库用户。
工作负载用户
使用以下其中一项:
Atlas API身份验证
注意
这适用于劳动力和工作负载用户。
身份验证类型
以下部分详细介绍了访问Atlas用户界面、 Atlas数据库或Atlas Administration API时使用的身份验证方法。
联合身份验证
联合身份验证允许您通过中央身份提供商跨多个系统和应用程序管理Atlas用户用户界面的所有身份验证,从而降低用户管理的复杂性。借助联合身份验证,您可以在身份提供程序的工具中实施安全策略,例如密码复杂性、档案轮换和 MFA。
对于Atlas用户界面,您可以使用任何 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 身份验证。
要学习;了解更多信息,请参阅使用 OAuth2.0 设置工作负载联合身份验证和配置联合身份验证。
多因素身份验证
对于任何有权访问权限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 或 AWS Secrets 经理等第三方密钥管理器来生成和存储复杂的数据库凭证。
服务账户
服务账户使用行业标准 OAuth2.0 协议,经由 Atlas 管理 API 安全地完成 Atlas 身份验证。我们建议您尽可能使用服务账户而不是 API 密钥,因为服务账户通过使用短期访问令牌和必要的凭据轮换来提高安全性。
您可以使用Atlas 用户界面、 Atlas CLI、 Atlas Administration 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 数据库密钥。。
部署
其他安全措施
为了进一步增强安全性并最大限度地降低未经授权访问权限的风险,请考虑采取以下额外的安全措施:
要了解更多信息,请参阅服务帐户概述。