Felügyelt identitások használata az Azure Kubernetes szolgáltatásbanUse managed identities in Azure Kubernetes Service

Jelenleg egy Azure Kubernetes Service (ak) fürt (konkrétan a Kubernetes Cloud Provider) identitást igényel további erőforrások, például terheléselosztó és felügyelt lemezek létrehozásához az Azure-ban.Currently, an Azure Kubernetes Service (AKS) cluster (specifically, the Kubernetes cloud provider) requires an identity to create additional resources like load balancers and managed disks in Azure. Ez az identitás felügyelt identitás vagy egyszerű szolgáltatásnév lehet.This identity can be either a managed identity or a service principal. Ha szolgáltatásnevethasznál, meg kell adnia egy vagy AK-t az Ön nevében.If you use a service principal, you must either provide one or AKS creates one on your behalf. Ha felügyelt identitást használ, a rendszer automatikusan létrehozza ezt.If you use managed identity, this will be created for you by AKS automatically. Az egyszerű szolgáltatásokat használó fürtök végül olyan állapotot érnek el, amelyben az egyszerű szolgáltatásnevet meg kell újítani a fürt működésének megtartása érdekében.Clusters using service principals eventually reach a state in which the service principal must be renewed to keep the cluster working. Az egyszerű szolgáltatások kezelése bonyolultságot biztosít, ezért a felügyelt identitások könnyebben használhatók.Managing service principals adds complexity, which is why it's easier to use managed identities instead. Ugyanezek az engedélyezési követelmények érvényesek az egyszerű szolgáltatásokra és a felügyelt identitásokra is.The same permission requirements apply for both service principals and managed identities.

A felügyelt identitások lényegében burkolók az egyszerű szolgáltatásokban, és egyszerűbbé teszik a felügyeletet.Managed identities are essentially a wrapper around service principals, and make their management simpler. A hitelesítő adatok elforgatása az Azure Active Directory alapértelmezett értékének megfelelően automatikusan megtörténik a 46 naponta.Credential rotation for MI happens automatically every 46 days according to Azure Active Directory default. Az AK rendszerhez hozzárendelt és felhasználó által hozzárendelt felügyelt identitási típusokat használ.AKS uses both system-assigned and user-assigned managed identity types. Ezek az identitások jelenleg nem változtathatók meg.These identities are currently immutable. További tudnivalókért tekintse meg az Azure-erőforrások felügyelt identitásaitismertető témakört.To learn more, read about managed identities for Azure resources.

ElőkészületekBefore you begin

A következő erőforrást kell telepítenie:You must have the following resource installed:

  • Az Azure CLI, 2.15.1 vagy újabb verzióThe Azure CLI, version 2.15.1 or later

KorlátozásokLimitations

  • A felügyelt identitást engedélyező fürtök áthelyezési/áttelepíti a bérlők nem támogatottak.Tenants move / migrate of managed identity enabled clusters isn't supported.
  • Ha a fürt aad-pod-identity engedélyezve van, Node-Managed Identity (NMI) hüvely módosítja a csomópontok iptables-t az Azure-példány metaadatainak végpontjának hívására.If the cluster has aad-pod-identity enabled, Node-Managed Identity (NMI) pods modify the nodes' iptables to intercept calls to the Azure Instance Metadata endpoint. Ez a konfiguráció azt jelenti, hogy a metaadat-végpontra irányuló kéréseket a NMI akkor is elfogja, ha a pod nem használja aad-pod-identity .This configuration means any request made to the Metadata endpoint is intercepted by NMI even if the pod doesn't use aad-pod-identity. A AzurePodIdentityException CRD konfigurálható úgy, hogy tájékoztassa aad-pod-identity , hogy a tőkekövetelmény-ből származó, a CRD-ban definiált címkével rendelkező, a NMI-ben való feldolgozás nélkül proxyra irányuló kérelmeket.AzurePodIdentityException CRD can be configured to inform aad-pod-identity that any requests to the Metadata endpoint originating from a pod that matches labels defined in CRD should be proxied without any processing in NMI. A kubernetes.azure.com/managedby: aks Kube- rendszernévtérben címkével ellátott rendszerhüvelyeket ki kell ZÁRNI a aad-pod-identity AzurePodIdentityException CRD konfigurálásával.The system pods with kubernetes.azure.com/managedby: aks label in kube-system namespace should be excluded in aad-pod-identity by configuring the AzurePodIdentityException CRD. További információ: a HRE-Pod-Identity letiltása egy adott Pod vagy alkalmazáshoz.For more information, see Disable aad-pod-identity for a specific pod or application. Kivétel konfigurálásához telepítse a MIC-Exception YAML.To configure an exception, install the mic-exception YAML.

Felügyelt identitások összefoglalásaSummary of managed identities

Az AK számos felügyelt identitást használ a beépített szolgáltatásokhoz és bővítményekhez.AKS uses several managed identities for built-in services and add-ons.

IdentitásIdentity NameName Használati esetUse case Alapértelmezett engedélyekDefault permissions Saját identitás használataBring your own identity
VezérlősíkControl plane nem láthatónot visible Az AK-vezérlési sík összetevői használják a fürt erőforrásainak kezelésére, beleértve a bejövő terheléselosztást és az AK által felügyelt nyilvános IP-címeket, valamint a fürt automatikus méretezési műveleteitUsed by AKS control plane components to manage cluster resources including ingress load balancers and AKS managed public IPs, and Cluster Autoscaler operations A csomópont-erőforráscsoport közreműködői szerepköreContributor role for Node resource group támogatottsupported
KubeletKubelet AK-fürt neve – agentpoolAKS Cluster Name-agentpool Hitelesítés Azure Container Registry (ACR)Authentication with Azure Container Registry (ACR) NA (kubernetes v 1.15 +)NA (for kubernetes v1.15+) Egyelőre nem támogatottNot currently supported
BővítményAdd-on AzureNPMAzureNPM Nincs szükség identitásraNo identity required NANA NoNo
BővítményAdd-on AzureCNI-hálózat figyeléseAzureCNI network monitoring Nincs szükség identitásraNo identity required NANA NoNo
BővítményAdd-on Azure-Policy (forgalomirányító)azure-policy (gatekeeper) Nincs szükség identitásraNo identity required NANA NoNo
BővítményAdd-on Azure-szabályzatazure-policy Nincs szükség identitásraNo identity required NANA NoNo
BővítményAdd-on CalicoCalico Nincs szükség identitásraNo identity required NANA NoNo
BővítményAdd-on IrányítópultDashboard Nincs szükség identitásraNo identity required NANA NoNo
BővítményAdd-on HTTPApplicationRoutingHTTPApplicationRouting A szükséges hálózati erőforrások kezeléseManages required network resources A DNS-zónához tartozó csomópont-erőforráscsoport, közreműködői szerepkör olvasói szerepköreReader role for node resource group, contributor role for DNS zone NoNo
BővítményAdd-on Bejövő alkalmazások átjárójaIngress application gateway A szükséges hálózati erőforrások kezeléseManages required network resources A csomópont-erőforráscsoport közreműködői szerepköreContributor role for node resource group NoNo
BővítményAdd-on omsagentomsagent AK-metrikák küldésére szolgál Azure MonitorUsed to send AKS metrics to Azure Monitor A metrikák figyelése – közzétevői szerepkörMonitoring Metrics Publisher role NoNo
BővítményAdd-on Virtual-Node (ACIConnector)Virtual-Node (ACIConnector) Azure Container Instances (ACI) szükséges hálózati erőforrásait kezeliManages required network resources for Azure Container Instances (ACI) A csomópont-erőforráscsoport közreműködői szerepköreContributor role for node resource group NoNo
OSS-projektOSS project HRE-Pod-Identityaad-pod-identity Lehetővé teszi az alkalmazások számára a felhőalapú erőforrások biztonságos elérését Azure Active Directory (HRE) használatávalEnables applications to access cloud resources securely with Azure Active Directory (AAD) NANA Az engedélyek megadásának lépései https://github.com/Azure/aad-pod-identity#role-assignment .Steps to grant permission at https://github.com/Azure/aad-pod-identity#role-assignment.

AK-fürt létrehozása felügyelt identitásokkalCreate an AKS cluster with managed identities

Most már létrehozhat egy AK-fürtöt a felügyelt identitásokkal a következő CLI-parancsok használatával.You can now create an AKS cluster with managed identities by using the following CLI commands.

Először hozzon létre egy Azure-erőforráscsoportot:First, create an Azure resource group:

# Create an Azure resource group
az group create --name myResourceGroup --location westus2

Ezután hozzon létre egy AK-fürtöt:Then, create an AKS cluster:

az aks create -g myResourceGroup -n myManagedCluster --enable-managed-identity

A felügyelt identitásokat használó sikeres fürtök az egyszerű szolgáltatás profiljának adatait tartalmazzák:A successful cluster creation using managed identities contains this service principal profile information:

"servicePrincipalProfile": {
    "clientId": "msi"
  }

Az alábbi paranccsal lekérdezheti a vezérlési sík felügyelt identitásának ObjectId:Use the following command to query objectid of your control plane managed identity:

az aks show -g myResourceGroup -n myManagedCluster --query "identity"

Az eredménynek a következőhöz hasonlóan kell kinéznie:The result should look like:

{
  "principalId": "<object_id>",   
  "tenantId": "<tenant_id>",      
  "type": "SystemAssigned"                                 
}

Miután létrehozta a fürtöt, az alkalmazás számítási feladatait telepítheti az új fürtre, és ugyanúgy kezelheti azt, mint a Service-Principal-alapú AK-fürtökkel.Once the cluster is created, you can then deploy your application workloads to the new cluster and interact with it just as you've done with service-principal-based AKS clusters.

Megjegyzés

Saját VNet, statikus IP-cím vagy csatolt Azure-lemez létrehozásához és használatához, ahol az erőforrások a munkavégző csomópont-erőforráscsoporton kívül esnek, a szerepkör-hozzárendelés végrehajtásához használja a fürthöz rendelt felügyelt identitás PrincipalID.For creating and using your own VNet, static IP address, or attached Azure disk where the resources are outside of the worker node resource group, use the PrincipalID of the cluster System Assigned Managed Identity to perform a role assignment. A szerepkör-hozzárendeléssel kapcsolatos további információkért lásd: hozzáférés delegálása más Azure-erőforrásokhoz.For more information on role assignment, see Delegate access to other Azure resources.

Az engedélyek az Azure Cloud Provider által használt fürtözött felügyelt identitáshoz való jogosultsága akár 60 percet is igénybe vehet.Permission grants to cluster Managed Identity used by Azure Cloud provider may take up 60 minutes to populate.

Végül kapjon hitelesítő adatokat a fürt eléréséhez:Finally, get credentials to access the cluster:

az aks get-credentials --resource-group myResourceGroup --name myManagedCluster

AK-fürt frissítése felügyelt identitásokra (előzetes verzió)Update an AKS cluster to managed identities (Preview)

Most már frissítheti az egyszerű szolgáltatásnév használatával működő AK-fürtöt a felügyelt identitásokkal való együttműködéshez a következő CLI-parancsokkal.You can now update an AKS cluster currently working with service principals to work with managed identities by using the following CLI commands.

Először regisztrálja a szolgáltatás jelölőjét a rendszer által hozzárendelt identitáshoz:First, Register the Feature Flag for system-assigned identity:

az feature register --namespace Microsoft.ContainerService -n MigrateToMSIClusterPreview

A rendszer által hozzárendelt identitás frissítése:Update the system-assigned identity:

az aks update -g <RGName> -n <AKSName> --enable-managed-identity

Regisztrálja a szolgáltatás jelölőjét a felhasználó által hozzárendelt identitáshoz:Register the Feature Flag for user-assigned identity:

az feature register --namespace Microsoft.ContainerService -n UserAssignedIdentityPreview

A felhasználó által hozzárendelt identitás frissítése:Update the user-assigned identity:

az aks update -g <RGName> -n <AKSName> --enable-managed-identity --assign-identity <UserAssignedIdentityResourceID> 

Megjegyzés

Miután a rendszer által hozzárendelt vagy felhasználó által hozzárendelt identitásokat frissítette a felügyelt identitásra, hajtson végre egy műveletet a az aks nodepool upgrade --node-image-only csomópontokon a felügyelt identitás frissítésének befejezéséhez.Once the system-assigned or user-assigned identities have been updated to managed identity, perform an az aks nodepool upgrade --node-image-only on your nodes to complete the update to managed identity.

Saját vezérlő síkjaBring your own control plane MI

Az egyéni vezérlő sík identitása lehetővé teszi, hogy a fürt létrehozása előtt hozzáférést biztosítson a meglévő identitáshoz.A custom control plane identity enables access to be granted to the existing identity prior to cluster creation. Ez a funkció olyan forgatókönyveket tesz lehetővé, mint például az egyéni VNET vagy a UDR outboundType egy előre létrehozott felügyelt identitás használatával.This feature enables scenarios such as using a custom VNET or outboundType of UDR with a pre-created managed identity.

Telepítenie kell az Azure CLI, a 2.15.1 vagy a újabb verzióját.You must have the Azure CLI, version 2.15.1 or later installed.

KorlátozásokLimitations

  • A Azure Government jelenleg nem támogatott.Azure Government isn't currently supported.
  • Az Azure China 21Vianet jelenleg nem támogatott.Azure China 21Vianet isn't currently supported.

Ha még nem rendelkezik felügyelt identitással, folytassa a következő lépéssel, és hozzon létre egyet például az az Identity CLIhasználatával.If you don't have a managed identity yet, you should go ahead and create one for example by using az identity CLI.

az identity create --name myIdentity --resource-group myResourceGroup

Az eredménynek a következőhöz hasonlóan kell kinéznie:The result should look like:

{                                                                                                                                                                                 
  "clientId": "<client-id>",
  "clientSecretUrl": "<clientSecretUrl>",
  "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", 
  "location": "westus2",
  "name": "myIdentity",
  "principalId": "<principalId>",
  "resourceGroup": "myResourceGroup",                       
  "tags": {},
  "tenantId": "<tenant-id>>",
  "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}

Ha a felügyelt identitás része az előfizetésnek, akkor az az Identity CLI paranccsal kérdezheti le.If your managed identity is part of your subscription, you can use az identity CLI command to query it.

az identity list --query "[].{Name:name, Id:id, Location:location}" -o table

Most a következő paranccsal hozhatja létre a fürtöt a meglévő identitásával:Now you can use the following command to create your cluster with your existing identity:

az aks create \
    --resource-group myResourceGroup \
    --name myManagedCluster \
    --network-plugin azure \
    --vnet-subnet-id <subnet-id> \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.2.0.10 \
    --service-cidr 10.2.0.0/24 \
    --enable-managed-identity \
    --assign-identity <identity-id> \

A saját felügyelt identitások használatával történő sikeres fürtök a userAssignedIdentities-profil adatait tartalmazzák:A successful cluster creation using your own managed identities contains this userAssignedIdentities profile information:

 "identity": {
   "principalId": null,
   "tenantId": null,
   "type": "UserAssigned",
   "userAssignedIdentities": {
     "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
       "clientId": "<client-id>",
       "principalId": "<principal-id>"
     }
   }
 },

Következő lépésekNext steps