You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AKS 未集成Azure AD场景下如何为用户授予全局只读权限?

问题原因

你之前分配的「Azure Kubernetes Service RBAC Reader」属于AKS托管AAD功能的专属角色,未启用该功能时,Azure侧的RBAC角色不会自动映射到Kubernetes集群内部的权限体系,仅「Azure Kubernetes Cluster Admin」这类直接授予集群管理员凭证的角色可以生效。

实现方案

无需启用AKS托管AAD,直接通过Kubernetes原生RBAC绑定目标Azure AD用户即可实现全局只读权限控制,操作步骤如下:

  • 步骤1:获取集群管理员权限的kubeconfig
    执行Azure CLI命令,拉取集群管理员访问凭证:
    az aks get-credentials --admin --name <你的AKS集群名称> --resource-group <集群所在资源组名称>
    
  • 步骤2:获取目标用户的Azure AD对象ID
    执行以下命令获取用户的AAD唯一标识,后续RBAC配置需要用到该ID:
    az ad user show --id <目标用户的用户主体名称,如audit-user@contoso.com> --query id -o tsv
    
  • 步骤3:创建并应用全局只读权限绑定
    新建YAML配置文件(如audit-view-rbac.yaml),内容如下:
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: aad-audit-user-global-view
    subjects:
    - kind: User
      name: <替换为步骤2获取到的用户AAD对象ID>
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: ClusterRole
      name: view # Kubernetes内置全局只读角色,默认不包含Secret等敏感资源读取权限
      apiGroup: rbac.authorization.k8s.io
    
    执行命令应用配置:
    kubectl apply -f audit-view-rbac.yaml
    
  • 步骤4:用户自行获取访问凭证
    目标用户在自己的设备上执行以下命令,用自身Azure AD账号登录获取集群访问凭证,即可正常查看集群资源:
    az aks get-credentials --name <你的AKS集群名称> --resource-group <集群所在资源组名称>
    

补充说明

如果审计场景需要读取Secret、ServiceAccount凭据等敏感资源,可以自定义包含所有资源get/list/watch权限的ClusterRole,替换上述配置中的view即可。

内容的提问来源于stack exchange,提问作者Vilius Kazakauskas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:18:00