我正在按照此处的说明在与 Azure AD 集成的 AKS 群集中设置 RBAC 。我在我的 AAD 租户中创建了一个 AD 组,向其中添加了一个用户。然后按照说明在 AKS 群集中为该组分配“群集用户角色”。创建了一个角色和角色绑定,如下所示:
角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: development
name: restricted-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
角色绑定:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: development
subjects:
- kind: Group
name: 308f50cb-e05a-4340-99d4-xxxxxxxb
apiGroup: rbac.authorization.k8s.io
namespace: development
roleRef:
kind: Role
name: restricted-role
apiGroup: rbac.authorization.k8s.io
然后我尝试使用新的用户凭据登录:
az login --username kubeuser@xxx.onmicrosoft.com --password xxxx
az aks get-credentials --name mycluster --resource-group myrg --overwrite-existing
根据文档,我应该只被允许在开发命名空间上做 kubectl get pods。但是,使用这个新的用户凭据,我看到我可以执行 kubectl get pods --all-namespaces、kubectl get svc --all-namespaces 等并查看结果,就好像角色绑定根本没有任何影响一样。我还通过检查我的集群是否有
“启用RBAC”:真
有人可以告诉我这个配置有什么问题吗?