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 futtassaaz 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 aWorkloadIdentityCredential
. - Hozzon létre egy példányt
ChainedTokenCredential
, amely tartalmazza a következőtWorkloadIdentityCredential
: . - 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
- Felügyelt identitásonként legfeljebb 20 összevont identitás hitelesítő adatokkal rendelkezhet.
- Az összevont identitás hitelesítő adatának propagálása néhány másodpercet vesz igénybe a kezdeti hozzáadását követően.
- A virtuális csomópontok a Virtual Kubelet projekt nyílt forráskód alapján nem támogatottak.
- Az összevont identitás hitelesítő adatainak létrehozása ezekben a régiókban nem támogatott a felhasználó által hozzárendelt felügyelt identitásokon.
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 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.
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 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 az előre jelzett szolgáltatásfiók-jogkivonat-kötetet az összes tárolóhoz, ha a pod címkéje azure.workload.identity/use: true a 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.
Azure Kubernetes Service