AKS - 使用 Azure RBAC 的 Microsoft Entra ID 身份验证

问题描述 投票:0回答:1

我在 Azure 订阅中有一个 AKS。 AKS 版本是 1.26.x。不老。我已进入“群集配置”并选择“使用 Azure RBAC 进行 Microsoft Entra ID 身份验证”。而不是“使用 Kubernetes RBAC 进行 Microsoft Entra ID 身份验证”。它最初设置为 Kubernetes 的本地帐户。

现在,我想知道如何控制对 AKS 集群的访问。我的开发人员需要能够提取 az aks 凭证,并且仅需要 kubectl get、kubectl 日志和 kubectl 事件。我不希望他们创建或删除任何部署或任何机密。但他们可以阅读。

有些人希望能够获得信用并创建部署。我想知道如何管理这两类人以及通过哪些角色来管理。感谢任何见解。

我也很困惑为什么我们需要 kubelogin,听起来如果我使用 AKS 版本 > 1.24,我们会自动使用 kubelogin。这是什么意思?这是否意味着不能使用 az aks get-credentials?

参考:https://learn.microsoft.com/en-us/azure/aks/manage-azure-rbac

enter image description here

azure-aks
1个回答
0
投票

要使用 Microsoft Entra ID 和 Azure RBAC 管理对 AKS 群集的访问,您需要根据不同的用户组的访问要求为其分配适当的角色

首先,在 Azure Active Directory (AAD) 中为不同的用户类别创建组(如果尚未可用)。

创建开发者组(只读访问)

az ad group create --display-name "AKS-Developers" --mail-nickname "aksdevelopers"

enter image description here

为运维团队创建一个组(创建/管理部署)

az ad group create --display-name "AKS-Ops" --mail-nickname "aksops"

enter image description here

为这些组分配适当的内置 RBAC 角色。

将 RBAC 读取者角色分配给开发者组

az role assignment create --assignee <developers-group-object-id> --role "Azure Kubernetes Service RBAC Reader" --scope /subscriptions/<Subscription-ID>/resourcegroups/<Resource-Group>/providers/Microsoft.ContainerService/managedClusters/<Cluster-Name>

enter image description here

如果需要,将 RBAC 贡献者角色分配给 Ops 团队组

az role assignment create --assignee <ops-team-group-object-id> --role "Azure Kubernetes Service RBAC Contributor" --scope /subscriptions/<Subscription-ID>/resourcegroups/<Resource-Group>/providers/Microsoft.ContainerService/managedClusters/<Cluster-Name>

现在,如果您的成员已经添加到群组中,则不需要此步骤,如果创建新群组并且您要添加成员,那么-

az ad group member add --group 'AKS-Developers' --member-id <User-Object-ID>

如何获取用户对象id?

az ad user list --query "[].{name: displayName, objectId: objectId}"

如果你知道名字,那么

az ad user list --query "[?contains(displayName, 'NameOfThePerson')].{name: displayName, objectId: objectId}"

设置

kubectl
,通过使用
kubelogin
检索凭据来使用 Azure AD 进行身份验证。

az aks get-credentials --resource-group <Resource-Group> --name <Cluster-Name> --use-kubelogin

此命令会自动配置您的 kubeconfig 以使用

kubelogin
进行 Azure AD 身份验证,从而简化登录过程并实现无缝令牌刷新。

完成。验证访问控制-

kubectl get pods --all-namespaces

kubectl get deployments --all-namespaces=true

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.