更新用于外部节点证书引导的自定义 Azure 角色

从 2026 年 11 月 30 日开始,Azure Kubernetes 服务 (AKS) 需要专用的 Azure RBAC DataAction 来授权 kubelet 客户端证书颁发。

Important

在 2026 年 11 月 30 日之前更新受影响的自定义Azure角色。 否则,新的外部节点可能无法加入 AKS 群集,并且现有外部节点可能无法续订其 kubelet 客户端证书。

此要求适用于用于外部节点启动或 kubelet 客户端证书续订的自定义Azure角色,包括 AKS Stretch 集成。 AKS 托管节点不应受到影响。

以前,更广泛的 certificatesigningrequests/write DataAction 还授权签发 kubelet 客户端证书。 AKS 正在分离这些权限,以帮助防止具有常规证书签名请求写入访问权限的主体获取使其能够以 Kubernetes 节点身份进行身份验证的证书。

确定自定义角色是否受到影响

如果自定义角色用于以下任一操作,将受到影响:

  • 外部节点启动。
  • 外部节点的 Kubelet 客户端证书续订。

如果自定义角色仅用于常规证书签名请求操作,则无需添加新权限。

查看Azure 服务运行状况通知或角色清单中的角色 ID,并确定每个角色的使用方式。 保留每个受影响的角色的现有证书签名请求和 API 发现权限。

添加所需的 DataAction

添加与集成使用的资源终结点对应的 DataAction:

资源端点 必需的 DataAction
托管群集 Microsoft.ContainerService/managedClusters/certificates.k8s.io/certificatesigningrequests/nodeclient/action
车队中心 Microsoft.ContainerService/fleets/certificates.k8s.io/certificatesigningrequests/nodeclient/action
机队成员 Microsoft.ContainerService/fleets/members/certificates.k8s.io/certificatesigningrequests/nodeclient/action
AI 管理器 Microsoft.ContainerService/aiManagers/certificates.k8s.io/certificatesigningrequests/nodeclient/action

例如,用于通过托管群集终结点启动外部节点的自定义角色包含以下权限:

{
  "DataActions": [
    "Microsoft.ContainerService/managedClusters/certificates.k8s.io/certificatesigningrequests/write",
    "Microsoft.ContainerService/managedClusters/certificates.k8s.io/certificatesigningrequests/read",
    "Microsoft.ContainerService/managedClusters/certificates.k8s.io/certificatesigningrequests/delete",
    "Microsoft.ContainerService/managedClusters/apis/certificates.k8s.io/read",
    "Microsoft.ContainerService/managedClusters/apis/certificates.k8s.io/v1beta1/read",
    "Microsoft.ContainerService/managedClusters/certificates.k8s.io/certificatesigningrequests/nodeclient/action"
  ]
}

对于 Fleet hub、机队成员或 AI 管理器访问权限,请使用上表中的相应资源路径。

更新受影响的角色:

  1. 检索当前角色定义。
  2. 将适用的 certificatesigningrequests/nodeclient/action 权限添加到该角色的 DataActions 属性中。
  3. 确认所有现有证书签名请求和 API 发现权限保持不变。
  4. 更新自定义角色定义。
  5. 请等待 Azure RBAC 更新完成传播。

验证角色更新

更新受影响的自定义角色后:

  1. 检索角色定义,并确认适用的 certificatesigningrequests/nodeclient/action 权限出现在 DataActions。
  2. 确认所有现有证书签名请求和 API 发现权限保持不变。
  3. 在测试环境中,执行端到端外部节点启动测试,并确认节点达到 Ready 状态。
  4. 对于现有集成,请验证 kubelet 客户端证书是否可以通过正常的验证过程成功续订。

预留大约一小时用于端到端外部节点启动测试。 所需的总时间可能因组织的更改管理过程和要更新的角色数而异。

后续步骤