使用托管身份实现安全访问

面向开发者的 Azure 安全实现

Anushika Agarwal

Cloud Data Engineer

机密带来的问题

  • 将机密硬编码在代码或配置中
  • 难以轮换或保护

硬编码机密的风险

面向开发者的 Azure 安全实现

托管身份

  • 将安全身份分配给 Azure 资源
  • 资源可安全访问其他服务
  • 无需存储凭据

托管身份

面向开发者的 Azure 安全实现

如何工作?

  • 一种特殊的服务主体
  • Azure 全面管理
  • Azure 负责创建、轮换和删除

托管身份

面向开发者的 Azure 安全实现

示例:PeopleSphere 人力资源应用

  • 薪资模块使用托管身份访问 Key Vault

示例 - PeopleSphere HR 应用

面向开发者的 Azure 安全实现

系统分配的托管身份

  • 预配

    • Azure 自动创建身份
    • 无需凭据或手动设置
  • 生命周期

    • 与资源同生同灭
    • 绑定到单个资源
  • 访问控制

    • 通过 Azure RBAC 分配角色

面向开发者的 Azure 安全实现

用户分配的托管身份

  • 预配

    • 作为独立的 Azure 资源创建
    • 一个访问策略,可用于多个资源
  • 生命周期

    • 可跨多个服务复用
    • 独立于任何单个资源
  • 访问控制

    • 通过 Azure RBAC 分配角色

用户分配的托管身份

面向开发者的 Azure 安全实现

系统分配 vs. 用户分配:关键差异

类别 系统分配 用户分配
预配 随资源创建 作为独立资源创建
生命周期 绑定资源生命周期 独立于资源生命周期
可复用性 不能跨资源共享 可跨服务复用
访问 使用 Azure RBAC 使用 Azure RBAC
适用场景 单资源工作负载 多资源或预先预配场景
面向开发者的 Azure 安全实现

哪些服务支持托管身份?

  • 任何支持 Microsoft Entra 身份验证 的服务

  • 常见示例

    • 虚拟机
    • 应用服务
    • Azure Functions
    • Key Vault
    • Azure 存储
  • 完整列表Microsoft 文档 - 支持的服务

虚拟机

应用服务

Azure Functions

Key Vault

Azure 存储

面向开发者的 Azure 安全实现

Vamos praticar!

面向开发者的 Azure 安全实现

Preparing Video For Download...