Azure szerepköralapú hozzáférés-vezérlés (RBAC) használata a Kubernetes-engedélyezéshez
A következőkre vonatkozik: AKS az Azure Stack HCI 23H2-n
Az infrastruktúra-rendszergazdák azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) szabályozhatják, hogy ki férhet hozzá a kubeconfig fájlhoz és az engedélyükhöz. A Kubernetes-operátorok a kubectl eszközzel kezelhetik a Kubernetes-fürtöket a megadott engedélyek alapján. 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 való csatlakozáshoz a kubectl használatával.
Ha integrált hitelesítést használ a Microsoft Entra ID és az AKS között, a Microsoft Entra felhasználóit, csoportjait vagy szolgáltatásneveit használhatja a Kubernetes szerepköralapú hozzáférés-vezérlésének (Kubernetes RBAC) tantárgyaként. Ez a funkció lehetővé teszi a Kubernetes felhasználói identitásainak és hitelesítő adatainak külön kezelését. Az Azure RBAC-t és a Kubernetes RBAC-t azonban külön kell beállítania és kezelnie.
Ez a cikk azt ismerteti, hogyan használhatja az Azure RBAC-t a Kubernetes-fürt engedélyezéséhez Microsoft Entra-azonosítóval és Azure-szerepkör-hozzárendelésekkel.
Elméleti áttekintésért tekintse meg az Azure RBAC for Kubernetes Authorization for AKS-t, amelyet az Azure Arc engedélyez.
Mielőtt elkezdené
Mielőtt hozzákezdene, győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:
Az Azure Stack HCI 23H2 AKS jelenleg csak a Kubernetes-fürt létrehozásakor támogatja az Azure RBAC engedélyezését. A Kubernetes-fürt létrehozása után nem engedélyezheti az Azure RBAC-t.
Telepítse az aksarc és a connectedk8s Azure CLI-bővítmények legújabb verzióját. Vegye figyelembe, hogy az Azure RBAC engedélyezéséhez az aksarc bővítmény 1.1.1-es vagy újabb verzióját kell futtatnia. Futtassa
az --version
az aktuális verziót. Ha telepítenie vagy frissítenie kell az Azure CLI-t, tekintse meg az Azure CLI telepítését.az extension add --name aksarc az extension add --name connectedk8s
Ha már telepítette a bővítményt
aksarc
, frissítse a bővítményt a legújabb verzióra:az extension update --name aksarc az extension update --name connectedk8s
A Kubernetes-fürtök használatához telepítenie kell a kubectl és a kubelogin rendszert.
Kubernetes-fürt létrehozásakor az Azure RBAC engedélyezéséhez a következő engedélyekre van szüksége:
- Kubernetes-fürt létrehozásához az Azure Kubernetes Service Arc közreműködői szerepkörre van szüksége.
- A
--enable-azure-rbac
paraméter használatához a Microsoft.Authorization/roleAssignments/write engedélyhez való hozzáféréshez a szerepköralapú hozzáférés-vezérlési rendszergazdai szerepkörre van szükség. További információ: Beépített Azure-szerepkörök. - Az új szerepkör-hozzárendelések propagálása és frissítése akár öt percet is igénybe vehet.
Ha az Azure RBAC engedélyezve van, a kubernetes-fürtöt a megadott engedélyekkel érheti el közvetlen vagy proxy módban.
- Ahhoz, hogy a Kubernetes-fürtöt közvetlenül a
az aksarc get-credentials
paranccsal elérhesse, a Microsoft.HybridContainerService/provisionedClusterInstances/listUserKubeconfig/action fájlra van szüksége, amely az Azure Kubernetes Service Arc-fürt felhasználói szerepkör-engedélyében szerepel. - Ahhoz, hogy a Kubernetes-fürt bárhonnan elérhető legyen proxy móddal a parancs használatával
az connectedk8s proxy
, szüksége van a Microsoft.Kubernetes/connectedClusters/listClusterUserCredential/műveletre, amely az Azure Arc-kompatibilis Kubernetes-fürt felhasználói szerepkör-engedélyében szerepel. Eközben ellenőriznie kell, hogy az ügynökök és az előkészítési folyamatot végrehajtó gép megfelel-e az Azure Arc-kompatibilis Kubernetes hálózati követelményekben meghatározott hálózati követelményeknek.
- Ahhoz, hogy a Kubernetes-fürtöt közvetlenül a
A kubectl használatához az Azure RBAC vagy az AAD felügyeleti csoport használatával férhet hozzá.
- A kubectl Azure RBAC-vel való használatához az Azure Arc Kubernetes Viewer szerepkörre van szükség, amely a csatlakoztatott fürterőforrásra terjed ki.
- A kubectl az AAD felügyeleti csoporttal való használatához nincs szükség konkrét szerepkörre, de meg kell győződnie arról, hogy a csatlakoztatott fürterőforrás bővítmény-rendszergazdai csoportlistájában szerepel valamelyik csoportban.
1. lépés: Azure RBAC-kompatibilis Kubernetes-fürt létrehozása
Létrehozhat egy Azure RBAC-kompatibilis Kubernetes-fürtöt az engedélyezéshez, és egy Microsoft Entra-azonosítót a hitelesítéshez.
az aksarc create -n $aks_cluster_name -g $resource_group_name --custom-location $customlocation_ID --vnet-ids $logicnet_Id --generate-ssh-keys --control-plane-ip $controlplaneIP --enable-azure-rbac
Néhány perc elteltével a parancs befejeződik, és JSON formátumú információkat ad vissza a fürtről.
2. lépés: Szerepkör-hozzárendelések létrehozása a felhasználók számára a fürt eléréséhez
Az Azure Arc által engedélyezett AKS a következő beépített szerepköröket biztosítja:
Szerepkör | Leírás |
---|---|
Azure Arc Kubernetes Viewer | Az írásvédett hozzáférés lehetővé teszi a névtérben lévő objektumok többségének megtekintését. Nem engedélyezi a szerepkörök vagy szerepkörkötések megtekintését. Nem engedélyezi a megtekintést secrets , mert read a titkos kódokra vonatkozó engedély lehetővé teszi a névtérben lévő hitelesítő adatok elérését ServiceAccount , ami lehetővé teszi az API-hozzáférést a névtérben ( ServiceAccount a jogosultságok eszkalálásának egy formája). |
Azure Arc Kubernetes-író | Olvasási/írási hozzáférést tesz lehetővé a névtérben lévő legtöbb objektumhoz. Nem engedélyezi a szerepkörök vagy szerepkörkötések megtekintését vagy módosítását. Lehetővé teszi a podok névtérbeli bármelyként ServiceAccount való secrets elérését és futtatását, így a névtér bármely api-hozzáférési ServiceAccount szintjének megszerzéséhez használható. |
Azure Arc Kubernetes-rendszergazda | Lehetővé teszi a rendszergazdai hozzáférést, amelynek célja, hogy egy névtéren belül legyen megadva. Olvasási/írási hozzáférést biztosít a névtérben (vagy fürt hatókörében) lévő legtöbb erőforráshoz, beleértve a szerepkörök és szerepkör-kötések névtéren belüli létrehozását is. Nem engedélyezi az írási hozzáférést az erőforráskvóta vagy a névtér számára. |
Az Azure Arc Kubernetes-fürt rendszergazdája | Lehetővé teszi, hogy a "felügyelő" bármilyen műveletet végrehajtson bármely erőforráson. Teljes körű vezérlést biztosít a fürt és az összes névtér összes erőforrása felett. |
A parancs használatával az role assignment create
szerepkör-hozzárendeléseket hozhat létre.
Először szerezze be azt a $ARM-ID
célfürtöt, amelyhez szerepkört szeretne hozzárendelni.
$ARM_ID = (az connectedk8s show -g "$resource_group_name" -n $aks_cluster_name --query id -o tsv)
Ezután a az role assignment create
paranccsal rendeljen szerepköröket a Kubernetes-fürthöz. Meg kell adnia az $ARM_ID
első lépést és a assignee-object-id
lépéshez tartozót. Ez assignee-object-id
lehet Microsoft Entra-azonosító vagy szolgáltatásnév ügyfél-azonosítója.
Az alábbi példa az Azure Arc Kubernetes Viewer szerepkört rendeli a Kubernetes-fürthöz:
az role assignment create --role "Azure Arc Kubernetes Viewer" --assignee <assignee-object-id> --scope $ARM_ID
Ebben a példában a hatókör a fürt Azure Resource Manager-azonosítója. Ez lehet a Kubernetes-fürtöt tartalmazó erőforráscsoport is.
Egyéni szerepkör-definíciók létrehozása
Saját szerepkördefiníciót hozhat létre a szerepkör-hozzárendelésekben való használatra.
Az alábbi példa egy szerepkördefiníciót mutat be, amely lehetővé teszi a felhasználó számára, hogy csak az üzemelő példányokat olvassa. További információkért tekintse meg a szerepkördefiníciók létrehozásához használható adatműveletek teljes listáját. Az egyéni szerepkörök létrehozásával kapcsolatos további információkért tekintse meg az egyéni szerepkör létrehozásának lépéseit
Saját egyéni szerepkördefiníciók létrehozásához másolja a következő JSON-objektumot egy custom-role.json nevű fájlba. Cserélje le a <subscription-id>
helyőrzőt a tényleges előfizetés-azonosítóra. Az egyéni szerepkör az egyik adatműveletet használja, és lehetővé teszi az összes üzembe helyezés megtekintését abban a hatókörben (fürtben vagy névtérben), ahol a szerepkör-hozzárendelés létrejön.
{
"Name": "AKS Arc Deployment Reader",
"Description": "Lets you view all deployments in cluster/namespace.",
"Actions": [],
"NotActions": [],
"DataActions": [
"Microsoft.Kubernetes/connectedClusters/apps/deployments/read"
],
"NotDataActions": [],
"assignableScopes": [
"/subscriptions/<YOUR SUBSCRIPTION ID>"
]
}
Az egyéni szerepkörökről és azok szerzői módjáról az Azure egyéni szerepköreivel kapcsolatos információk találhatók.
Hozza létre a szerepkördefiníciót a az role definition create
paranccsal, és állítsa a --role-definition
paramétert az előző lépésben létrehozott deploy-view.json fájlra:
az role definition create --role-definition @deploy-view.json
Rendelje hozzá a szerepkördefiníciót egy felhasználóhoz vagy más identitáshoz a az role assignment create
következő paranccsal:
az role assignment create --role "AKS Arc Deployment Reader" --assignee <assignee-object-id> --scope $ARM_ID
3. lépés: A Kubernetes-fürt elérése
Most már elérheti a Kubernetes-fürtöt a megadott engedélyekkel, közvetlen vagy proxy módban.
A fürt elérése kubectl használatával (közvetlen mód)
A Kubernetes-fürt adott engedélyekkel való eléréséhez a Kubernetes-operátornak szüksége van a Microsoft Entra kubeconfigra, amelyet a az aksarc get-credentials
parancs használatával érhet el. Ez a parancs hozzáférést biztosít a rendszergazdai kubeconfighoz, valamint egy felhasználóalapú kubeconfighoz. A rendszergazdai kubeconfig fájl titkos kódokat tartalmaz, ezért rendszeresen biztonságosan kell tárolni és elforgatni. A felhasználóalapú Microsoft Entra ID kubeconfig azonban nem tartalmaz titkos kulcsokat, és terjeszthető az ügyfélszámítógépeikről csatlakozó felhasználók számára.
Az Azure CLI-parancs futtatásához a Microsoft.HybridContainerService/provisionedClusterInstances/listUserKubeconfig/action parancsra van szüksége, amely az Azure Kubernetes Service Arc-fürt felhasználói szerepkör-engedélyében található:
az aksarc get-credentials -g "$resource_group_name" -n $aks_cluster_name --file <file-name>
Most már használhatja a kubectl-fürtöt. Listázhatja például a fürt csomópontjait a használatával kubectl get nodes
. Az első futtatáskor be kell jelentkeznie az alábbi példában látható módon:
kubectl get nodes
A fürt elérése ügyféleszközről (proxy mód)
Ahhoz, hogy a Kubernetes-fürt bárhonnan elérhető legyen proxy móddal a parancs használatávalaz connectedk8s proxy
, szüksége van a Microsoft.Kubernetes/connectedClusters/listClusterUserCredential/műveletre, amely az Azure Arc-kompatibilis Kubernetes-fürt felhasználói szerepkör-engedélyében szerepel.
Futtassa a következő lépéseket egy másik ügyféleszközön:
Bejelentkezés Microsoft Entra-hitelesítéssel
Kérje le a fürt csatlakoztatásához szükséges kubeconfigot , hogy bárhonnan (akár a fürtöt körülvevő tűzfalon kívülről is) kommunikáljon a fürttel:
az connectedk8s proxy -n $CLUSTER_NAME -g $RESOURCE_GROUP
Feljegyzés
Ez a parancs megnyitja a proxyt, és letiltja az aktuális rendszerhéjat.
Egy másik rendszerhéj-munkamenetben
kubectl
a kéréseket a fürtnek küldheti el:kubectl get pods -A
Ekkor megjelenik a fürt válasza, amely tartalmazza a névtérben lévő default
összes pod listáját.
További információ: A fürt elérése ügyféleszközről.
Az erőforrások eltávolítása
Szerepkör-hozzárendelés törlése
# List role assignments
az role assignment list --scope $ARM_ID --query [].id -o tsv
# Delete role assignments
az role assignment delete --ids <LIST OF ASSIGNMENT IDS>
Szerepkördefiníció törlése
az role definition delete -n "AKS Arc Deployment Reader"
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: