重要
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
上下文
AKS 的现有工作负荷标识功能具有缩放限制,因为单个用户分配的托管标识(UAMI)不能超过 20 个联合标识凭据(FIC)。 大型 Kubernetes 平台部署可能跨越 20 多个群集(每个群集具有唯一的颁发者),或者有许多 <namespace, service-account> 组合需要映射到同一 UAMI,从而耗尽 FIC 配额。
标识绑定是 AKS 上的工作负荷标识的一种演变,其侧重于可伸缩性和操作简单性。 对于需要 Microsoft Entra 身份验证的 AKS 工作负荷,当需要在多个群集中重复使用同一用户分配的托管标识时,建议使用标识绑定,同时保持在 FIC 限制内。
概念简介
标识绑定是 一个用户分配的托管标识(UAMI) 与 一个 AKS 群集 之间的资源映射,该群集具有需要使用该标识的 Entra 身份验证的工作负荷。 如果运行在群集MI-1、AKS-1、AKS-2的工作负荷需要 UAMI AKS-3,那么您应该创建单独的身份绑定映射。
-
IB-A映射MI-1到AKS-1 -
IB-B映射MI-1到AKS-2 -
IB-C映射MI-1到AKS-3
即使在多个集群中需要相同的 UAMI,对于每个 UAMI 也只创建一个联邦身份凭证,从而解决之前的 20 个 FIC 限制问题。 当群集操作员创建标识绑定时,AKS 会自动为该 UAMI 创建单个联合标识凭据(或重复使用)。
创建绑定并授权群集的 UAMI 后,群集操作员必须定义 ClusterRole 和 ClusterRoleBinding 对象,这些对象指定允许使用该托管标识(UAMI)进行 Microsoft Entra 令牌获取的命名空间和服务帐户(逐一或整体)。
Azure 标识客户端库
若要将标识绑定用于应用程序的工作负载,请执行以下操作:
- 确保使用最低要求的 Azure 标识包。
- 使用
WorkloadIdentityCredential并选择加入该功能。 此功能在ManagedIdentityCredential或DefaultAzureCredential中不支持。
| 语言 | 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 或更高版本 | 设置为 enableAzureKubernetesTokenProxytrue 。WorkloadIdentityCredentialOptions |
| 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 权限: 能够创建 ClusterRole 和 ClusterRoleBinding 对象(群集管理员或等效对象)。
删除 UAMI 的所有身份绑定后,自动创建的 FIC 会有什么变化?
今天,当删除引用 UAMI 的最后一个标识绑定时,FIC 不会进行自动垃圾回收。 只有在验证已删除该 UAMI 的所有标识绑定后,操作员才应手动清理 FIC,以避免中断剩余的依赖项。
标识绑定存在哪些网络先决条件?
以前,工作负载标识需要出口到login.partner.microsoftonline.cn,以便工作负载可以交换服务帐户令牌为Microsoft Entra访问令牌。 使用标识绑定时,令牌交换请求通过由 AKS 运行的集群特定标识绑定代理进行路由。 不需要直接访问 login.partner.microsoftonline.cn 进行令牌交换。
后续步骤
请继续进行设置标识绑定以获取分步指南。