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 kubectlvaló 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

  • Azure Kubernetes-szolgáltatásfürt felhasználói szerepköre

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:

  1. 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.
  2. A felhasználói azonosító és az ad user show a az account show parancsok használatával kérje le a felhasználóazonosítót.
  3. 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.