Azure Kubernetes 服务(AKS)的标识绑定(预览版)

重要

AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:

上下文

AKS 的现有工作负荷标识功能具有缩放限制,因为单个用户分配的托管标识(UAMI)不能超过 20 个联合标识凭据(FIC)。 大型 Kubernetes 平台部署可能跨越 20 多个群集(每个群集具有唯一的颁发者),或者有许多 <namespace, service-account> 组合需要映射到同一 UAMI,从而耗尽 FIC 配额。

标识绑定是 AKS 上的工作负荷标识的一种演变,其侧重于可伸缩性和操作简单性。 对于需要 Microsoft Entra 身份验证的 AKS 工作负荷,当需要在多个群集中重复使用同一用户分配的托管标识时,建议使用标识绑定,同时保持在 FIC 限制内。

概念简介

标识绑定是 一个用户分配的托管标识(UAMI)一个 AKS 群集 之间的资源映射,该群集具有需要使用该标识的 Entra 身份验证的工作负荷。 如果运行在群集MI-1AKS-1AKS-2的工作负荷需要 UAMI AKS-3,那么您应该创建单独的身份绑定映射。

  • IB-A 映射MI-1AKS-1
  • IB-B 映射MI-1AKS-2
  • IB-C 映射MI-1AKS-3

即使在多个集群中需要相同的 UAMI,对于每个 UAMI 也只创建一个联邦身份凭证,从而解决之前的 20 个 FIC 限制问题。 当群集操作员创建标识绑定时,AKS 会自动为该 UAMI 创建单个联合标识凭据(或重复使用)。

显示使用单个 FIC 时将 UAMI 映射到多个 AKS 群集的标识绑定的关系图。

创建绑定并授权群集的 UAMI 后,群集操作员必须定义 ClusterRoleClusterRoleBinding 对象,这些对象指定允许使用该托管标识(UAMI)进行 Microsoft Entra 令牌获取的命名空间和服务帐户(逐一或整体)。

Azure 标识客户端库

若要将标识绑定用于应用程序的工作负载,请执行以下操作:

  1. 确保使用最低要求的 Azure 标识包。
  2. 使用 WorkloadIdentityCredential 并选择加入该功能。 此功能在 ManagedIdentityCredentialDefaultAzureCredential 中不支持。
语言 Package 最低版本 如何启用
.NET Azure.Identity v1.18.0-beta.2 或更高版本 WorkloadIdentityCredential 默认情况下禁用标识绑定模式。 将 WorkloadIdentityCredentialOptions.IsAzureKubernetesTokenProxyEnabled 设置为 true
Go azidentity v1.14.0-beta.2 或更高版本 WorkloadIdentityCredentialOptions.EnableAzureTokenProxy 设置为 true
Java azure-identity v1.19.0-beta.1 或更高版本 enableAzureTokenProxy() 上调用 WorkloadIdentityCredentialBuilder
JavaScript @azure/identity 4.14.0-beta.1 或更高版本 设置为 enableAzureKubernetesTokenProxytrueWorkloadIdentityCredentialOptions
Python azure-identity 1.26.0b1 或更高版本 use_token_proxy=True 中设置 WorkloadIdentityCredential

FAQ

使用同一 UAMI 时,跨群集是否需要标识相同性(例如命名空间和服务帐户具有相同的身份)?

否。 标识绑定不需要命名空间/服务帐户相同。 由群集操作员显式授权每个群集中的命名空间和服务帐户,以便通过 RBAC 使用托管标识。

是否可以为同一 UAMI 创建多个标识绑定?

是的。 AKS 为该 UAMI 维护的 OIDC 颁发者 URL 在所有引用同一托管标识的标识绑定中都是相同的。

创建标识绑定需要哪些权限?

所需的 Azure 资源管理器(ARM)权限:

  • Microsoft.ContainerService/managedClusters/identityBindings/*
  • Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/*

注释

创建标识绑定时,AKS 会代表群集操作员自动创建联合标识凭据(FIC)。 如果调用方缺少创建 FIC 资源的权限,则标识绑定创建将失败。

所需的 Kubernetes 权限: 能够创建 ClusterRoleClusterRoleBinding 对象(群集管理员或等效对象)。

删除 UAMI 的所有身份绑定后,自动创建的 FIC 会有什么变化?

今天,当删除引用 UAMI 的最后一个标识绑定时,FIC 不会进行自动垃圾回收。 只有在验证已删除该 UAMI 的所有标识绑定后,操作员才应手动清理 FIC,以避免中断剩余的依赖项。

标识绑定存在哪些网络先决条件?

以前,工作负载标识需要出口到login.partner.microsoftonline.cn,以便工作负载可以交换服务帐户令牌为Microsoft Entra访问令牌。 使用标识绑定时,令牌交换请求通过由 AKS 运行的集群特定标识绑定代理进行路由。 不需要直接访问 login.partner.microsoftonline.cn 进行令牌交换。

后续步骤

请继续进行设置标识绑定以获取分步指南。