Delen via


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

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

De functie Vertrouwde toegang biedt services beveiligde toegang tot de 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.

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

Verbinding maken met uw cluster

Configureer kubectl deze om verbinding te maken met uw cluster met behulp van de az aks get-credentials opdracht.

export RESOURCE_GROUP_NAME="myResourceGroup"
export CLUSTER_NAME="myClusterName"

az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${CLUSTER_NAME} --overwrite-existing

Controleer de verbinding met uw cluster met behulp van de kubectl get opdracht.

kubectl get nodes

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 met behulp van de az aks trustedaccess role list --location <location> opdracht.

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.

export ROLE_BINDING_NAME="myRoleBindingName"
export SOURCE_RESOURCE_ID="mySourceResourceID"
export ROLE_NAME_1="myRoleName1"
export ROLE_NAME_2="myRoleName2"

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}

Resultaten:

{
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.ContainerService/managedClusters/${CLUSTER_NAME}/trustedAccessRoleBindings/${ROLE_BINDING_NAME}",
  "name": "${ROLE_BINDING_NAME}",
  "provisioningState": "Succeeded",
  "resourceGroup": "${RESOURCE_GROUP_NAME}",
  "roles": [
    "${ROLE_NAME_1}",
    "${ROLE_NAME_2}"
  ],
  "sourceResourceId": "${SOURCE_RESOURCE_ID}",
  "systemData": null,
  "type": "Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings"
}

Een bestaande rolbinding voor vertrouwde toegang bijwerken

Voor een bestaande rolbinding met een gekoppelde bronservice kunt u de rolbinding bijwerken met nieuwe rollen met behulp van de 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 opdracht. Met deze opdracht wordt de rolbinding bijgewerkt met de nieuwe rollen die u opgeeft.

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.

Een rolbinding voor vertrouwde toegang weergeven

Een specifieke rolbinding voor vertrouwde toegang weergeven met behulp van de az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME opdracht.

Alle rolbindingen voor vertrouwde toegang voor een cluster weergeven

Geef met de az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME opdracht een lijst weer van alle rolbindingen voor vertrouwde toegang voor een cluster.