Använda en hanterad identitet i Azure Kubernetes Service (AKS)
Azure Kubernetes Service-kluster (AKS) kräver en Microsoft Entra-identitet för att få åtkomst till Azure-resurser som lastbalanserare och hanterade diskar. Hanterade identiteter för Azure-resurser är det rekommenderade sättet att auktorisera åtkomst från ett AKS-kluster till andra Azure-tjänster.
Du kan använda en hanterad identitet för att auktorisera åtkomst från ett AKS-kluster till alla tjänster som stöder Microsoft Entra-auktorisering, utan att behöva hantera autentiseringsuppgifter eller inkludera dem i koden. Du tilldelar den hanterade identiteten en rollbaserad Åtkomstkontroll i Azure (Azure RBAC) för att ge den behörighet till en viss resurs i Azure. Du kan till exempel bevilja behörigheter till en hanterad identitet för åtkomst till hemligheter i ett Azure-nyckelvalv för användning av klustret. Mer information om Azure RBAC finns i Vad är rollbaserad åtkomstkontroll i Azure (Azure RBAC)?.
Den här artikeln visar hur du aktiverar följande typer av hanterade identiteter i ett nytt eller befintligt AKS-kluster:
- Systemtilldelad hanterad identitet. En systemtilldelad hanterad identitet är associerad med en enda Azure-resurs, till exempel ett AKS-kluster. Den finns endast för klustrets livscykel.
- Användartilldelad hanterad identitet. En användartilldelad hanterad identitet är en fristående Azure-resurs som ett AKS-kluster kan använda för att auktorisera åtkomst till andra Azure-tjänster. Den bevaras separat från AKS-klustret och kan användas av flera Azure-resurser.
- Fördefinierad kubelet-hanterad identitet. En i förväg skapad kubelet-hanterad identitet är en valfri användartilldelad identitet som kubelet kan använda för att komma åt andra resurser i Azure. Om du inte anger en användartilldelad hanterad identitet för kubelet skapar AKS en användartilldelad kubelet-identitet i nodresursgruppen.
Mer information om hanterade identiteter finns i Hanterade identiteter för Azure-resurser.
Översikt
Ett AKS-kluster använder en hanterad identitet för att begära token från Microsoft Entra. Dessa token används för att auktorisera åtkomst till andra resurser som körs i Azure. Du kan tilldela en Azure RBAC-roll till en hanterad identitet för att ge klustret behörighet att komma åt specifika resurser. Om klustret till exempel behöver komma åt hemligheter i ett Azure-nyckelvalv kan du tilldela klustrets hanterade identitet en Azure RBAC-roll som ger dessa behörigheter.
En hanterad identitet kan antingen vara systemtilldelad eller användartilldelad. Dessa två typer av hanterade identiteter liknar dem eftersom du kan använda någon av typerna för att auktorisera åtkomst till Azure-resurser från ditt AKS-kluster. Den viktigaste skillnaden mellan dem är att en systemtilldelad hanterad identitet är associerad med en enda Azure-resurs som ett AKS-kluster, medan en användartilldelad hanterad identitet i sig är en fristående Azure-resurs. Mer information om skillnaderna mellan typer av hanterade identiteter finns i Hanterade identitetstyper i Hanterade identiteter för Azure-resurser.
Båda typerna av hanterade identiteter hanteras av Azure-plattformen, så att du kan auktorisera åtkomst från dina program utan att behöva etablera eller rotera några hemligheter. Azure hanterar identitetens autentiseringsuppgifter åt dig.
När du distribuerar ett AKS-kluster skapas en systemtilldelad hanterad identitet åt dig som standard. Du kan också skapa klustret med en användartilldelad hanterad identitet.
Det går också att skapa ett kluster med ett huvudnamn för programtjänsten i stället för en hanterad identitet. Hanterade identiteter rekommenderas över tjänstens huvudnamn för säkerhet och användarvänlighet. Mer information om hur du skapar ett kluster med tjänstens huvudnamn finns i Använda tjänstens huvudnamn med Azure Kubernetes Service (AKS).
Du kan uppdatera ett befintligt kluster för att använda en hanterad identitet från ett huvudnamn för programtjänsten. Du kan också uppdatera ett befintligt kluster till en annan typ av hanterad identitet. Om klustret redan använder en hanterad identitet och identiteten har ändrats, till exempel om du har uppdaterat klusteridentitetstypen från systemtilldelad till användartilldelad, uppstår en fördröjning medan kontrollplanskomponenterna växlar till den nya identiteten. Kontrollplanskomponenter fortsätter att använda den gamla identiteten tills dess token upphör att gälla. När token har uppdaterats växlar de till den nya identiteten. Den här processen kan ta flera timmar.
De systemtilldelade och användartilldelade identitetstyperna skiljer sig från en Microsoft Entra-arbetsbelastningsidentitet, som är avsedd att användas av ett program som körs på en podd.
Innan du börjar
Kontrollera att du har Azure CLI version 2.23.0 eller senare installerat. Kör
az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.Om du vill använda en i förväg skapad kubelet-hanterad identitet behöver du Azure CLI version 2.26.0 eller senare installerad.
Om du vill uppdatera ett befintligt kluster för att använda en systemtilldelad hanterad identitet eller en användartilldelad hanterad identitet behöver du Azure CLI version 2.49.0 eller senare installerad.
Innan du kör exemplen i den här artikeln anger du din prenumeration som den aktuella aktiva prenumerationen genom att anropa kommandot az account set och skicka in ditt prenumerations-ID.
az account set --subscription <subscription-id>
Skapa också en Azure-resursgrupp om du inte redan har en genom att anropa az group create
kommandot.
az group create \
--name myResourceGroup \
--location westus2
Aktivera en systemtilldelad hanterad identitet
En systemtilldelad hanterad identitet är en identitet som är associerad med ett AKS-kluster eller en annan Azure-resurs. Den systemtilldelade hanterade identiteten är kopplad till klustrets livscykel. När klustret tas bort tas även den systemtilldelade hanterade identiteten bort.
AKS-klustret kan använda den systemtilldelade hanterade identiteten för att auktorisera åtkomst till andra resurser som körs i Azure. Du kan tilldela en Azure RBAC-roll till den systemtilldelade hanterade identiteten för att ge klustret behörighet att komma åt specifika resurser. Om klustret till exempel behöver komma åt hemligheter i ett Azure-nyckelvalv kan du tilldela den systemtilldelade hanterade identiteten en Azure RBAC-roll som ger dessa behörigheter.
Aktivera en systemtilldelad hanterad identitet i ett nytt AKS-kluster
Om du vill aktivera en systemtilldelad hanterad identitet i ett nytt kluster anropar du az aks create
. En systemtilldelad hanterad identitet är aktiverad i det nya klustret som standard.
Skapa ett AKS-kluster med kommandot az aks create
.
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--generate-ssh-keys
Information om hur du kontrollerar att en systemtilldelad hanterad identitet är aktiverad för klustret när det har skapats finns i Fastställa vilken typ av hanterad identitet ett kluster använder.
Uppdatera ett befintligt AKS-kluster för att använda en systemtilldelad hanterad identitet
Om du vill uppdatera ett befintligt AKS-kluster som använder tjänstens huvudnamn för att använda en systemtilldelad hanterad identitet i stället kör az aks update
du kommandot med parametern --enable-managed-identity
.
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-managed-identity
När du har uppdaterat klustret för att använda en systemtilldelad hanterad identitet i stället för ett huvudnamn för tjänsten använder kontrollplanet och poddarna den systemtilldelade hanterade identiteten för auktorisering vid åtkomst till andra tjänster i Azure. Kubelet fortsätter att använda ett huvudnamn för tjänsten tills du även uppgraderar din agentpool. Du kan använda az aks nodepool upgrade --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-image-only
kommandot på noderna för att uppdatera till en hanterad identitet. En uppgradering av nodpoolen orsakar stilleståndstid för ditt AKS-kluster eftersom noderna i nodpoolerna är avspärrade, tömda och avbildningar på nytt.
Kommentar
Tänk på följande när du uppdaterar klustret:
En uppdatering fungerar bara om det finns en VHD-uppdatering att använda. Om du kör den senaste virtuella hårddisken måste du vänta tills nästa virtuella hårddisk är tillgänglig för att kunna utföra uppdateringen.
Azure CLI säkerställer att tilläggets behörighet har angetts korrekt efter migreringen. Om du inte använder Azure CLI för att utföra migreringsåtgärden måste du hantera addon-identitetens behörighet själv. Ett exempel på hur du använder en ARM-mall (Azure Resource Manager) finns i Tilldela Azure-roller med ARM-mallar.
Om klustret använde
--attach-acr
för att hämta från avbildningar från Azure Container Registry (ACR) måste du köraaz aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR resource ID>
kommandot efter att ha uppdaterat klustret så att den nyligen skapade kubelet som används för hanterad identitet får behörighet att hämta från ACR. Annars kan du inte hämta från ACR efter uppdateringen.
Lägga till en rolltilldelning för en systemtilldelad hanterad identitet
Du kan tilldela en Azure RBAC-roll till den systemtilldelade hanterade identiteten för att bevilja klusterbehörigheter för en annan Azure-resurs. Azure RBAC stöder både inbyggda och anpassade rolldefinitioner som anger behörighetsnivåer. Mer information om hur du tilldelar Azure RBAC-roller finns i Steg för att tilldela en Azure-roll.
När du tilldelar en Azure RBAC-roll till en hanterad identitet måste du definiera omfånget för rollen. I allmänhet är det bästa praxis att begränsa omfånget för en roll till de minimiprivilegier som krävs av den hanterade identiteten. Mer information om omfång för Azure RBAC-roller finns i Förstå omfånget för Azure RBAC.
När du skapar och använder ett eget VNet, anslutna Azure-diskar, statisk IP-adress, routningstabell eller användartilldelad kubelet-identitet där resurserna ligger utanför arbetsnodresursgruppen lägger Azure CLI till rolltilldelningen automatiskt. Om du använder en ARM-mall eller en annan metod använder du huvud-ID:t för den hanterade identiteten för att utföra en rolltilldelning.
Om du inte använder Azure CLI, men du använder ditt eget virtuella nätverk, anslutna Azure-diskar, statiska IP-adress, routningstabell eller användartilldelade kubelet-identiteter som ligger utanför resursgruppen för arbetsnoden, rekommenderar vi att du använder en användartilldelad hanterad identitet för kontrollplanet. När kontrollplanet använder en systemtilldelad hanterad identitet skapas identiteten samtidigt som klustret, så rolltilldelningen kan inte utföras förrän klustret har skapats.
Hämta huvud-ID:t för den systemtilldelade hanterade identiteten
För att tilldela en Azure RBAC-roll till ett klusters systemtilldelade hanterade identitet behöver du först huvud-ID:t för den hanterade identiteten. Hämta huvud-ID:t för klustrets systemtilldelade hanterade identitet genom att anropa az aks show
kommandot.
# Get the principal ID for a system-assigned managed identity.
CLIENT_ID=$(az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query identity.principalId \
--output tsv)
Tilldela en Azure RBAC-roll till den systemtilldelade hanterade identiteten
Om du vill ge en systemtilldelad hanterad identitet behörighet till en resurs i Azure anropar du az role assignment create
kommandot för att tilldela en Azure RBAC-roll till den hanterade identiteten.
För ett VNet, en ansluten Azure-disk, en statisk IP-adress eller en routningstabell utanför standardresursgruppen för arbetsnoden Network Contributor
måste du tilldela rollen för den anpassade resursgruppen.
Du kan till exempel tilldela rollen för Network Contributor
den anpassade resursgruppen med kommandot az role assignment create
. För parametern --scope
anger du resurs-ID för resursgruppen för klustret.
az role assignment create \
--assignee $CLIENT_ID \
--role "Network Contributor" \
--scope "<resource-group-id>"
Kommentar
Det kan ta upp till 60 minuter innan de behörigheter som beviljas till klustrets hanterade identitet sprids.
Aktivera en användartilldelad hanterad identitet
En användartilldelad hanterad identitet är en fristående Azure-resurs. När du skapar ett kluster med en användartilldelad hanterad identitet för kontrollplanet måste den användartilldelade hanterade identitetsresursen finnas innan klustret skapas. Den här funktionen möjliggör scenarier som att skapa klustret med ett anpassat VNet eller med en utgående typ av användardefinierad routning (UDR).
Skapa en användartilldelad hanterad identitet
Om du ännu inte har en användartilldelad hanterad identitetsresurs skapar du en med kommandot az identity create
.
az identity create \
--name myIdentity \
--resource-group myResourceGroup
Dina utdata bör likna följande exempelutdata:
{
"clientId": "<client-id>",
"clientSecretUrl": "<clientSecretUrl>",
"id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
"location": "westus2",
"name": "myIdentity",
"principalId": "<principal-id>",
"resourceGroup": "myResourceGroup",
"tags": {},
"tenantId": "<tenant-id>",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Hämta huvud-ID:t för den användartilldelade hanterade identiteten
Om du vill hämta huvud-ID:t för den användartilldelade hanterade identiteten anropar du az identity show och frågar på principalId
egenskapen:
CLIENT_ID=$(az identity show \
--name myIdentity \
--resource-group myResourceGroup \
--query principalId \
--output tsv)
Hämta resurs-ID för den användartilldelade hanterade identiteten
Om du vill skapa ett kluster med en användartilldelad hanterad identitet behöver du resurs-ID:t för den nya hanterade identiteten. Om du vill hämta resurs-ID för den användartilldelade hanterade identiteten anropar du az aks show and query på id
egenskapen:
RESOURCE_ID=$(az identity show \
--name myIdentity \
--resource-group myResourceGroup \
--query id \
--output tsv)
Tilldela en Azure RBAC-roll till den användartilldelade hanterade identiteten
Innan du skapar klustret lägger du till en rolltilldelning för den hanterade identiteten az role assignment create
genom att anropa kommandot .
I följande exempel tilldelas rollen Key Vault Secrets User till den användartilldelade hanterade identiteten för att ge den behörighet att komma åt hemligheter i ett nyckelvalv. Rolltilldelningen är begränsad till nyckelvalvsresursen:
az role assignment create \
--assignee $CLIENT_ID \
--role "Key Vault Secrets User" \
--scope "<keyvault-resource-id>"
Kommentar
Det kan ta upp till 60 minuter innan de behörigheter som beviljas till klustrets hanterade identitet sprids.
Skapa ett kluster med den användartilldelade hanterade identiteten
Om du vill skapa ett AKS-kluster med den användartilldelade hanterade identiteten az aks create
anropar du kommandot. Inkludera parametern --assign-identity
och skicka resurs-ID:t för den användartilldelade hanterade identiteten:
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--assign-identity $RESOURCE_ID \
--generate-ssh-keys
Kommentar
Regionerna USDOD Central, USDOD East och USGov Iowa i Azure US Government-molnet stöder inte att skapa ett kluster med en användartilldelad hanterad identitet.
Uppdatera ett befintligt kluster för att använda en användartilldelad hanterad identitet
Om du vill uppdatera ett befintligt kluster för att använda en användartilldelad hanterad identitet anropar du az aks update
kommandot. Inkludera parametern --assign-identity
och skicka resurs-ID:t för den användartilldelade hanterade identiteten:
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-managed-identity \
--assign-identity $RESOURCE_ID
Utdata för en lyckad klusteruppdatering för att använda en användartilldelad hanterad identitet bör likna följande exempelutdata:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
Kommentar
Migrering av en hanterad identitet för kontrollplanet från systemtilldelad till användartilldelad leder inte till någon stilleståndstid för kontrollplans- och agentpooler. Kontrollplanskomponenterna fortsätter till den gamla systemtilldelade identiteten i upp till flera timmar tills nästa token uppdateras.
Avgöra vilken typ av hanterad identitet ett kluster använder
Om du vill ta reda på vilken typ av hanterad identitet ditt befintliga AKS-kluster använder anropar du kommandot az aks show och frågar efter identitetens typegenskap .
az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query identity.type \
--output tsv
Om klustret använder en hanterad identitet blir värdet för typegenskapen antingen SystemAssigned eller UserAssigned.
Om klustret använder ett huvudnamn för tjänsten blir värdet för typegenskapen null. Överväg att uppgradera klustret till att använda en hanterad identitet.
Använda en i förväg skapad kubelet-hanterad identitet
En i förväg skapad kubelet-identitet är en användartilldelad hanterad identitet som finns innan klustret skapas. Den här funktionen aktiverar scenarier som anslutning till Azure Container Registry (ACR) när klustret skapas.
Kommentar
AKS skapar en användartilldelad kubelet-identitet i nodresursgruppen om du inte anger en egen kubelet-hanterad identitet.
För en användartilldelad kubelet-identitet utanför standardresursgruppen för arbetsnoden måste du tilldela rollen Hanterad identitetsoperator på kubelet-identiteten för kontrollplanets hanterade identitet.
kubelet managed identity
Om du inte har en kubelet-hanterad identitet skapar du en med kommandot az identity create
.
az identity create \
--name myKubeletIdentity \
--resource-group myResourceGroup
Dina utdata bör likna följande exempelutdata:
{
"clientId": "<client-id>",
"clientSecretUrl": "<clientSecretUrl>",
"id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity",
"location": "westus2",
"name": "myKubeletIdentity",
"principalId": "<principal-id>",
"resourceGroup": "myResourceGroup",
"tags": {},
"tenantId": "<tenant-id>",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}
Tilldela en RBAC-roll till den kubelet-hanterade identiteten
ACRPull
Tilldela rollen på kubelet-identiteten az role assignment create
med kommandot . Ange kubelet-identitetens huvud-ID för variabeln $KUBELET_CLIENT_ID och ange ACR-register-ID för variabeln $ACR_REGISTRY_ID.
az role assignment create \
--assignee $KUBELET_CLIENT_ID \
--role "acrpull" \
--scope "$ACR_REGISTRY_ID"
Skapa ett kluster för att använda kubelet-identiteten
Nu kan du skapa ditt AKS-kluster med dina befintliga identiteter. Ange resurs-ID för den hanterade identiteten för kontrollplanet genom att inkludera assign-identity
argumentet och den kubelet-hanterade identiteten assign-kubelet-identity
med argumentet .
Skapa ett AKS-kluster med dina befintliga identiteter med kommandot az aks create
.
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--assign-identity <identity-resource-id> \
--assign-kubelet-identity <kubelet-identity-resource-id> \
--generate-ssh-keys
En lyckad AKS-klustergenerering med en kubelet-hanterad identitet bör resultera i utdata som liknar följande:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
"identityProfile": {
"kubeletidentity": {
"clientId": "<client-id>",
"objectId": "<object-id>",
"resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
}
},
Uppdatera ett befintligt kluster för att använda kubelet-identiteten
Om du vill uppdatera ett befintligt kluster för att använda den kubelet-hanterade identiteten hämtar du först den aktuella hanterade identiteten för kontrollplanet för ditt AKS-kluster.
Varning
När du uppdaterar den kubelet-hanterade identiteten uppgraderas AKS-klustrets nodpooler, vilket orsakar stilleståndstid för klustret eftersom noderna i nodpoolerna är avspärrade/tömda och omskapade.
Bekräfta att AKS-klustret använder den användartilldelade hanterade identiteten
az aks show
med hjälp av kommandot .az aks show \ --resource-group <RGName> \ --name <ClusterName> \ --query "servicePrincipalProfile"
Om klustret använder en hanterad identitet visas
clientId
utdata med värdet msi. Ett kluster som använder tjänstens huvudnamn visar ett objekt-ID. Till exempel:# The cluster is using a managed identity. { "clientId": "msi" }
När du har bekräftat att klustret använder en hanterad identitet letar du reda på den hanterade identitetens resurs-ID med kommandot
az aks show
.az aks show --resource-group <RGName> \ --name <ClusterName> \ --query "identity"
För en användartilldelad hanterad identitet bör dina utdata se ut ungefär som i följande exempelutdata:
{ "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": <identity-resource-id> "clientId": "<client-id>", "principalId": "<principal-id>" },
Uppdatera klustret med dina befintliga identiteter med hjälp av
az aks update
kommandot . Ange resurs-ID för den användartilldelade hanterade identiteten för kontrollplanet förassign-identity
argumentet. Ange resurs-ID för den kubelet-hanterade identitetenassign-kubelet-identity
för argumentet.az aks update \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-managed-identity \ --assign-identity <identity-resource-id> \ --assign-kubelet-identity <kubelet-identity-resource-id>
Dina utdata för en lyckad klusteruppdatering med din egen kubelet-hanterade identitet bör likna följande exempelutdata:
"identity": {
"principalId": null,
"tenantId": null,
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
"clientId": "<client-id>",
"principalId": "<principal-id>"
}
}
},
"identityProfile": {
"kubeletidentity": {
"clientId": "<client-id>",
"objectId": "<object-id>",
"resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
}
},
Kommentar
Om klustret använde --attach-acr
för att hämta från avbildningar från Azure Container Registry kör az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR Resource ID>
du kommandot efter att ha uppdaterat klustret så att den nyligen skapade kubelet som används för hanterad identitet får behörighet att hämta från ACR. Annars kan du inte hämta från ACR efter uppgraderingen.
Hämta egenskaperna för kubelet-identiteten
Om du vill hämta egenskaperna för kubelet-identiteten anropar du az aks show och frågar på identityProfile.kubeletidentity
egenskapen.
az aks show \
--name myAKSCluster \
--resource-group myResourceGroup \
--query "identityProfile.kubeletidentity"
Förskapade kubelet-identitetsbegränsningar
Observera följande begränsningar för den i förväg skapade kubelet-identiteten:
- En i förväg skapad kubelet-identitet måste vara en användartilldelad hanterad identitet.
- Regionerna Kina, östra och Kina, norra i Microsoft Azure som drivs av 21Vianet stöds inte.
Sammanfattning av hanterade identiteter som används av AKS
AKS använder flera hanterade identiteter för inbyggda tjänster och tillägg.
Identitet | Name | Användningsfall | Standardbehörigheter | Ta med din egen identitet |
---|---|---|---|---|
Kontrollplan | AKS-klusternamn | Används av AKS-kontrollplanskomponenter för att hantera klusterresurser, inklusive inkommande lastbalanserare och AKS-hanterade offentliga IP-adresser, Autoskalning av kluster, Azure Disk, Fil, Blob CSI-drivrutiner. | Deltagarroll för nodresursgrupp | Stöds |
Kubelet | AKS-klusternamn-agentpool | Autentisering med Azure Container Registry (ACR). | N/A (för kubernetes v1.15+) | Stöds |
Tillägg | AzureNPM | Ingen identitet krävs. | Ej tillämpligt | Nej |
Tillägg | Nätverksövervakning i AzureCNI | Ingen identitet krävs. | Ej tillämpligt | Nej |
Tillägg | azure-policy (gatekeeper) | Ingen identitet krävs. | Ej tillämpligt | Nej |
Tillägg | azure-policy | Ingen identitet krävs. | Ej tillämpligt | Nej |
Tillägg | Kalikå | Ingen identitet krävs. | Ej tillämpligt | Nej |
Tillägg | programroutning | Hanterar Azure DNS- och Azure Key Vault-certifikat | Key Vault Secrets User-roll för Key Vault, DNZ-zondeltagareroll för DNS-zoner, Privat DNS zondeltagareroll för privata DNS-zoner | Nej |
Tillägg | HTTPApplicationRouting | Hanterar nödvändiga nätverksresurser. | Läsarroll för nodresursgrupp, deltagarroll för DNS-zon | Nej |
Tillägg | Inkommande programgateway | Hanterar nödvändiga nätverksresurser. | Deltagarroll för nodresursgrupp | Nej |
Tillägg | omsagent | Används för att skicka AKS-mått till Azure Monitor. | Övervaka utgivarrollen för mått | Nej |
Tillägg | Virtual-Node (ACIConnector) | Hanterar nödvändiga nätverksresurser för Azure Container Instances (ACI). | Deltagarroll för nodresursgrupp | Nej |
Tillägg | Kostnadsanalys | Används för att samla in kostnadsallokeringsdata | ||
Arbetsbelastningsidentitet | Microsoft Entra-arbetsbelastnings-ID | Gör att program kan komma åt molnresurser på ett säkert sätt med Microsoft Entra-arbetsbelastnings-ID. | Ej tillämpligt | Nej |
Viktigt!
Den öppen källkod Microsoft Entra-poddhanterade identiteten (förhandsversion) i Azure Kubernetes Service blev inaktuell den 24 september 2022 och projektet arkiverades i september 2023. Mer information finns i utfasningsmeddelandet. AKS Managed-tillägget börjar fasas ut i september 2024.
Vi rekommenderar att du granskar Microsoft Entras arbetsbelastnings-ID. Entra-arbetsbelastnings-ID-autentisering ersätter den inaktuella funktionen för poddhanterad identitet (förhandsversion). Entra-arbetsbelastnings-ID är den rekommenderade metoden för att aktivera ett program som körs på en podd för att autentisera sig mot andra Azure-tjänster som stöder det.
Begränsningar
Det går inte att flytta eller migrera ett hanterat identitetsaktiverat kluster till en annan klientorganisation.
Om klustret har Microsoft Entra poddhanterad identitet (
aad-pod-identity
) aktiverad ändrar NMI-poddar (Node-Managed Identity) iptables för noderna för att fånga upp anrop till IMDS-slutpunkten (Azure Instance Metadata). Den här konfigurationen innebär att alla begäranden som görs till IMDS-slutpunkten fångas upp av NMI, även om en viss podd inte använderaad-pod-identity
.Den anpassade resursdefinitionen för AzurePodIdentityException (CRD) kan konfigureras för att ange att begäranden till IMDS-slutpunkten som kommer från en poddmatchningsetikett som definierats i CRD ska vara proxied utan någon bearbetning i NMI. Undanta systempoddar med
kubernetes.azure.com/managedby: aks
etiketten i kube-system-namnområdet iaad-pod-identity
genom att konfigurera AzurePodIdentityException CRD. Mer information finns i Använda Microsoft Entra-poddhanterade identiteter i Azure Kubernetes Service.Om du vill konfigurera ett undantag installerar du YAML med mikrofonfel.
AKS stöder inte användning av en systemtilldelad hanterad identitet när du använder en anpassad privat DNS-zon.
Nästa steg
- Använd Azure Resource Manager-mallar för att skapa ett hanterat identitetsaktiverat kluster.
- Lär dig hur du använder kubelogin för alla Microsoft Entra-autentiseringsmetoder som stöds i AKS.
Azure Kubernetes Service