基于Azure RBAC的AKS权限管控及kubelogin相关疑问
问题解答
一、两类用户的Azure角色配置
1. 开发人员(只读访问+拉取凭证)
需要给用户分配两个Azure内置角色,组合实现需求:
- Azure Kubernetes Service Cluster User Role:允许执行
az aks get-credentials拉取集群kubeconfig凭证,是访问AKS集群的基础权限。 - Azure Kubernetes Service Reader Role:对应Kubernetes层面的只读权限,允许执行
kubectl get、kubectl logs、kubectl events等操作,禁止创建/删除部署、密钥等修改类操作。
2. 可创建部署的人员(读写访问+拉取凭证)
同样需要基础的凭证拉取权限,再配合资源管理权限:
- Azure Kubernetes Service Cluster User Role:同上,确保能拉取集群凭证。
- Azure Kubernetes Service Contributor Role:允许管理AKS集群内的大部分资源,包括创建、更新部署,同时保留对集群的日常管理权限。如果需要更精细的权限控制(比如仅允许创建部署,不允许其他资源操作),可以基于Azure自定义角色,限定对应的Kubernetes资源操作权限。
二、kubelogin与az aks get-credentials的关系
AKS 1.24及以上版本确实会自动集成kubelogin作为认证插件,但仍然需要执行az aks get-credentials:
- 该命令的核心作用是将AKS集群的kubeconfig配置写入本地
~/.kube/config(Windows为%USERPROFILE%\.kube\config)。 - 在1.24+版本中,执行该命令时会自动在kubeconfig中配置kubelogin作为认证方式,无需手动安装或配置kubelogin参数。后续执行
kubectl命令时,kubelogin会自动处理Microsoft Entra ID的认证流程。 - 简单说:kubelogin是底层的认证工具,而
az aks get-credentials是帮你完成kubeconfig配置(包括集成kubelogin)的必要步骤,二者缺一不可。
内容的提问来源于stack exchange,提问作者sbolla
相关产品推荐
相关产品推荐

