什么是工作负载标识?

工作负载标识是分配给软件工作负载(例如应用程序、服务、脚本或容器)用来进行身份验证和访问其他服务和资源的标识。 此术语在整个行业中并不一致,但通常情况下,工作负荷标识是软件实体在某些系统中进行身份验证所需的。 例如,为了让 GitHub Actions 访问 Azure 订阅,操作需要对相应订阅具有访问权限的工作负载标识。 工作负荷标识还可以是附加到 EC2 实例的 AWS 服务角色,该角色具有对 Amazon S3 Bucket 的只读访问权限。

在 Microsoft Entra 中,工作负载标识是应用程序、服务主体和托管标识。

应用程序是一个抽象实体或模板,由其应用程序对象定义。 应用程序对象是应用程序的全局表示形式,可以跨所有租户使用。 应用程序对象描述令牌的发出方式、应用程序需要访问的资源以及应用程序可以执行的操作。

服务主体是特定租户中某个全局应用程序对象的本地表示形式或应用程序实例。 应用程序对象作为模板用来在使用应用程序时所在的每个租户中创建服务主体对象。 服务主体对象定义应用可在特定租户中实际执行的操作、可访问应用的用户以及应用可访问的资源。

托管标识是特殊类型的服务主体,无需开发人员管理凭据。

下面是 Microsoft Entra ID 中工作负载标识的一些使用方式:

  • 在管理员或用户同意的情况下,Web 应用通过应用访问 Microsoft Graph。 此访问权限可以代表用户,也可以代表应用程序。
  • 开发人员使用托管标识为其服务预配访问 Azure 资源(例如 Azure Key Vault 或 Azure 存储)的权限。
  • 开发人员使用服务主体,使 CI/CD 管道能够将 Web 应用从 GitHub 部署到 Azure 应用服务。

工作负荷标识、其他计算机标识和人员标识

大体看来,有两种类型的标识:人员标识和计算机/非人员标识。 工作负荷标识和设备标识共同构成名为计算机(或非人员)标识的组。 工作负荷标识表示软件工作负荷,而设备标识表示设备(如台式计算机、移动设备、IoT 传感器和 IoT 托管设备)。 计算机标识不同于人类标识,后者代表员工(内部工作人员和一线工作人员)和外部用户(客户、顾问、供应商和合作伙伴)等人员。

显示不同类型的计算机和人员标识。

保护工作负载标识的需求

如今,越来越多的解决方案依赖于非人类实体完成重要任务,非人类标识的数量也在急剧增加。 从最近发生的网络攻击可以看出,攻击者越来越多地以非人类标识而非人类标识为目标。

人类用户通常拥有用于访问各种资源的单个标识。 与人类用户不同,软件工作负载可能会处理多个凭据来访问不同的资源,并且需要安全地存储这些凭据。 此外,很难跟踪工作负载标识的创建时间或应何时撤销该标识。 因为很难保护工作负载标识,企业面临着应用程序或服务被利用或破坏的风险。

显示在保护工作负载标识方面的痛点的示意图。

目前市面上的大多数标识和访问管理解决方案仅侧重于保护人类标识,却疏于保护工作负载标识。 Microsoft Entra 工作负载 ID 可帮助在保护工作负载标识时解决上述问题。

关键方案

下面是工作负载标识的一些使用方式。

采用自适应策略保护访问:

简化生命周期管理:

  • 访问受 Microsoft Entra 保护的资源,而无需管理使用托管标识在 Azure 上运行的工作负载的机密。
  • 访问受 Microsoft Entra 保护的资源,而无需管理受支持方案(例如 GitHub Actions、在 Kubernetes 上运行的工作负载,或使用工作负载联合身份验证在 Azure 外部的计算平台中运行的工作负载)的机密。
  • 使用针对服务主体的访问评审来评审 Microsoft Entra ID 中分配了特权目录角色的服务主体和应用程序。

后续步骤