Megosztás a következőn keresztül:


Microsoft Entra Erőforrásazonosító használata az Azure Kubernetes Szolgáltatással (AKS)

Az Azure Kubernetes Services (AKS) fürtön üzembe helyezett számítási feladatokhoz Microsoft Entra alkalmazás-hitelesítő adatokra vagy felügyelt identitásokra van szükség a Microsoft Entra által védett erőforrások, például az Azure Key Vault és a Microsoft Graph eléréséhez. A Microsoft Entra Munkaterhelés ID integrálódik a Kubernetes natív képességeivel a külső identitásszolgáltatókkal való összevonás érdekében.

Microsoft Entra Feladatazonosító a Szolgáltatásfiók-jogkivonat Mennyiségi Vetületét (azaz szolgáltatásfiókot) használja, hogy engedélyezze a podok számára a Kubernetes-identitás használatát. A rendszer egy Kubernetes-jogkivonatot bocsát ki, és az OIDC-összevonás lehetővé teszi, hogy a Kubernetes-alkalmazások biztonságosan elérhessék az Azure-erőforrásokat a Microsoft Entra ID azonosítójával, jegyzetekkel ellátott szolgáltatásfiókok alapján.

Microsoft Entra Számítási feladat ID különösen jól működik az Azure Identity-ügyfélkódtárakkal vagy a Microsoft Authentication Library-k (MSAL) gyűjteményével, valamint az alkalmazásregisztrációval. A számítási feladat ezen kódtárak bármelyikével zökkenőmentesen hitelesítheti és elérheti az Azure-felhőbeli erőforrásokat.

Ez a cikk segít megérteni a Microsoft Entra Munka ID-t, és áttekinti a projektstratégia megtervezésére és a Microsoft Entra pod-menedzselt identitásból való lehetséges migrálásra rendelkezésre álló lehetőségeket.

Megjegyzés

A Service Connector segítségével automatikusan konfigurálhat néhány lépést. Lásd még: Mi az a Service Connector?

Függőségek

  • Az AKS támogatja a Microsoft Entra Workload ID az 1.22 és újabb verzióban.
  • Az Azure CLI 2.47.0-s vagy újabb verziója. Futtassa a az --version, hogy megtudja a verziószámot, és futtassa a az upgrade a verzió frissítéséhez. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.

Azure Identity-ügyfélkódtárak

Az Azure Identity-ügyfélkódtárakban válasszon az alábbi módszerek közül:

  • Használja a DefaultAzureCredential-t, amely megpróbálja a WorkloadIdentityCredential-t használni.
  • Hozzon létre egy ChainedTokenCredential példányt, beleértve WorkloadIdentityCredential.
  • Használja közvetlenül WorkloadIdentityCredential.

Az alábbi táblázat az egyes nyelvi ökoszisztémák ügyfélkódtárához szükséges minimális csomagverziót tartalmazza.

Ökoszisztéma Könyvtár Minimális verzió
.NET Azure.Identity 1.9.0
C++ azure-identity-cpp 1.6.0
Menj azidentity 1.3.0
Java azure-identity 1.9.0
Node.js @azure/identity 3.2.0
Python azure-identity 1.13.0

A következő kódmintákban DefaultAzureCredential használatos. Ez a hitelesítő adattípus a környezeti változókat használja, amelyeket az Azure Workload Identity átalakító webhook injektál, hogy hitelesítse az Azure Key Vaulttal való kapcsolatot. Ha a mintákat a többi módszer egyikével szeretné megtekinteni, tekintse meg a fenti ökoszisztéma-specifikus ügyfélkódtár-hivatkozásokat.

using Azure.Identity;
using Azure.Security.KeyVault.Secrets;

string keyVaultUrl = Environment.GetEnvironmentVariable("KEYVAULT_URL");
string secretName = Environment.GetEnvironmentVariable("SECRET_NAME");

var client = new SecretClient(
    new Uri(keyVaultUrl),
    new DefaultAzureCredential());

KeyVaultSecret secret = await client.GetSecretAsync(secretName);

Microsoft Authentication Library (MSAL)

Az alábbi ügyfélkódtárak a minimálisan szükséges verziójúak.

Ökoszisztéma Könyvtár Kép Példa Windows rendszerű
.NET Microsoft Authentication Library for-dotnet ghcr.io/azure/azure-workload-identity/msal-net:latest Link Igen
Menj Microsoft Authentication Library-for-go ghcr.io/azure/azure-workload-identity/msal-go:latest Link Igen
Java Microsoft Authentication Library-for-java ghcr.io/azure/azure-workload-identity/msal-java:latest Link Nem
JavaScript Microsoft Authentication Library for-js ghcr.io/azure/azure-workload-identity/msal-node:latest Link Nem
Python Microsoft Authentication Library for-python ghcr.io/azure/azure-workload-identity/msal-python:latest Link Nem

Korlátozások

Hogyan működik?

Ebben a biztonsági modellben az AKS-fürt token-kibocsátóként működik. A Microsoft Entra ID az OpenID Connect használatával felderíti a nyilvános aláíró kulcsokat, és ellenőrzi a szolgáltatásfiók jogkivonatának hitelességét, mielőtt kicseréli azt egy Microsoft Entra-jogkivonatra. A munkafolyamat az Azure Identity klienskönyvtár vagy a Microsoft Authentication Library (MSAL) használatával kicserélheti a kötetéhez kivetített szolgáltatásfiók-jogkivonatot egy Microsoft Entra-jogkivonatra.

Az AKS számítási feladatok identitásbiztonsági modelljének ábrája.

Az alábbi táblázat ismerteti a Microsoft Entra terhelésazonosítójához szükséges OIDC-kiállító végpontokat.

Végpont Leírás
{IssuerURL}/.well-known/openid-configuration Más néven OIDC felderítési dokumentum. Ez tartalmazza a kiállító konfigurációinak metaadatait.
{IssuerURL}/openid/v1/jwks Ez tartalmazza a Microsoft Entra ID által a szolgáltatásfiók-jogkivonat hitelességének ellenőrzéséhez használt nyilvános aláíró kulcsot(ok).

Az alábbi ábra az OpenID Connect használatával összefoglalja a hitelesítési sorrendet.

Az AKS számítási feladat identitásának OIDC-hitelesítési sorozatának ábrája.

Webhook tanúsítvány automatikus elforgatása

A többi webhook-bővítményhez hasonlóan a tanúsítvány rotálása a fürttanúsítvány automatikus forgatási műveletével történik.

Szolgáltatásfiókok címkéi és széljegyzetei

Microsoft Entra feladatazonosító a következő szolgáltatásfiókhoz kapcsolódó társításokat támogatja:

  • Egy az egyhez, ahol egy szolgáltatásfiók egy Microsoft Entra-objektumra hivatkozik.
  • Több-az-egyhez kapcsolat esetén, ahol több szolgáltatásfiók is ugyanarra a Microsoft Entra-objektumra hivatkozik.
  • Egy a többhöz, ahol egy szolgáltatásfiók több Microsoft Entra objektumra hivatkozik az ügyfél-azonosító jegyzetének módosításával. További információ: Több identitás összevonása Kubernetes-szolgáltatásfiókkal.

Megjegyzés

Ha a szolgáltatásfiók széljegyzetei frissülnek, újra kell indítania a podot a módosítások érvénybe lépéséhez.

Ha a Microsoft Entra pod által felügyelt identitást használta, egy szolgáltatásfiókot azure-beli biztonsági tagként tekinthet, azzal a kivételrel, hogy egy szolgáltatásfiók az alapvető Kubernetes API része, nem pedig egy egyéni erőforrásdefiníció (CRD). A következő szakaszok az elérhető címkék és jegyzetek listáját ismertetik, amelyek a viselkedés konfigurálására használhatók, amikor a szolgáltatásfiók-jogkivonatot Microsoft Entra hozzáférési jogkivonatra cserélik.

Szolgáltatásfiók széljegyzetei

Az összes megjegyzés megadása nem szükséges. Ha nincs megadva a széljegyzet, a rendszer az alapértelmezett értéket használja.

Megjegyzés Leírás Alapértelmezett
azure.workload.identity/client-id A Microsoft Entra-alkalmazást jelöli
a podhoz használandó ügyfélazonosító.
azure.workload.identity/tenant-id Azt az Azure-bérlőazonosítót jelöli, ahol a
A Microsoft Entra alkalmazás regisztrálva van.
AZURE_TENANT_ID kinyert környezeti változó
ConfigMap-ből azure-wi-webhook-config.
azure.workload.identity/service-account-token-expiration A expirationSeconds mezőt képviseli
tervezett szolgáltatási fiók-jogkivonat. Ez egy opcionális mező, amelyet konfigurálhat az üzemszünet elkerülésére.
a szolgáltatásfiók jogkivonatának frissítése során fellépő hibák okozzák. A Kubernetes szolgáltatásfiók jogkivonatának lejárata nem korrelál a Microsoft Entra-jogkivonatokkal. A Microsoft Entra-jogkivonatok a kibocsátásuk után 24 órán belül lejárnak.
3600
A támogatott tartomány 3600-86400.

Podcímkék

Megjegyzés

A workload identity-t használó alkalmazások esetében a pod specifikációjához hozzá kell adni a azure.workload.identity/use: "true" címkét, hogy az AKS a workload identity-t a Fail Close forgatókönyvbe helyezze át. Ezzel biztosítható a konzisztens és megbízható működés azoknak a podoknak, amelyeknek szükségük van a workload identity használatára. Ellenkező esetben a podok újraindításuk után meghibásodnak.

Címke Leírás Javasolt érték Kötelező
azure.workload.identity/use Ez a címke kötelező a podsablon specifikációjában. Csak az e címkével rendelkező podokat módosítja az azure-workload-identity módosító belépési webhook, hogy beillessze az Azure-specifikus környezeti változókat és a kivetített szolgáltatásfiók token kötetet. igaz Igen

Pod-annotációk

Az összes megjegyzés megadása nem szükséges. Ha nincs megadva a széljegyzet, a rendszer az alapértelmezett értéket használja.

Megjegyzés Leírás Alapértelmezett
azure.workload.identity/service-account-token-expiration A expirationSeconds mezőt képviseli a tervezett szolgáltatásfiók-jogkivonathoz. Ez egy nem kötelező mező, amelyet úgy konfigurál, hogy kiküszöbölje azokat a kieséseket, amelyeket a hibák okozhatnak a szolgáltatásfiók-token frissítése során. A Kubernetes szolgáltatásfiók jogkivonatának lejárata nem korrelál a Microsoft Entra-jogkivonatokkal. A Microsoft Entra-jogkivonatok a kibocsátásuk után 24 órán belül lejárnak. 1 3600
A támogatott tartomány 3600-86400.
azure.workload.identity/skip-containers A tárolók pontosvesszővel tagolt listáját jelöli, amely kihagyja a tervezett szolgáltatásfiók-jogkivonat-kötet hozzáadását. Például: container1;container2. Alapértelmezés szerint a projekciós szolgáltatásfiók-jogkivonat térfogata hozzáadódik az összes tárolóhoz, ha a pod címkéje azure.workload.identity/use: true.
azure.workload.identity/inject-proxy-sidecar Proxy init konténert és proxy oldalkonténert injektál a podba. A proxy oldalkocsi az IMDS-nek küldött jogkivonat-kérések elfogására és egy Microsoft Entra-jogkivonat beszerzésére szolgál az összevont identitású hitelesítő adatokkal rendelkező felhasználó nevében. igaz
azure.workload.identity/proxy-sidecar-port A proxy sidecar portját jelöli. 8000

1 Elsőbbséget élvez, ha a szolgáltatásfiók is annotálva van.

Hogyan lehet átmigrálni a Microsoft Entra Munka Terhelés ID-re?

Egy pod által felügyelt identitást futtató fürtön kétféleképpen konfigurálhatja a számítási feladat identitásának használatára. Az első lehetőség lehetővé teszi, hogy ugyanazt a konfigurációt használja, amelyet a pod által felügyelt identitáshoz implementált. A névtérben annotálhatja a szolgáltatásfiókot az identitással, hogy engedélyezze a Microsoft Entra Munkaterhelési ID-t, és beillesztheti az annotációkat a podokba.

A második lehetőség az alkalmazás újraírása az Azure Identity-ügyfélkódtár legújabb verziójának használatára.

A migrálási folyamat egyszerűsítése és megkönnyítése érdekében kifejlesztettünk egy migrálási oldalkocsit, amely átalakítja az alkalmazás által az OpenID Connectre (OIDC) irányuló IMDS-tranzakciókat. A migrálási oldalkocsi nem hosszú távú megoldás, hanem a számítási feladatok identitásának gyors üzembe helyezésének módja. Az alkalmazás mellékszolgáltatásának futtatása közvetíti az alkalmazás IMDS tranzakcióit az OIDC felé. Az alternatív módszer az Azure Identity ügyfélkódtár támogatott verziójára való frissítés, amely támogatja az OIDC-hitelesítést.

Az alábbi táblázat összefoglalja a számítási feladatok identitására vonatkozó migrálási vagy üzembehelyezési javaslatokat.

Forgatókönyv Leírás
Az új vagy meglévő fürttelepítés az Azure Identity-ügyfélkódtár támogatott verzióját futtatja Nincs szükség áttelepítési lépésekre.
Üzembehelyezési erőforrások mintája: Munkafolyamat identitásának üzembe helyezése és konfigurálása új klaszteren
Az új vagy meglévő fürttelepítés az Azure Identity ügyfélkönyvtár nem támogatott verzióját futtatja Frissítse a tárolórendszerképet az Azure Identity SDK támogatott verziójának használatára, vagy használja a migrálási oldalkocsit.

Következő lépések

  • Ha tudni szeretné, hogyan állíthatja be a podot a számítási feladatok identitásának migrálási lehetőségként való hitelesítéséhez, olvassa el az alkalmazáshitelesítés modernizálása számítási feladat identitásával című témakört.
  • Lásd: AKS-fürt üzembe helyezése és konfigurálása számítási feladat identitásával, amely segít üzembe helyezni egy Azure Kubernetes Service-fürtöt, és konfigurálni egy mintaalkalmazást a számítási feladatok identitásának használatára.