Azure Cosmos DB for MongoDB 的安全指南

适用对象: MongoDB

使用 Azure Cosmos DB for MongoDB 时,请务必确保授权用户和应用程序有权访问数据,同时防止无意或未经授权的访问。

虽然使用密钥和资源所有者密码凭据看似很方便,但由于多种原因,不建议使用这些方法。 首先,这些方法缺乏 Microsoft Entra 身份验证提供的可靠性和灵活性。 Microsoft Entra 提供了增强的安全功能,例如多重身份验证和条件访问策略,这些功能大大降低了未经授权访问的风险。 通过使用 Microsoft Entra,可以显著增强应用程序的安全状况,保护敏感数据免受潜在威胁。

管理访问权限

借助使用 Microsoft Entra 的基于角色的访问控制,你能够管理哪些用户、设备或工作负载可以访问你的数据,以及他们可以访问这些数据的程度。 在角色定义中使用细化权限,可以灵活地实施“最小特权”的安全原则,同时保持开发过程中的数据访问简单且高效。

在生产环境中授予访问权限

在生产应用程序中,Microsoft Entra 提供了多种标识类型,包括但不限于:

  • 特定应用程序工作负载的工作负载标识
  • Azure 服务原生的系统分配托管标识
  • 可在多个 Azure 服务之间灵活重复使用的用户分配托管标识
  • 用于自定义和更复杂场景的服务主体
  • 用于边缘工作负载的设备标识

通过这些标识,可以授予特定的生产应用程序或工作负载对 Azure Cosmos DB 中的资源进行查询、读取或操作的细化访问权限。

在开发环境中授予访问权限

在开发过程中,Microsoft Entra 为开发人员的人类标识提供了同样的灵活性。 可以使用相同的基于角色的访问控制定义和分配技术,授予开发人员访问测试、临时或开发数据库帐户的权限。

安全团队可以使用一套工具在所有环境中管理帐户的标识和权限。

简化身份验证代码

通过 Azure SDK,可以在多种不同的场景下以编程方式访问 Azure Cosmos DB 数据:

  • 无论应用程序处于开发还是生产阶段
  • 无论使用的是人类标识、工作负载标识、托管标识还是设备标识
  • 无论团队更喜欢使用 Azure CLI、Azure PowerShell、Azure Developer CLI、Visual Studio 还是 Visual Studio Code
  • 无论团队使用 Python、JavaScript、TypeScript、.NET、Go 还是 Java

Azure SDK 提供了一个可与多种平台、开发语言和身份验证技术兼容的标识库。 学会如何启用 Microsoft Entra 身份验证后,此方法在所有场景中都保持不变。 无需为每个环境生成不同的身份验证堆栈。