Az Azure Arc által engedélyezett AKS hozzáférési és identitásbeállításai
A következőkre vonatkozik: AKS az Azure Stack HCI 23H2-n
A Kubernetes-fürtökhöz való hozzáférést többféleképpen hitelesítheti, engedélyezheti, biztonságossá teheti és szabályozhatja:
- A Kubernetes szerepköralapú hozzáférés-vezérlésével (Kubernetes RBAC) csak a szükséges Kubernetes-erőforrásokhoz adhat hozzáférést a felhasználóknak, csoportoknak és szolgáltatásfiókoknak.
- Ha az AKS-fürtök engedélyezve van az Azure RBAC-vel, a Microsoft Entra ID és az Azure RBAC használatával tovább javíthatja a biztonsági és engedélystruktúrát.
A Kubernetes RBAC és az Azure RBAC segítségével biztonságossá teheti a fürthozzáférést, és csak a minimálisan szükséges engedélyeket biztosíthatja a fejlesztőknek és operátoroknak.
Ez a cikk bemutatja azokat az alapvető fogalmakat, amelyek segítenek az AKS-ben való hitelesítésben és engedélyek hozzárendelésében.
A Kubernetes szerepköralapú hozzáférés-vezérlése (RBAC)
A Kubernetes RBAC részletes szűrést biztosít a felhasználói műveletekre. Ezzel a vezérlési mechanizmussal:
- Felhasználókat vagy felhasználói csoportokat rendelhet hozzá az erőforrások létrehozásához és módosításához, illetve naplók megtekintéséhez az alkalmazás számítási feladatainak futtatásával.
- Az engedélyek hatóköre egyetlen névtérre vagy a teljes AKS-fürtre terjedhet ki.
- Szerepköröket hozhat létre az engedélyek definiálásához, majd ezeket a szerepköröket szerepkörkötésekkel rendelkező felhasználókhoz rendelheti.
További információ: Kubernetes RBAC-hitelesítés használata.
Szerepkörök és fürtrolok
Szerepkörök
Mielőtt engedélyeket rendel a Kubernetes RBAC-vel rendelkező felhasználókhoz, szerepkörként kell meghatároznia a felhasználói engedélyeket. Engedélyek megadása Egy Kubernetes-névtérben szerepkörök használatával.
A Kubernetes-szerepkörök engedélyeket adnak; nem tagadják meg az engedélyeket. Ha az egész fürtre vagy egy adott névtéren kívüli fürterőforrásra szeretne engedélyeket adni, használhatja a ClusterRoles-t.
ClusterRoles
A ClusterRole engedélyeket ad és alkalmaz a teljes fürt erőforrásaira, nem pedig egy adott névtérre.
RoleBindings és ClusterRoleBindings
Miután meghatározta az erőforrások engedélyeinek megadásához szükséges szerepköröket, ezeket a Kubernetes RBAC-engedélyeket egy RoleBindinggel rendelheti hozzá. Ha az AKS-fürt integrálva van a Microsoft Entra-azonosítóval, a RoleBindings engedélyt ad a Microsoft Entra-felhasználóknak a fürtön belüli műveletek végrehajtására. Lásd: Hozzáférés szabályozása a Microsoft Entra ID és a Kubernetes RBAC használatával
RoleBindings
Szerepkörök hozzárendelése egy adott névtér felhasználóihoz a RoleBindings használatával. A RoleBindings használatával logikailag elkülöníthet egy AKS-fürtöt, és csak a felhasználók férhetnek hozzá az alkalmazás erőforrásaihoz a hozzárendelt névtérben.
Ha a szerepköröket a teljes fürtben vagy egy adott névtéren kívüli fürterőforráshoz szeretné kötni, használja a ClusterRoleBindings parancsot.
ClusterRoleBinding
A ClusterRoleBinding használatával szerepköröket köthet a felhasználókhoz, és a teljes fürt erőforrásaira alkalmazhat, nem pedig egy adott névtérre. Ezzel a módszerrel hozzáférést biztosíthat a rendszergazdáknak vagy a támogatási mérnököknek az AKS-fürt összes erőforrásához.
Kubernetes-szolgáltatásfiókok
A szolgáltatásfiókok a Kubernetes egyik elsődleges felhasználói típusa. A Kubernetes API szolgáltatásfiókokat tárol és kezel. A szolgáltatásfiók hitelesítő adatai Kubernetes-titkos kulcsként vannak tárolva, így az arra jogosult podok használhatják őket az API-kiszolgálóval való kommunikációhoz. A legtöbb API-kérés hitelesítési jogkivonatot biztosít egy szolgáltatásfiókhoz vagy egy normál felhasználói fiókhoz.
A normál felhasználói fiókok hagyományosabb hozzáférést biztosítanak az emberi rendszergazdák vagy fejlesztők számára, nem csak a szolgáltatásokhoz és a folyamatokhoz. Bár a Kubernetes nem biztosít identitáskezelési megoldást a normál felhasználói fiókok és jelszavak tárolására, a külső identitáskezelési megoldásokat integrálhatja a Kubernetesbe. Az AKS-fürtök esetében ez az integrált identitásmegoldás a Microsoft Entra ID.
További információ a Kubernetes identitásbeállításairól: Kubernetes-hitelesítés.
Azure szerepköralapú hozzáférés-vezérlő
Az Azure Szerepköralapú Hozzáférés-vezérlés (RBAC) az Azure Resource Managerre épülő engedélyezési rendszer, amely az Azure-erőforrások részletes hozzáférés-kezelését biztosítja.
RBAC rendszer | Leírás |
---|---|
Kubernetes RBAC | Úgy tervezték, hogy kubernetes-erőforrásokon dolgozzon az AKS-fürtön belül. |
Azure RBAC-vel | Úgy tervezték, hogy az Azure-előfizetésen belüli erőforrásokon dolgozzon. |
Az Azure RBAC-vel létrehoz egy szerepkördefiníciót , amely felvázolja az alkalmazandó engedélyeket. Ezután hozzárendelhet egy felhasználót vagy csoportosíthatja ezt a szerepkördefiníciót egy adott hatókörhöz tartozó szerepkör-hozzárendeléssel. A hatókör lehet egyéni erőforrás, erőforráscsoport vagy az előfizetés egésze.
További információ: Mi az Azure szerepköralapú hozzáférés-vezérlése (Azure RBAC)?
Az AKS Arc-fürt teljes működéséhez két hozzáférési szint szükséges:
- Az AKS-erőforrás elérése az Azure-előfizetésben.
- A fürt skálázásának vagy frissítésének szabályozása az Azure Arc API-k által engedélyezett AKS használatával.
- Kérje le a rendszergazdai, tanúsítványalapú kubeconfigot.
- Kérje le az Entra-azonosítóval kompatibilis kubeconfigot.
- Hozzáférés a Kubernetes API-hoz. Ezt a hozzáférést a következők vezérlik:
- Kubernetes RBAC vagy
- Az Azure RBAC integrálása az AKS-sel a Kubernetes-engedélyezéshez.
Azure RBAC az AKS-erőforráshoz való hozzáférés engedélyezéséhez
Az Azure RBAC-vel részletes hozzáférést biztosíthat a felhasználóknak (vagy identitásoknak) az AKS-erőforrásokhoz egy vagy több előfizetésben. Ehhez a vezérlősík-művelethez három szerepkör érhető el: az Azure Kubernetes Service Arc-fürt rendszergazdai szerepköre, az Azure Kubernetes Service Arc-fürt felhasználói szerepköre és az Azure Kubernetes Service Arc közreműködői szerepköre. Minden szerepkör eltérő engedélyhatókörrel rendelkezik a tárolók azure-beli beépített szerepköreiben leírtak szerint. Az Azure Kubernetes Service Arc közreműködői szerepkörével például létrehozhatja, méretezheti és frissítheti a fürtöt. Eközben az Azure Kubernetes Service Arc-fürt rendszergazdai szerepkörrel rendelkező másik felhasználó csak engedéllyel rendelkezik a rendszergazdai kubeconfig lekérésére.
Azure RBAC kubernetes-engedélyezéshez
Az Azure RBAC-integrációval az AKS egy Kubernetes engedélyezési webhook-kiszolgálót használ, így a Microsoft Entra integrált Kubernetes-fürterőforrás-engedélyeit és hozzárendeléseit Azure-szerepkördefiníciók és szerepkör-hozzárendelések használatával kezelheti.
Ahogy az ebben a diagramban is látható, az Azure RBAC-integráció használatakor a Kubernetes API-ba irányuló összes kérés ugyanazt a hitelesítési folyamatot követi, mint a Microsoft Entra-integrációban leírtak.
Ha a kérést küldő identitás megtalálható a Microsoft Entra-azonosítóban, az Azure a Kubernetes RBAC-vel együttműködve engedélyezi a kérést. Ha az identitás a Microsoft Entra-azonosítón (például egy Kubernetes-szolgáltatásfiókon) kívül létezik, az engedélyezés a normál Kubernetes RBAC-hez ütközik.
Ebben a forgatókönyvben azure RBAC-mechanizmusokkal és API-kkal rendelhet hozzá beépített szerepköröket a felhasználókhoz, vagy egyéni szerepköröket hozhat létre, ugyanúgy, mint a Kubernetes-szerepkörök esetében.
Ezzel a funkcióval nem csak az előfizetések közötti AKS-erőforráshoz adhat engedélyeket a felhasználóknak, hanem a Kubernetes API-hozzáférést vezérlő fürtökben is konfigurálhatja a szerepkört és az engedélyeket. Ehhez az adatsík-művelethez négy beépített szerepkör érhető el, amelyek mindegyike saját engedélyekkel rendelkezik, a beépített szerepkörök szakaszban leírtak szerint.
Fontos
A szerepkör-hozzárendelés végrehajtása előtt engedélyeznie kell az Azure RBAC-t a Kubernetes-engedélyezéshez. További részletekért és lépésenkénti útmutatásért tekintse meg az Azure RBAC használata a Kubernetes-hitelesítéshez című témakört.
Beépített szerepkörök
Az Arc által engedélyezett AKS 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.
Szerepkör | Leírás |
---|---|
Azure Arc-kompatibilis Kubernetes-fürtfelhasználó | Lehetővé teszi a fürt connect-alapú kubeconfig fájljának lekérését a fürtök bárhonnan történő kezeléséhez. |
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 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 névtérben a RoleBinding használatával 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 körű vezérlést biztosít a fürt é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. |
Microsoft Entra-integráció
Az AKS-fürt biztonságának javítása a Microsoft Entra-integrációval. A vállalati identitáskezelési élményre épülő Microsoft Entra ID egy több-bérlős, felhőalapú címtár- és identitáskezelési szolgáltatás, amely egyesíti az alapvető címtárszolgáltatásokat, az alkalmazáshozzáférés-kezelést és az identitásvédelmet. A Microsoft Entra ID-val integrálhatja a helyszíni identitásokat az AKS-fürtökbe, hogy egyetlen forrást biztosítson a fiókkezeléshez és a biztonsághoz.
A Microsoft Entra integrált AKS-fürtöivel hozzáférést biztosíthat a felhasználóknak vagy csoportoknak a Kubernetes-erőforrásokhoz egy névtérben vagy a fürtön belül.
- Kubectl-konfigurációs környezet beszerzéséhez futtassa az az aksarc get-credentials parancsot.
- Amikor egy felhasználó kubectl használatával kommunikál az AKS-fürttel, a rendszer kérni fogja, hogy jelentkezzen be a Microsoft Entra hitelesítő adataival.
Ez a megközelítés egyetlen forrást biztosít a felhasználói fiókok kezeléséhez és a jelszó hitelesítő adataihoz. A felhasználó csak a Kubernetes-fürt rendszergazdája által meghatározott erőforrásokhoz férhet hozzá.
A Microsoft Entra-hitelesítés az OpenID Connecttel rendelkező AKS-fürtök számára biztosított. Az OpenID Connect egy identitásréteg, amely az OAuth 2.0 protokollra épül. Az OpenID Connectről további információt az OpenID Connect dokumentációjában talál. A Kubernetes-fürtben a Webhook Token Authentication a hitelesítési jogkivonatok ellenőrzésére szolgál. A webhook-jogkivonat-hitelesítés az AKS-fürt részeként van konfigurálva és felügyelve.
Összegzés
Az alábbi táblázat összefoglalja, hogy a felhasználók hogyan hitelesíthetik magukat a Kubernetesben a Microsoft Entra-integráció engedélyezésekor. A parancsok sorrendje minden esetben a következő:
- Futtassa
az login
a hitelesítést az Azure-ban. - Futtassa
az aksarc get-credentials
a Kubernetes-fürt hitelesítő adatainak letöltéséhez a következőbe.kube/config
: . - Parancsok futtatása
kubectl
.- Az első parancs elindíthatja a böngészőalapú hitelesítést a Kubernetes-fürtön való hitelesítéshez, az alábbi táblázatban leírtak szerint.
Leírás | Szerepkör-engedélyezés szükséges | Fürtadminisztrátor Microsoft Entra-csoportjai | Mikor érdemes használni? |
---|---|---|---|
Rendszergazdai bejelentkezés ügyféltanúsítvány használatával | Azure Kubernetes Service Arc-fürt rendszergazdai szerepköre. Ez a szerepkör lehetővé teszi az aksarc get-credentials a --admin jelölő használatát, amely letölt egy nem Microsoft Entra-fürt rendszergazdai tanúsítványát a felhasználó .kube/config fájljába. Ez az Azure Kubernetes-rendszergazdai szerepkör egyetlen célja. |
n.a. | Ha véglegesen letiltja, hogy nem fér hozzá egy érvényes Microsoft Entra-csoporthoz a fürthöz való hozzáféréssel. |
Microsoft Entra ID manuális (fürt) RoleBindings szolgáltatással | Azure Kubernetes Service Arc-fürt felhasználói szerepköre. A Felhasználói szerepkör az aksarc get-credentials jelölő nélkül --admin használható. Ez az Azure Kubernetes szolgáltatásfürt felhasználói szerepkörének egyetlen célja.) Az eredmény egy Microsoft Entra ID-kompatibilis fürtön egy üres bejegyzés letöltése a .kube/config fájlba, amely a kubectl első használatakor aktiválja a böngészőalapú hitelesítést. |
Mivel a felhasználó nincs fürtadminisztrátori csoportban, a jogosultságokat teljes egészében a fürt rendszergazdái által beállított RoleBindings vagy ClusterRoleBindings szabályozza. A (fürt)RoleBindings a Microsoft Entra-felhasználókat vagy a Microsoft Entra-csoportokat jelöli tárgyként. Ha nincsenek ilyen kötések beállítva, a felhasználó nem tudja kizárni a kubectl-parancsokat . | Ha részletes hozzáférés-vezérlést szeretne, és nem az Azure RBAC-t használja a Kubernetes-engedélyezéshez. Vegye figyelembe, hogy a kötéseket létrehozó felhasználónak a táblázatban felsorolt egyéb módszerek egyikével kell bejelentkeznie. |
Microsoft Entra-azonosító a Microsoft Entra-csoport fürtadminisztrátora szerint (jelölő beállítása --aad-admin-group-object-ids az Azure CLI-ben) |
Ugyanaz, mint az előző. | A felhasználó az itt felsorolt csoportok egyikének tagja. Az AKS automatikusan létrehoz egy ClusterRoleBindinget, amely az összes felsorolt csoportot a cluster-admin Kubernetes-szerepkörhöz köti. Így az ezekben a csoportokban lévő felhasználók az összes kubectl parancsot futtathatják.cluster-admin |
Ha teljes körű rendszergazdai jogokat szeretne biztosítani a felhasználóknak, és nem használja az Azure RBAC-t a Kubernetes-hitelesítéshez. |
Microsoft Entra-azonosító az Azure RBAC-vel Kubernetes-engedélyezéshez | Két szerepkör: Azure Kubernetes Service Arc-fürt felhasználói szerepköre (a korábban leírtak szerint). A korábban ismertetett Azure Arc Kubernetes-szerepkörök egyike, vagy saját egyéni alternatíva. |
A Konfiguráció lap rendszergazdai szerepkörök mezője nem releváns, ha engedélyezve van az Azure RBAC for Kubernetes-engedélyezés. | Az Azure RBAC-t használja a Kubernetes-engedélyezéshez. Ez a megközelítés részletes vezérlést biztosít, anélkül, hogy be kellene állítania a RoleBindings vagy a ClusterRoleBindings parancsot. |
Következő lépések
- A Kubernetes RBAC kubernetes-hitelesítéshez való használatának első lépéseit a Microsoft Entra ID és a Kubernetes RBAC használatával történő hozzáférés szabályozása című témakörben tekintheti meg.
- Az Azure RBAC kubernetes-alapú engedélyezésének első lépéseit az Azure RBAC használata a Kubernetes-engedélyezéshez című témakörben talál .