【问题标题】:Azure RBAC and AKS not working as expectedAzure RBAC 和 AKS 未按预期工作
【发布时间】:2021-12-06 09:27:45
【问题描述】:

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

  • 创建了一个新用户
  • 已将角色 Azure Kubernetes Service Cluster User Role 和 Azure Kubernetes Service RBAC Reader 分配给此用户。
  • 执行以下命令:az aks get-credentials --resource-group RG1 --name aksttest

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

在集群中我没有做任何 RoleBinding。根据docu from Microsoft,集群中不需要额外的任务(例如角色定义和角色绑定)。

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

请告诉我你的想法, 提前致谢, 迈克

【问题讨论】:

    标签: azure-aks azure-rbac


    【解决方案1】:

    当您使用AKS-managed Azure Active Directory 时,它启用AD 用户身份验证,但授权发生在Kubernetes RBAC 只有,所以,你必须separately 配置Azure IAMKubernetes RBAC。例如,它添加了aks-cluster-admin-binding-aad ClusterRoleBinding,它提供了对包含在 Admin Azure AD 组中的帐户的访问权限。

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

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

    az aks update -g <myResourceGroup> -n <myAKSCluster> --enable-azure-rbac
    

    【讨论】:

    • 我的错,你的回答很好,但我错过了点击但无法更改它,直到你编辑一些东西:(
    • @PhilipWelz:哦!编辑以添加更多说明,总有改进的余地!
    • 谢谢!我现在更正了:)
    • 感谢您的帮助。它现在可以正常工作了。
    • 您能否将答案标记为正确以帮助其他用户?
    猜你喜欢
    • 2018-10-25
    • 2018-10-17
    • 2018-10-04
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多