Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: AKS az Azure Local-on
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ásazonosítóit használhatja a Kubernetes szerepköralapú hozzáférés-vezérlésének (Kubernetes RBAC) személyként. Ez a funkció megszabadít attól, hogy külön kelljen kezelni a Kubernetes felhasználói identitásait és hitelesítő adatait. 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 hozzákezdene
Mielőtt hozzákezdene, győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:
Az Azure Local 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.
Az Azure RBAC-t az Azure CLI vagy az Azure Portal használatával engedélyezheti. Az Azure CLI használatához telepítenie kell az aksarc és a connectedk8s Azure CLI-bővítmények legújabb verzióit. Vegye figyelembe, hogy az Azure RBAC engedélyezéséhez az aksarc bővítmény 1.1.1-es vagy újabb verziójára van szüksége. A
az --versionfuttatásával megtudhatja 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 connectedk8sHa 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 connectedk8sA Kubernetes-fürtök használatához telepítenie kell a kubectl és kubelogin eszközöket.
Kubernetes-fürt létrehozásakor az Azure RBAC engedélyezéséhez a következő engedélyek szükségesek:
Kubernetes-fürt létrehozásához az Azure Kubernetes Service Arc Contributor szerepkör szükséges.
A
--enable-azure-rbacparaméter használatához a szerepköralapú hozzáférés-vezérlési rendszergazdai szerepkör szükséges a Microsoft.Authorization/roleAssignments/write engedélyhez való hozzáféréshez.A szerepkörök hozzárendeléséhez használja az az role assignment create CLI parancsot, vagy kövesse az Azure-szerepkörök hozzárendelését az Azure CLI-vel:
az role assignment create --assignee <assignee-object-id> --role <role-name-or-id> --scope $ARM_IDAz ú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 megadott engedélyekkel közvetlen módban vagy proxy módban érheti el a Kubernetes-fürtöt.
- Ahhoz, hogy a Kubernetes-fürtöt közvetlenül a
az aksarc get-credentialsparanccsal 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. - A Kubernetes-fürt bárhonnan történő eléréséhez proxy mód használatával, a
az connectedk8s proxyparancs segítségével vagy az Azure portalról, szüksége van a Microsoft.Kubernetes/connectedClusters/listClusterUserCredential/action műveletre, amely az Azure Arc engedélyezett Kubernetes-fürt felhasználói szerepkörhöz tartozó engedélyben található. Eközben ellenőriznie kell, hogy az előkészítési folyamatot végrehajtó ügynökök és a gép megfelelnek-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ége konkrét szerepkörre, de meg kell győződnie arról, hogy a csatlakoztatott klaszter erőforrás add-admin-group listá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 --enable-azure-rbac
Néhány perc elteltével a parancs befejeződik, és visszaadja a fürtről szóló információkat JSON formátumban.
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 AKS Arc az alábbi öt beépített szerepkört biztosítja. Hasonlóak a Kubernetes beépített szerepköreihez, néhány különbséggel, például a CRD-k támogatásával. Tekintse meg az egyes Beépített Azure-szerepkörök által engedélyezett műveletek teljes listáját.
| Szerep | Leírás |
|---|---|
| Azure Arc-kompatibilis Kubernetes-fürt felhasználó | Lehetővé teszi a Cluster Connect alapú kubeconfig fájl lekérését a fürtök tetszőleges helyről történő kezeléséhez. |
| Azure Arc Kubernetes Viewer | Engedélyezi a csak olvasásra jogosult hozzáférést a névtér legtöbb objektumának megtekintésére. Nem engedélyezi a titkos kódok megtekintését, mert a titkos kódok olvasási engedélye lehetővé teszi a ServiceAccount hitelesítő adatainak elérését a névtérben. Ezek a hitelesítő adatok viszont lehetővé teszik az API-hozzáférést ezen a ServiceAccount-értéken keresztül (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. Ez a szerepkör azonban lehetővé teszi a titkos kulcsok elérését és a podok futtatását a névtér bármely ServiceAccount-értékeként , így bármely ilyen ServiceAccount-érték API-hozzáférési szintjei a névtérben megszerezhetők. |
| Azure Arc Kubernetes-rendszergazda | Engedélyezi a rendszergazdai hozzáférést. A RoleBinding használatával egy névtérben adható meg. Ha a RoleBindingben használja, az olvasási/írási hozzáférést tesz lehetővé a névtérben lévő legtöbb erőforráshoz, beleértve a szerepkörök és szerepkörkötések névtéren belüli létrehozását is. Ez a szerepkör nem teszi lehetővé az erőforráskvóta vagy a névtér írási hozzáférését. |
| Az Azure Arc Kubernetes-fürt rendszergazdája | Engedélyezi a "superuser" hozzáférést bármely erőforráson végrehajtott műveletek végrehajtásához. Amikor a ClusterRoleBindingben használja, teljes ellenőrzést biztosít a klaszter és az összes névtér összes erőforrása felett. Amikor a RoleBindingben használja, teljes körű vezérlést biztosít a szerepkörkötési névtér összes erőforrása felett, beleértve magát a névteret is. |
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 az első lépésből és a assignee-object-id ehhez a lépéshez. Ez assignee-object-id lehet Microsoft Entra-azonosító vagy szolgáltatási főszereplő ü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 klaszter 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 a telepítéseket 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.jsonnevű 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 mód vagy proxy üzemmód használatával.
A klaszter elérése a kubectl használatával közvetlen módban.
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. Például a kubectl get nodes segítségével listázhatja a klaszter csomópontjait. Az első futtatáskor be kell jelentkeznie az alábbi példában látható módon:
kubectl get nodes
A klaszter elérése ügyféleszközzel (proxy módban)
Ahhoz, hogy a Kubernetes-fürtöt bárhonnan elérhesse proxy móddal a parancs használatával az connectedk8s proxy , a Microsoft.Kubernetes/connectedClusters/listClusterUserCredential/műveletre van szüksége, amely az Azure Arc-kompatibilis Kubernetes-fürtfelhasználói szerepkör engedély részét képezi.
Futtassa a következő lépéseket egy másik klienseszközön:
Bejelentkezés Microsoft Entra-hitelesítéssel
Szerezze be a fürthöz való csatlakozáshoz szükséges kubeconfigot, hogy bárhonnan kommunikálhasson a fürttel (akár a fürtöt körülvevő tűzfalon kívülről is).
az connectedk8s proxy -n $CLUSTER_NAME -g $RESOURCE_GROUPMegjegyzés:
Ez a parancs megnyitja a proxyt, és blokkolja az aktuális parancssort.
Egy másik rendszerhéj-munkamenetben
kubectlsegítségével elküldheti a kéréseket a fürtnek.kubectl get pods -A
Most már meg kell jelennie a fürt válaszának, amely az adott default névtérben lévő összes pod listáját tartalmazza.
További információért lásd: Fürt elérése ügyféleszközről.
Erőforrások tisztí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
- Azure szerepköralapú hozzáférés-vezérlés (Azure RBAC)
- Az Azure Arc által engedélyezett AKS hozzáférési és identitásbeállításai
- Azure szolgáltatásközpontú elv létrehozása az Azure CLI-vel
- Elérhető Azure-engedélyek a Hibrid + Többfelhőhöz
- Az Azure Arc által engedélyezett AKS-hez készült biztonsági könyv útmutatásainak követésével más módokon is segíthet megvédeni a fürtöt.