Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Úlohy nasazené v clusteru AKS vyžadují přihlašovací údaje aplikace Microsoft Entra nebo spravované identity pro přístup k prostředkům chráněným Microsoft Entra, jako je Azure Key Vault a Microsoft Graph. Microsoft Entra Workload ID se integruje s funkcemi nativními pro Kubernetes, které se federují s externími poskytovateli identity, což umožňuje přiřadit identity úloh vašim úlohám pro ověřování a přístup k dalším službám a prostředkům.
Poznámka:
ID úlohy se zabývá scénářem identity pod-to-Azure v AKS – jak se aplikace spuštěné v podech ověřují ve službách chráněných Microsoft Entra. Další scénáře identit (ověřování a autorizace roviny řízení a spravované identity mezi clustery a Azure) najdete v tématu Možnosti přístupu a identit pro AKS.
Microsoft Entra Workload ID používá Service Account Token Volume Projection (nebo service account), aby pody mohly používat identitu Kubernetes. Vystavil se token Kubernetes a federace OpenID Connect (OIDC) umožňuje aplikacím Kubernetes bezpečně přistupovat k prostředkům Azure pomocí Id Microsoft Entra založeného na účtech služby s poznámkami.
ID úlohy Microsoft Entra můžete použít s klientskými knihovnami Azure Identity nebo kolekcí Microsoft Authentication Library (MSAL) společně s registrací aplikací k bezproblémovému ověřování a přístupu ke cloudovým prostředkům Azure.
Poznámka:
Pomocí konektoru Service Connector můžete automaticky nakonfigurovat některé kroky. Další informace najdete v tématu Co je Service Connector?
Požadavky
- AKS podporuje ID úloh Microsoft Entra ve verzi 1.22 a vyšší.
- Azure CLI verze 2.47.0 nebo novější. Spusťte
az --versionk zjištění verze, a spusťteaz upgradek aktualizaci verze. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Omezení
- Pro každou spravovanou identitu můžete mít maximálně 20 přihlašovacích údajů federované identity.
- Rozšíření údajů o federované identitě po počátečním přidání trvá několik sekund.
- Doplněk virtuálních uzlů založený na opensourcovém projektu Virtual Kubelet není podporovaný.
- Vytváření přihlašovacích údajů federované identity se v těchto oblastech nepodporuje u spravovaných identit přiřazených uživatelem.
Klientské knihovny Azure Identity
V klientských knihovnách Azure Identity zvolte jeden z následujících přístupů:
- Použijte
DefaultAzureCredential, který se pokusí použítWorkloadIdentityCredential. - Vytvořte
ChainedTokenCredentialinstanci, která zahrnujeWorkloadIdentityCredential. - Použijte
WorkloadIdentityCredentialpřímo.
Následující tabulka obsahuje minimální verzi balíčku potřebnou pro klientskou knihovnu každého jazykového ekosystému:
| Ekosystém | Knihovna | Minimální verze |
|---|---|---|
| platforma .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/identita | 3.2.0 |
| Python | azure-identity | 1.13.0 |
Ukázky kódu klientské knihovny Azure Identity
Následující ukázky kódu používají .DefaultAzureCredential Tento typ přihlašovacích údajů používá proměnné prostředí vložené mutující webhook identitou úlohy k ověření identity pomocí služby Azure Key Vault. Pokud chcete zobrazit ukázky pomocí některého z dalších přístupů, podívejte se na klientské knihovny specifické pro ekosystém.
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
string keyVaultUrl = Environment.GetEnvironmentVariable("<key-vault-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)
Následující klientské knihovny jsou minimální požadovanou verzí:
| Ekosystém | Knihovna | Obrázek | Příklad | Má Windows |
|---|---|---|---|---|
| platforma .NET | Knihovna Microsoft Authentication pro platformu .NET | ghcr.io/azure/azure-workload-identity/msal-net:latest |
Odkaz | Ano |
| Go | Microsoft Authentication Library pro Go | ghcr.io/azure/azure-workload-identity/msal-go:latest |
Odkaz | Ano |
| Java | Microsoft Authentication Library-for-java | ghcr.io/azure/azure-workload-identity/msal-java:latest |
Odkaz | Ne |
| JavaScript | Microsoft Authentication Library-for-js | ghcr.io/azure/azure-workload-identity/msal-node:latest |
Odkaz | Ne |
| Python | Microsoft Authentication Library-for-python | ghcr.io/azure/azure-workload-identity/msal-python:latest |
Odkaz | Ne |
Jak to funguje
V tomto modelu zabezpečení funguje cluster AKS jako vystavitel tokenu. Microsoft Entra ID používá OIDC ke zjišťování veřejných podpisových klíčů a ověření pravosti tokenu účtu služby před výměnou za token Microsoft Entra. Vaše pracovní zátěž může vyměnit token účtu služby promítnutý do jeho svazku za token Microsoft Entra pomocí klientské knihovny Azure Identity nebo MSAL.
Následující tabulka popisuje požadované koncové body identifikátoru OIDC pro Microsoft Entra Workload ID:
| Koncový bod | Popis |
|---|---|
{IssuerURL}/.well-known/openid-configuration |
Označuje se také jako dokument zjišťování OIDC. Obsahuje metadata o konfiguracích vystavitele. |
{IssuerURL}/openid/v1/jwks |
Obsahuje veřejné podpisové klíče, které Microsoft Entra ID používá k ověření pravosti tokenu účtu služby. |
Následující diagram shrnuje posloupnost ověřování pomocí OIDC:
Automatická obměna certifikátu Webhook
Podobně jako jiné doplňky webhooku, operace automatické rotace certifikátu clusteru obměňuje certifikát.
Popisky a poznámky ke služebním účtům
ID úloh Microsoft Entra podporuje následující mapování související s účtem služby:
- 1:1, kde účet služby odkazuje na objekt Microsoft Entra.
- N:1, kde více účtů služeb odkazuje na stejný objekt Microsoft Entra.
- Jeden-na-mnoho, kde účet služby změnou poznámky ID klienta odkazuje na více objektů Microsoft Entra. Další informace najdete v tématu Postup federace více identit pomocí účtu služby Kubernetes.
Poznámka:
Pokud aktualizujete anotace účtu služby, musíte restartovat pod, aby se změny projevily.
Pokud jste použili identitu spravovanou podem Microsoft Entra, představte si služební účet jako bezpečnostní subjekt Azure, s tím rozdílem, že služební účet je součástí základního rozhraní Kubernetes API, nikoli vlastní definice prostředku (CRD). Následující části popisují seznam dostupných popisků a poznámek, které můžete použít ke konfiguraci chování při výměně tokenu účtu služby pro přístupový token Microsoft Entra.
Poznámky k účtu služby
Všechny poznámky jsou volitelné. Pokud není zadána poznámka, použije se výchozí hodnota.
| Poznámka | Popis | Výchozí |
|---|---|---|
azure.workload.identity/client-id |
Představuje aplikaci Microsoft Entra. ID klienta, které má být použito s podem. |
|
azure.workload.identity/tenant-id |
Představuje ID tenanta Azure. Aplikace Microsoft Entra je zaregistrovaná. |
extrahovaná proměnná prostředí AZURE_TENANT_ID z azure-wi-webhook-config ConfigMapu. |
azure.workload.identity/service-account-token-expiration |
Představuje pole expirationSeconds pro token účtu plánované služby. Jedná se o volitelné pole, které nakonfigurujete tak, aby se zabránilo výpadkům způsobeným chybami během aktualizace tokenu účtu služby. Vypršení platnosti tokenu účtu služby Kubernetes neodpovídá tokenům Microsoft Entra. Platnost tokenů Microsoft Entra vyprší za 24 hodin po jejich vydání. |
3600 Podporovaný rozsah je 3600–86400. |
Popisky modulů
Poznámka:
U aplikací, které používají ID úlohy Microsoft Entra, je nutné přidat popisek azure.workload.identity/use: "true" do specifikace podu pro AKS, aby se identita úlohy přesunula do scénáře selhání a poskytovala konzistentní a spolehlivé chování podů, které potřebují používat identitu úlohy. V opačném případě se pody po restartování nezdaří.
| Štítek | Popis | Doporučená hodnota | Požaduje se |
|---|---|---|---|
azure.workload.identity/use |
Tento štítek je vyžadován ve specifikaci šablony podu. Pouze pody s tímto štítkem jsou mutovány mutujícím vstupním webhookem azure-workload-identity, aby se injikovaly konkrétní proměnné prostředí Azure a objem projekce tokenů účtu služby. | pravda | Ano |
Pod anotace
Všechny poznámky jsou volitelné. Pokud není zadána poznámka, použije se výchozí hodnota.
| Poznámka | Popis | Výchozí |
|---|---|---|
azure.workload.identity/service-account-token-expiration |
Podrobnosti najdete v poznámkách k účtu služby . Anotace podů mají přednost před anotacemi účtu služby. | 3600 Podporovaný rozsah je 3600–86400. |
azure.workload.identity/skip-containers |
Představuje seznam kontejnerů oddělených středníkem, ke kterým se přeskočí přidání objemu promítaného tokenu účtu služby. Například container1;container2. |
Ve výchozím nastavení se objem projekčního tokenu účtu služby přidá do všech kontejnerů, pokud je pod označený azure.workload.identity/use: true. |
azure.workload.identity/inject-proxy-sidecar |
Vloží do podu inicializační kontejner proxy serveru a sajdkár proxy serveru. Proxy sidecar se používá k zachycení žádostí o token na IMDS a získání tokenu Microsoft Entra jménem uživatele s federovanými identitními údaji. | Nepravda |
azure.workload.identity/proxy-sidecar-port |
Představuje port proxy sidecaru. | 8000 |
Migrace na ID úlohy Microsoft Entra
Clustery, na kterých už běží identita spravovaná podem, můžete nakonfigurovat tak, aby používaly ID úlohy Microsoft Entra jedním ze dvou způsobů:
- Použijte stejnou konfiguraci, kterou jste implementovali pro podem spravovanou identitu. K povolení Microsoft Entra Workload ID a vložení anotací do podů můžete přidat poznámky ke služebnímu účtu v rámci oboru názvů s identitou.
- Přepište aplikaci tak, aby používala nejnovější verzi klientské knihovny Azure Identity.
Abychom zjednodušili a usnadnili proces migrace, vyvinuli jsme pomocnou komponentu pro migraci, která převádí transakce služby Instance Metadata Service (IMDS) vaší aplikace na OIDC. Sídlo pro migraci není určené jako trvalé řešení, ale jako způsob, jak rychle nastartovat s Microsoft Entra Workload ID. Spuštěním migration sidecaru v rámci vaší aplikace dojde k přesměrování transakcí IMDS aplikace na OIDC. Alternativním přístupem je upgrade na podporovanou verzi klientské knihovny Azure Identity , která podporuje ověřování OIDC.
Následující tabulka shrnuje naše doporučení pro migraci nebo nasazení pro váš cluster AKS:
| Scénář | Popis |
|---|---|
| Nové nebo existující nasazení clusteru spouští podporovanou verzi klientské knihovny Azure Identity. | Nevyžadují se žádné kroky migrace. Ukázkové prostředky nasazení: Nasazení a konfigurace ID pracovní zátěže Microsoft Entra v novém clusteru |
| Nové nebo existující nasazení clusteru spouští nepodporovanou verzi klientské knihovny Azure Identity. | Aktualizujte image kontejneru tak, aby používala podporovanou verzi sady Azure Identity SDK, nebo použijte sajdkáru migrace. |
Další kroky
- Informace o tom, jak nastavit pod pro ověření pomocí identity úloh jako možnosti migrace, najdete v tématu Modernizace ověřování aplikací pomocí ID úlohy Microsoft Entra.
- Viz Nasazení a konfigurace clusteru AKS s ID úlohy Microsoft Entra, které pomáhá nasadit cluster a nakonfigurovat ukázkovou aplikaci pro použití identity úlohy.