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


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 vetületét (azaz szolgáltatásfiókot) használva engedélyezi 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 a Az Azure Identity-ügyfélkódtárak vagy a Microsoft Authentication Library (MSAL) gyűjtemény, valamint az alkalmazásregisztráció. 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 Számítási feladat ID, é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

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 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 tokenkibocsá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 számítási feladat az Azure Identity ügyfélkódtár vagy a Microsoft Authentication Library (MSAL) 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 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á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-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 széljegyzetek listáját ismertetik, amelyek a Microsoft Entra hozzáférési jogkivonat szolgáltatásfiók-jogkivonatának cseréjekor konfigurálhatók a viselkedés konfigurálásához.

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 Microsoft Entra Számítási feladat ID

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 lévő szolgáltatásfiókot az identitással együtt jegyzetelheti, így engedélyezheti a Microsoft Entra Számítási feladat ID, és beszúrhatja a széljegyzeteket 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á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 erőforrások mintája: Számítási feladatok identitásának üzembe helyezése és konfigurálása új fürtön
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.
  • 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.