Microsoft Entra Számítási feladat ID használata az Azure Kubernetes Service-lel (AKS)

Az Azure Kubernetes Services -fürtökön üzembe helyezett számítási feladatokhoz Microsoft Entra-alkalmazás hitelesítő adataira 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. Microsoft Entra Számítási feladat ID integrálható a Kubernetes natív képességeivel a külső identitásszolgáltatókkal való összevonáshoz.

Microsoft Entra Számítási feladat ID szolgáltatásfiók-jogkivonat mennyiségi kivetítését használja, amely lehetővé teszi, hogy a podok Kubernetes-identitást (vagyis szolgáltatásfiókot) használjanak. 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-val a 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 a Az Azure Identity-ügyfélkódtárak és a Microsoft Authentication Library (MSAL) gyűjtemény, ha alkalmazásregisztrációt használ. 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 ezt az új hitelesítési funkciót, és áttekinti a projektstratégia megtervezéséhez és a Microsoft Entra pod által felügyelt identitásból való lehetséges migráláshoz rendelkezésre álló lehetőségeket.

Feljegyzés

Ahelyett, hogy manuálisan konfigurálja az összes lépést, van egy másik, Service Csatlakozás or nevű implementáció, amely segít bizonyos lépések automatikus konfigurálásában. Lásd még: Mi az a Service Csatlakozás or?

Függőségek

  • Az AKS támogatja az 1.22-es és újabb verziójú Microsoft Entra Számítási feladat ID.
  • Az Azure CLI 2.47.0-s vagy újabb verziója. Futtassa az --version a verziót, és futtassa 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 DefaultAzureCredential, amely megpróbálja használni a WorkloadIdentityCredential.
  • Hozzon létre egy példányt ChainedTokenCredential , amely tartalmazza a következőt WorkloadIdentityCredential: .
  • Közvetlenül használható 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
Go azidentity 1.3.0
Java azure-identity 1.9.0
Node.js @azure/identitás 3.2.0
Python azure-identity 1.13.0

A következő kódmintákban DefaultAzureCredential használatos. Ez a hitelesítő adattípus az Azure Workload Identity által a webhook által injektált környezeti változókat használja az Azure Key Vaulttal való hitelesítéshez.

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 Láncszem Igen
Go Microsoft Authentication Library –for-go ghcr.io/azure/azure-workload-identity/msal-go:latest Láncszem Igen
Java Microsoft Authentication Library-for-java ghcr.io/azure/azure-workload-identity/msal-java:latest Láncszem Nem
JavaScript Microsoft Authentication Library for-js ghcr.io/azure/azure-workload-identity/msal-node:latest Láncszem Nem
Python Microsoft Authentication Library for-python ghcr.io/azure/azure-workload-identity/msal-python:latest Láncszem Nem

Korlátozások

Hogyan működik?

Ebben a biztonsági modellben az AKS-fürt jogkivonatkibocsátóként működik, a Microsoft Entra ID OpenID Csatlakozás használatával felderíti a nyilvános aláíró kulcsokat, és ellenőrzi a szolgáltatásfiók-jogkivonat hitelességét, mielőtt kicseréli azt egy Microsoft Entra-jogkivonatra. A számítási feladat az Azure Identity ügyfélkódtár vagy a Microsoft Authentication-kódtár használatával kicserélheti a kötetére 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 a Microsoft Entra Számítási feladat ID szükséges OIDC-kiállító végpontjait ismerteti:

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 Csatlakozás használatával összegzi a hitelesítési sorozatot.

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ányt a fürttanúsítvány automatikus rotálási művelete rotálta.

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

Microsoft Entra Számítási feladat ID egy szolgáltatásfiókhoz kapcsolódó alábbi leképezéseket támogatja:

  • Egy az egyhez, ahol egy szolgáltatásfiók egy Microsoft Entra-objektumra hivatkozik.
  • Több az egyhez, 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ó megjegyzésének módosításával. További információ: Több identitás összevonása Kubernetes-szolgáltatásfiókkal.

Feljegyzé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-identitásként kell tekintenie, kivéve, ha egy szolgáltatásfiók az alapvető Kubernetes API része, nem pedig egyéni erőforrásdefiníció (CRD). Az alábbiakban felsoroljuk azokat az elérhető címkéket és széljegyzeteket, amelyek a Microsoft Entra hozzáférési jogkivonat szolgáltatásfiók-jogkivonatának cseréjekor konfigurálhatók.

Szolgáltatásfiók széljegyzetei

Az összes széljegyzet megadása nem kötelező. Ha nincs megadva a széljegyzet, a rendszer az alapértelmezett értéket használja.

Jegyzet 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ője
előrejelzett szolgáltatásfiók-jogkivonat. Ez egy nem kötelező mező, amelyet konfigurálhat az állásidő megelőzé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

Feljegyzés

A számítási feladat identitását használó alkalmazások esetében fel kell venni a címkét azure.workload.identity/use: "true" a pod specifikációjára az AKS-hez a számítási feladatok identitásának feladatbezárási forgatókönyvbe való áthelyezéséhez, hogy konzisztens és megbízható viselkedést biztosítson a számítási feladat identitását használó podok számára. Ellenkező esetben a podok újraindításuk után meghiúsulnak.

Címke Leírás Javasolt érték Kötelező
azure.workload.identity/use Ez a címke szükséges a podsablon specifikációjában. Csak az ezzel a címkével rendelkező podokat mutálja az azure-workload-identity, amely a belépési webhookot mutálja az Azure-specifikus környezeti változók és a tervezett szolgáltatásfiók-jogkivonat-kötet injektálásához. true Igen

Pod-széljegyzetek

Az összes széljegyzet megadása nem kötelező. Ha nincs megadva a széljegyzet, a rendszer az alapértelmezett értéket használja.

Jegyzet Leírás Alapértelmezett
azure.workload.identity/service-account-token-expiration expirationSeconds A tervezett szolgáltatásfiók jogkivonatának mezője. Ez egy nem kötelező mező, amelyet úgy konfigurál, hogy megakadályozza a szolgáltatásfiók jogkivonatának frissítése során fellépő hibák által okozott állásidőt. 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 rendszer hozzáadja a tervezett szolgáltatásfiók-jogkivonat-kötetet az összes tárolóhoz, ha a szolgáltatásfiók címkéje azure.workload.identity/use: truea következő: .
azure.workload.identity/inject-proxy-sidecar Proxy init tárolót és proxyoldali kocsit injektál a podba. A proxyoldali 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ő adataival rendelkező felhasználó nevében. true
azure.workload.identity/proxy-sidecar-port A proxy oldalkocsijának portját jelöli. 8000

1 Elsőbbséget élvez, ha a szolgáltatásfiókot is széljegyzetek fűzik hozzá.

Migrálás számítási feladat identitására

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. Csak megjegyzéseket kell fűznie a szolgáltatásfiókhoz a névtérben az identitással, és lehetővé teszi a számítási feladatok identitásának, hogy a széljegyzeteket a podokba fecskendezze.

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 Csatlakozás (OIDC) való 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áson belüli migrálási oldalkocsi futtatása az alkalmazás IMDS-tranzakcióit OIDC-nek proxyja. 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.

Eset 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 mintaerőforrások:
- Számítási feladatok identitásának üzembe helyezése és konfigurálása új fürtön
- Oktatóanyag: Számítási feladatok identitásának használata egy alkalmazással az AKS-en
Az új vagy meglévő fürttelepítés az Azure Identity ügyfélkódtá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.
  • Tekintse meg az Azure Kubernetes Service (AKS) számítási feladatok identitásának használata egy alkalmazással való használatát ismertető oktatóanyagot, amely segít üzembe helyezni egy Azure Kubernetes Service-fürtöt, és konfigurálni egy mintaalkalmazást számítási feladatok identitásának használatára.