【问题标题】:Azure Kubernetes - RBAC role for namespace isolationAzure Kubernetes - 用于命名空间隔离的 RBAC 角色
【发布时间】:2021-12-11 14:24:50
【问题描述】:

我想知道是否可以在 Azure Kubernetes 服务上隔离命名空间。现在,如果我将 rbac 角色分配给我的同事,他们可以看到所有命名空间,我想为部门隔离命名空间,例如data 只能看到 data 命名空间,dev 只能看到 den 命名空间等。

有可能吗?

谢谢

【问题讨论】:

    标签: azure kubernetes azure-aks rbac


    【解决方案1】:

    是的,您必须启用 AKS-managed Azure Active DirectoryRole-based access control (RBAC)Azure RBAC for Kubernetes Authorization。有两种选择:

    az aks create \
      -g myResourceGroup \
      -n myManagedCluster \
      --enable-aad \
      --enable-azure-rbac
    

    第一个选项:

    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: data
      labels:
        kubernetes.io/metadata.name: data
    ---
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: data-view-access
      namespace: data
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: view
    subjects:
    - kind: Group
      namespace: data
      name: <GROUP_OBJECT_ID>
    

    第二个选项是按照here 的说明使用 Azure 自定义角色,以及用户 yk1 的示例:

    az role assignment create \
      --role "Azure Kubernetes Service RBAC Reader" \
      --assignee <AAD-ENTITY-ID> \
      --scope $AKS_ID/namespaces/<namespace-name>
    

    注意:所有用户必须是Azure Kubernetes Service Cluster User Role 的成员才能执行az aks get-credentials

    【讨论】:

    • 你可以把这个例子放在那里az role assignment create --role "Azure Kubernetes Service RBAC Reader" --assignee &lt;AAD-ENTITY-ID&gt; --scope $AKS_ID/namespaces/&lt;namespace-name&gt;
    • 非常感谢,我添加了你的例子!
    • 大家好,抱歉耽搁了。谢谢你的例子。使用该命令我可以隔离命名空间,因此如果我为所有命名空间创建一些天蓝色广告组,例如:rbac_namespace1 rbac_namespace2 ecc... 我可以使用该命令将组设置为相对命名空间?我必须赋予哪个角色来管理命名空间的各个方面?
    • 对于用户需要 Azure Kubernetes Service Cluster User RoleAzure Kubernetes Service RBAC Reader 的所有命名空间,或者如果您使用的是 Option1:您可以使用 ClusterRoleBinding 而不是 RoleBinding 作为 ClusterRole view。您能否将答案标记为正确以帮助其他有相同问题的用户?
    • 谢谢菲尔,我认为我更喜欢通过 rbac 进行管理。那么在那之后,我可以从这个角色中删除用户 Azure Kubernetes 服务集群管理员角色、Azure Kubernetes 服务集群用户角色、Azure Kubernetes 服务参与者角色吗?现在我们必须让用户扮演所有角色,因为没有它,现在用户什么也做不了。我今天要测试,我现在就让你
    猜你喜欢
    • 2017-09-23
    • 2020-01-03
    • 1970-01-01
    • 2021-05-22
    • 2021-09-12
    • 2021-03-13
    • 2021-10-24
    • 2015-03-09
    • 2017-05-09
    相关资源
    最近更新 更多