Az Azure szerepköralapú hozzáférés-vezérlésének használata a Kubernetes konfigurációs fájlhoz való hozzáférés definiálásához az Azure Kubernetes Service-ben (AKS)
A Kubernetes-fürtökkel az kubectl
eszközzel kommunikálhat. Az Azure CLI segítségével egyszerűen lekérheti a hozzáférési hitelesítő adatokat és a kubeconfig konfigurációs fájlt az AKS-fürtökhöz kubectl
való csatlakozáshoz. Az Azure szerepköralapú hozzáférés-vezérlésével (Azure RBAC) korlátozhatja, hogy kik férhetnek hozzá a kubeconfig fájlhoz és az engedélyükhöz.
Ez a cikk bemutatja, hogyan rendelhet hozzá olyan Azure-szerepköröket, amelyek korlátozzák, hogy kik kaphatják meg az AKS-fürtök konfigurációs adatait.
Előkészületek
- Ez a cikk feltételezi, hogy van egy meglévő AKS-fürtje. Ha AKS-fürtre van szüksége, hozzon létre egyet az Azure CLI, az Azure PowerShell vagy az Azure Portal használatával.
- Ez a cikk azt is megköveteli, hogy az Azure CLI 2.0.65-ös vagy újabb verzióját futtassa. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.
Fürtszerepkörökhöz elérhető engedélyek
Amikor egy AKS-fürtöt használ az kubectl
eszközzel, egy kubeconfig nevű konfigurációs fájl határozza meg a fürt kapcsolati adatait. Ez a konfigurációs fájl általában a ~/.kube/config fájlban van tárolva. Ebben a kubeconfig fájlban több fürt is definiálható. A parancs használatával válthat a kubectl config use-context
fürtök között.
A az aks get-credentials
parancs segítségével lekérheti egy AKS-fürt hozzáférési hitelesítő adatait, és egyesítheti ezeket a hitelesítő adatokat a kubeconfig fájlban. Az Azure RBAC használatával szabályozhatja a hitelesítő adatokhoz való hozzáférést. Ezek az Azure-szerepkörök lehetővé teszik annak meghatározását, hogy ki tudja lekérni a kubeconfig fájlt, és milyen engedélyekkel rendelkezik a fürtben.
Két Azure-szerepkör alkalmazható egy Microsoft Entra-felhasználóra vagy -csoportra:
Azure Kubernetes-szolgáltatásfürt Rendszergazda szerepkör
- Engedélyezi az API-híváshoz
Microsoft.ContainerService/managedClusters/listClusterAdminCredential/action
való hozzáférést. Ez az API-hívás felsorolja a fürt rendszergazdai hitelesítő adatait. - Letölti a fürt kubeconfig Rendszergazda szerepkörét.
- Engedélyezi az API-híváshoz
Azure Kubernetes-szolgáltatásfürt felhasználói szerepköre
- Engedélyezi az API-híváshoz
Microsoft.ContainerService/managedClusters/listClusterUserCredential/action
való hozzáférést. Ez az API-hívás felsorolja a fürt felhasználói hitelesítő adatait. - Letölti a kubeconfigot a clusterUser szerepkörhöz.
- Engedélyezi az API-híváshoz
Megjegyzés:
A Microsoft Entra-azonosítót használó fürtökön a clusterUser szerepkörrel rendelkező felhasználók üres kubeconfig fájllal rendelkeznek, amely bejelentkezést kér. A bejelentkezést követően a felhasználók a Microsoft Entra felhasználói vagy csoportbeállításai alapján férhetnek hozzá. A fürttel rendelkező felhasználók Rendszergazda rendszergazdai hozzáféréssel rendelkeznek.
A Microsoft Entra-azonosítót nem használó fürtök esetén a fürtfelhasználói szerepkör a fürt Rendszergazda szerepkörre is hatással van.
Szerepkör-engedélyek hozzárendelése felhasználóhoz vagy csoporthoz
Az elérhető szerepkörök egyikének hozzárendeléséhez le kell kérnie az AKS-fürt erőforrás-azonosítóját és a Microsoft Entra felhasználói fiók vagy csoport azonosítóját az alábbi lépések végrehajtásával:
- Kérje le a fürt erőforrás-azonosítóját a
az aks show
myAKSCluster nevű fürt parancsával a myResourceGroup erőforráscsoportban. Szükség szerint adja meg a saját fürt és erőforráscsoport nevét. - A felhasználói azonosító és
az ad user show
aaz account show
parancsok használatával kérje le a felhasználóazonosítót. - Szerepkör hozzárendelése a
az role assignment create
parancs használatával.
Az alábbi példa az Azure Kubernetes-szolgáltatásfürt Rendszergazda szerepkört rendeli hozzá egy egyéni felhasználói fiókhoz:
# Get the resource ID of your AKS cluster
AKS_CLUSTER=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query id -o tsv)
# Get the account credentials for the logged in user
ACCOUNT_UPN=$(az account show --query user.name -o tsv)
ACCOUNT_ID=$(az ad user show --id $ACCOUNT_UPN --query objectId -o tsv)
# Assign the 'Cluster Admin' role to the user
az role assignment create \
--assignee $ACCOUNT_ID \
--scope $AKS_CLUSTER \
--role "Azure Kubernetes Service Cluster Admin Role"
Ha engedélyeket szeretne hozzárendelni egy Microsoft Entra-csoporthoz, frissítse az --assignee
előző példában látható paramétert a csoport objektumazonosítójával a felhasználó helyett.
Egy csoport objektumazonosítójának lekéréséhez használja a az ad group show
parancsot. A következő parancs lekéri az appdev nevű Microsoft Entra-csoport objektumazonosítóját:
az ad group show --group appdev --query objectId -o tsv
Fontos
Bizonyos esetekben, például a Microsoft Entra vendégfelhasználói, a fiókban lévő user.name eltérnek a userPrincipalName névtől.
$ az account show --query user.name -o tsv
user@contoso.com
$ az ad user list --query "[?contains(otherMails,'user@contoso.com')].{UPN:userPrincipalName}" -o tsv
user_contoso.com#EXT#@contoso.onmicrosoft.com
Ebben az esetben állítsa a ACCOUNT_UPN értékét a Microsoft Entra-felhasználó userPrincipalName elemére. Ha például a fiókja user.name , user@contoso.comez a művelet a következő példához hasonlóan fog kinézni:
ACCOUNT_UPN=$(az ad user list --query "[?contains(otherMails,'user@contoso.com')].{UPN:userPrincipalName}" -o tsv)
A konfigurációs adatok lekérése és ellenőrzése
A szerepkörök hozzárendelése után a az aks get-credentials
paranccsal szerezze be az AKS-fürt kubeconfig-definícióját . Az alábbi példa lekéri a --admin hitelesítő adatokat, amelyek megfelelően működnek, ha a felhasználó megkapta a fürt Rendszergazda szerepkört:
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster --admin
Ezután a kubectl config view
paranccsal ellenőrizheti, hogy a fürt környezete a rendszergazdai konfigurációs adatok alkalmazását mutatja-e.
$ kubectl config view
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://myaksclust-myresourcegroup-19da35-4839be06.hcp.eastus.azmk8s.io:443
name: myAKSCluster
contexts:
- context:
cluster: myAKSCluster
user: clusterAdmin_myResourceGroup_myAKSCluster
name: myAKSCluster-admin
current-context: myAKSCluster-admin
kind: Config
preferences: {}
users:
- name: clusterAdmin_myResourceGroup_myAKSCluster
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
token: e9f2f819a4496538b02cefff94e61d35
Szerepkör-engedélyek eltávolítása
A szerepkör-hozzárendelések eltávolításához használja a az role assignment delete
parancsot. Adja meg az előző lépésekben beszerzett fiókazonosítót és fürterőforrás-azonosítót. Ha a szerepkört nem felhasználóhoz, hanem csoporthoz rendelte, a paraméter fiókobjektum-azonosítója helyett adja meg a megfelelő csoportobjektum-azonosítót --assignee
.
az role assignment delete --assignee $ACCOUNT_ID --scope $AKS_CLUSTER
Következő lépések
Az AKS-fürtökhöz való hozzáférés fokozott biztonsága érdekében integrálja a Microsoft Entra-hitelesítést.