MongoDB Atlas 支持多种授权方式,以确保资源访问的安全性和可靠性。Atlas 要求所有用户进行身份验证。一旦用户通过身份验证,授权将决定用户对资源的访问权限。
实施Atlas授权时,必须使用基于角色的访问控制 (RBAC)。使用联合身份提供商的用户组与 RBAC 结合使用可简化管理。
以下建议应用于所有部署范例中的劳动力(人员)和工作负载(应用程序)用户。
注意
The MongoDB Atlas Shared Responsibility Model defines the complementary duties of MongoDB and its customers in maintaining a secure and resilient data environment. Under this framework, MongoDB manages the security and operational integrity of the underlying platform, while customers are responsible for the configuration, management, and data policies of their specific deployments. For a detailed breakdown of ownership across security and operational excellence, see Shared Responsibility Model.
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。这使授权过程更加安全,并支持以编程方式为 Atlas 角色分配身份提供程序用户组所需的灵活性。您应该限制对公司域的访问,这样可以防止用户在未经授权的情况下登录 Atlas。
要了解更多关于将角色映射到联合身份提供程序群组的信息,请参阅 角色映射流程。
及时访问权限
Atlas 还支持创建临时数据库用户,这些用户会在预定义时间后自动过期。用户的有效期可以设置为 6 小时、1 天或 1 周。
要了解更多信息,请参阅 配置数据库用户。
示例
有关配置授权的示例,请参阅授权和身份验证示例。