MongoDB Atlas 支持多种授权方式,以确保资源访问的安全性和可靠性。Atlas 要求所有用户进行身份验证。一旦用户通过身份验证,授权将决定用户对资源的访问权限。
实施Atlas授权时,必须使用基于角色的访问控制 (RBAC)。使用联合身份提供商的用户组与 RBAC 结合使用可简化管理。
以下建议应用于所有部署范例中的劳动力(人员)和工作负载(应用程序)用户。
注意
MongoDB Atlas责任共担模型定义了MongoDB及其客户在维护安全和弹性数据环境方面的互补职责。在此框架下, MongoDB管理根本的平台的安全性和操作完整性,而客户则负责其特定部署的配置、管理和数据策略。有关安全性和卓越运营之间所有权的详细划分,请参阅责任共担模型。
RBAC 和预定义角色
Atlas使用基于角色的访问控制 (RBAC) 来简化用户授权的管理。Atlas包括预定义的用户角色,这些角色提供使用用户界面和 API 管理Atlas时通常所需的特定访问权限级别。为了简化管理,您可以将角色映射到 IdP 群组。
如要连接到 Atlas 集群,请使用细粒度的自定义数据库角色,根据角色所需的访问权限来精确限定范围。此方法使您能够遵循最小权限原则。
注意
您应始终通过分配最低必要的 RBAC 角色来限制访问。您还应使用域限制。
您可以分配两种级别的角色:组织级和项目级。
组织级角色
服务账户使用组织级角色来自动化执行创建新项目、管理 IAM 和计费等任务。平台团队成员也可以使用这些角色。
应严格限制
Organization Owner角色,而不是将其分配给人类,因为它能力更改组织范围的设置和删除配置。应将此角色分配给仅用于初始设立和配置组织的服务帐户。初始创建后尽量减少配置更改。为避免帐户锁定,您可以创建以下项目:具有 实时访问 权限的 SAML 组织所有者群组。
拥有组织级所有者角色的服务账户。将其妥善存放,并实施严格的访问管理,以应对紧急绕过场景。
Organization Member角色应适用于操作和平台团队的管理员,他们能够查看组织的设置和配置。Organization Project Creator角色应该是编程服务帐户,用于代表开发和产品团队的新应用程序创建项目。Organization Billing Admin角色应该是一个编程服务帐号,用于以编程方式从 Billing API中提取发票并将其输入您的 FinOps 工具。该服务帐户应有权访问权限其负责报告使用情况的所有关联组织。
项目级角色
项目级角色适用于负责应用程序开发和维护的开发、测试和产品团队。与组织级角色一样,您应始终遵循最小权限原则。例如,Project Owner 角色应仅用于由运维和资源预配团队强制执行的治理。由于 Project Owner 可以创建和删除集群,您应将此角色分配给用于自动化的服务账户,除非您在沙盒环境中工作。
要了解有关项目级角色的更多信息,请参阅:
联合身份提供程序
通过将 Atlas 与联合身份提供程序集成,您可以将身份提供程序的用户组映射到 Atlas 角色,以实现即时预配。这样可以简化访问管理,确保整个平台的角色分配安全有序。您可以根据编排层的预配过程以编程方式授予访问权限。
应使用提供 SSO 的现代联合身份提供程序 (FIP),例如Azure Entra ID、Okta 或 Ping Identity。这使得授权进程更加安全,并支持以编程方式将 IdP 群组分配给Atlas角色所需的灵活性。您应限制对公司域的访问权限,防止用户在无权访问权限时登录Atlas 。
要了解更多关于将角色映射到联合身份提供程序群组的信息,请参阅 角色映射流程。
及时访问权限
Atlas 还支持创建临时数据库用户,这些用户会在预定义时间后自动过期。用户的有效期可以设置为 6 小时、1 天或 1 周。
要了解更多信息,请参阅 配置数据库用户。
示例
有关配置授权的示例,请参阅授权和身份验证示例。