Delen via


Veilige toegang krijgen voor Azure-resources in Azure Kubernetes Service met behulp van vertrouwde toegang

Veel Azure-services die integreren met Azure Kubernetes Service (AKS) hebben toegang nodig tot de Kubernetes API-server. U kunt de functie Vertrouwde toegang tot AKS gebruiken om te voorkomen dat deze services beheerderstoegang verlenen of uw AKS-clusters openbaar maken voor netwerktoegang.

Deze functie biedt services veilige toegang tot AKS-API-server met behulp van de Azure-back-end zonder dat hiervoor een privé-eindpunt nodig is. In plaats van te vertrouwen op identiteiten met Microsoft Entra-machtigingen , kan deze functie uw door het systeem toegewezen beheerde identiteit gebruiken om te verifiëren met de beheerde services en toepassingen die u wilt gebruiken met uw AKS-clusters.

In dit artikel leest u hoe u beveiligde toegang krijgt voor uw Azure-services naar uw Kubernetes API-server in AKS met behulp van vertrouwde toegang.

Notitie

De Trusted Access-API is algemeen beschikbaar. We bieden algemene beschikbaarheidsondersteuning voor de Azure CLI, maar deze is nog in preview en vereist het gebruik van de aks-preview-extensie.

Overzicht van vertrouwde toegangsfuncties

Vertrouwde toegang heeft betrekking op de volgende scenario's:

  • Als een geautoriseerd IP-bereik is ingesteld of zich in een privécluster bevindt, hebben Azure-services mogelijk geen toegang tot de Kubernetes-API-server, tenzij u een toegangsmodel voor privé-eindpunten implementeert.

  • Het verlenen van toegang door een Azure-servicebeheerder tot de Kubernetes-API volgt niet de best practice voor toegang met minimale bevoegdheden en kan leiden tot escalatie van bevoegdheden of het risico op lekken van referenties. U moet bijvoorbeeld machtigingen voor service-naar-service met hoge bevoegdheden implementeren en ze zijn niet ideaal in een controlebeoordeling.

U kunt Vertrouwde toegang gebruiken om expliciet toestemming te geven voor uw door het systeem toegewezen beheerde identiteit van toegestane resources voor toegang tot uw AKS-clusters met behulp van een Azure-resource die een rolbinding wordt genoemd. Uw Azure-resources hebben toegang tot AKS-clusters via de regionale AKS-gateway via door het systeem toegewezen beheerde identiteitverificatie. De juiste Kubernetes-machtigingen worden toegewezen via een Azure-resource die een rol wordt genoemd. Via Vertrouwde toegang hebt u toegang tot AKS-clusters met verschillende configuraties, waaronder maar niet beperkt tot privéclusters, clusters waarvoor lokale accounts zijn uitgeschakeld, Microsoft Entra-clusters en geautoriseerde IP-bereikclusters.

Vereisten

Een AKS-cluster maken

Maak in hetzelfde abonnement als de Azure-resource waartoe u toegang wilt krijgen tot het cluster een AKS-cluster.

De vereiste vertrouwde toegangsrollen selecteren

Welke rollen u selecteert, is afhankelijk van de Azure-services waartoe u toegang wilt krijgen tot het AKS-cluster. Azure-services helpen bij het maken van rollen en rolbindingen die de verbinding van de Azure-service naar AKS bouwen.

Zie de documentatie voor de Azure-service waarmee u verbinding wilt maken met AKS om de rollen te vinden die u nodig hebt. U kunt de Azure CLI ook gebruiken om de rollen weer te geven die beschikbaar zijn voor de Azure-service. Als u bijvoorbeeld de rollen voor Azure Machine Learning wilt weergeven, gebruikt u de volgende opdracht:

az aks trustedaccess role list --location $LOCATION

Een rolbinding voor vertrouwde toegang maken

Nadat u hebt bevestigd welke rol u wilt gebruiken, gebruikt u de Azure CLI om een binding voor vertrouwde toegangsrollen te maken in het AKS-cluster. De rolbinding koppelt uw geselecteerde rol aan de Azure-service.

# Create a Trusted Access role binding in an AKS cluster

az aks trustedaccess rolebinding create  --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --source-resource-id $SOURCE_RESOURCE_ID --roles $ROLE_NAME_1,$ROLE_NAME_2

Hier volgt een voorbeeld:

# Sample command

az aks trustedaccess rolebinding create --resource-group myResourceGroup --cluster-name myAKSCluster --name test-binding --source-resource-id /subscriptions/000-000-000-000-000/resourceGroups/myResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/MyMachineLearning --roles Microsoft.MachineLearningServices/workspaces/mlworkload

Een bestaande rolbinding voor vertrouwde toegang bijwerken

Voor een bestaande rolbinding met een gekoppelde bronservice kunt u de rolbinding bijwerken met nieuwe rollen.

Notitie

De invoegtoepassingsbeheerder werkt clusters om de vijf minuten bij, dus het kan vijf minuten duren voordat de nieuwe rolbinding van kracht wordt. Voordat de nieuwe rolbinding van kracht wordt, werkt de bestaande rolbinding nog steeds.

U kunt de az aks trusted access rolebinding list opdracht gebruiken om de huidige rolbinding te controleren.

az aks trustedaccess rolebinding update --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --roles $ROLE_NAME_3,$ROLE_NAME_4

Een rolbinding voor vertrouwde toegang weergeven

Een specifieke rolbinding voor vertrouwde toegang weergeven met behulp van de az aks trustedaccess rolebinding show opdracht:

az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME

Alle rolbindingen voor vertrouwde toegang voor een cluster weergeven

Maak een lijst van alle vertrouwde toegangsrolbindingen voor een cluster met behulp van de az aks trustedaccess rolebinding list opdracht:

az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME

Een rolbinding voor vertrouwde toegang voor een cluster verwijderen

Waarschuwing

Als u een bestaande rolbinding voor vertrouwde toegang verwijdert, wordt de Azure-service losgekoppeld van het AKS-cluster.

Verwijder een bestaande rolbinding voor vertrouwde toegang met behulp van de az aks trustedaccess rolebinding delete opdracht:

az aks trustedaccess rolebinding delete --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME