Azure RBAC 和 AKS 未按预期工作

Mik*_*ike 4 azure-rbac azure-aks

我已创建一个 AKS 群集,并启用了 AKS 管理的 Azure Active Directory 和基于角色的访问控制 (RBAC)。如果我尝试使用管理 Azure AD 组中包含的帐户之一连接群集,一切都会正常进行。当我尝试对不是管理员 Azure AD 组成员的用户执行此操作时,我遇到了一些困难。我所做的如下:

  • 创建了一个新用户
  • 向该用户分配了 Azure Kubernetes 服务群集用户角色和 Azure Kubernetes 服务 RBAC 读取者角色。
  • 执行以下命令:az aks get-credentials --resource-group RG1 --name aksttest

然后,当我执行以下命令时: kubectl get pods -n test 我收到以下错误: 服务器错误(禁止):pods 被禁止:用户“aksthird@tenantname.onmicrosoft.com”无法在 API 组中列出资源“pods”命名空间“test”中的“”

在集群中我没有做任何RoleBinding。根据Microsoft 的文档,集群中不需要执行任何其他任务(例如角色定义和角色绑定)。

我的期望是,当用户分配了上述两个角色时,他应该能够在集群中拥有读取权限。难道我做错了什么?

请让我知道你的想法,提前致谢,迈克

YK1*_*YK1 5

当您使用AKS 管理的 Azure Active Directory时,它启用 AD 用户身份验证,但授权Kubernetes RBAC 仅发生在,因此,您必须单独配置Azure IAMKubernetes RBAC。例如,它添加了aks-cluster-admin-binding-aadClusterRoleBinding,提供对 Admin Azure AD 组中包含的帐户的访问权限。

Azure Kubernetes Service RBAC Reader角色适用于用于Kubernetes 授权的 Azure RBAC,这是AKS 管理的 Azure Active Directory 之上的功能,其中身份验证和授权均通过 AD 和 Azure RBAC 进行。它在 API 服务器上使用Webhook 令牌身份验证技术来验证令牌。

您可以在已集成 AAD 的现有集群上启用 Azure RBAC 进行 Kubernetes 授权:

az aks update -g <myResourceGroup> -n <myAKSCluster> --enable-azure-rbac
Run Code Online (Sandbox Code Playgroud)