Uzyskiwanie bezpiecznego dostępu do zasobów platformy Azure w usłudze Azure Kubernetes Service przy użyciu zaufanego dostępu
W tym artykule pokazano, jak uzyskać bezpieczny dostęp dla usług platformy Azure do serwera interfejsu API Kubernetes w usłudze Azure Kubernetes Service (AKS) przy użyciu zaufanego dostępu.
Funkcja Zaufanego dostępu zapewnia usługom bezpieczny dostęp do serwera interfejsu API usługi AKS przy użyciu zaplecza platformy Azure bez konieczności używania prywatnego punktu końcowego. Zamiast polegać na tożsamościach, które mają uprawnienia firmy Microsoft Entra , ta funkcja może używać przypisanej przez system tożsamości zarządzanej do uwierzytelniania za pomocą usług zarządzanych i aplikacji, które mają być używane z klastrami usługi AKS.
Uwaga
Interfejs API zaufanego dostępu jest ogólnie dostępny. Udostępniamy ogólną obsługę interfejsu wiersza polecenia platformy Azure, ale jest ona nadal dostępna w wersji zapoznawczej i wymaga użycia rozszerzenia aks-preview.
Omówienie funkcji zaufanego dostępu
Zaufany dostęp dotyczy następujących scenariuszy:
- Jeśli autoryzowany zakres adresów IP jest ustawiony lub w klastrze prywatnym, usługi platformy Azure mogą nie być w stanie uzyskać dostępu do serwera interfejsu API Kubernetes, chyba że zaimplementowano model dostępu do prywatnego punktu końcowego.
- Udzielenie administratorowi usługi platformy Azure dostępu do interfejsu API platformy Kubernetes nie jest zgodne z najlepszymi rozwiązaniami dotyczącymi najniższych uprawnień i może prowadzić do eskalacji uprawnień lub ryzyka wycieku poświadczeń. Na przykład może być konieczne zaimplementowanie uprawnień usługi z wysokimi uprawnieniami uprzywilejowanych i nie są one idealne w przeglądzie inspekcji.
Za pomocą zaufanego dostępu możesz wyrazić jawną zgodę na tożsamość zarządzaną przypisaną przez system dozwolonych zasobów w celu uzyskania dostępu do klastrów usługi AKS przy użyciu zasobu platformy Azure nazywanego powiązaniem roli. Zasoby platformy Azure uzyskują dostęp do klastrów usługi AKS za pośrednictwem bramy regionalnej usługi AKS za pośrednictwem uwierzytelniania tożsamości zarządzanej przypisanej przez system. Odpowiednie uprawnienia platformy Kubernetes są przypisywane za pośrednictwem zasobu platformy Azure nazywanego rolą. Za pomocą zaufanego dostępu można uzyskiwać dostęp do klastrów usługi AKS z różnymi konfiguracjami, w tym między innymi z klastrami prywatnymi, klastrami, które mają wyłączone konta lokalne, klastrami Firmy Microsoft Entra i autoryzowanymi klastrami zakresów adresów IP.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Typy zasobów, które obsługują tożsamość zarządzaną przypisaną przez system.
- Interfejs wiersza polecenia platformy Azure w wersji 2.53.0 lub nowszej. Uruchom polecenie
az --version
, aby znaleźć swoją wersję. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. - Aby dowiedzieć się, jakie role mają być używane w różnych scenariuszach, zobacz następujące artykuły:
- W tej samej subskrypcji co zasób platformy Azure, do którego chcesz uzyskać dostęp do klastra, utwórz klaster usługi AKS.
Nawiązywanie połączenia z klastrem
Skonfiguruj kubectl
, aby nawiązać połączenie z klastrem az aks get-credentials
przy użyciu polecenia .
export RESOURCE_GROUP_NAME="myResourceGroup"
export CLUSTER_NAME="myClusterName"
az aks get-credentials --resource-group ${RESOURCE_GROUP_NAME} --name ${CLUSTER_NAME} --overwrite-existing
Sprawdź połączenie z klastrem kubectl get
przy użyciu polecenia .
kubectl get nodes
Wybierz wymagane role dostępu zaufanego
Wybrane role zależą od usług platformy Azure, do których chcesz uzyskać dostęp do klastra usługi AKS. Usługi platformy Azure ułatwiają tworzenie ról i powiązań ról, które tworzą połączenie z usługi platformy Azure do usługi AKS.
Aby znaleźć potrzebne role, zapoznaj się z dokumentacją usługi platformy Azure, którą chcesz połączyć z usługą AKS. Możesz również użyć interfejsu wiersza polecenia platformy Azure, aby wyświetlić listę ról dostępnych dla usługi platformy Azure przy użyciu az aks trustedaccess role list --location <location>
polecenia .
Tworzenie powiązania roli zaufanego dostępu
Po potwierdzeniu, która rola ma być używana, użyj interfejsu wiersza polecenia platformy Azure, aby utworzyć powiązanie roli zaufanego dostępu w klastrze usługi AKS. Powiązanie roli kojarzy wybraną rolę z usługą platformy Azure.
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}
Wyniki:
{
"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"
}
Aktualizowanie istniejącego powiązania roli zaufanego dostępu
W przypadku istniejącego powiązania roli, które ma skojarzą usługę źródłową, można zaktualizować powiązanie roli przy użyciu nowych ról za pomocą 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
polecenia . To polecenie aktualizuje powiązanie roli przy użyciu nowych ról, które określisz.
Uwaga
Menedżer dodatków aktualizuje klastry co pięć minut, więc zastosowanie nowego powiązania roli może potrwać do pięciu minut. Zanim nowe powiązanie roli zostanie zastosowane, istniejące powiązanie roli nadal działa.
Możesz użyć polecenia , az aks trusted access rolebinding list
aby sprawdzić bieżące powiązanie roli.
Pokaż powiązanie roli zaufanego dostępu
Pokaż określone powiązanie roli zaufanego az aks trustedaccess rolebinding show --name $ROLE_BINDING_NAME --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
dostępu przy użyciu polecenia .
Wyświetlanie listy wszystkich powiązań roli zaufanego dostępu dla klastra
Wyświetl listę wszystkich powiązań ról zaufanego dostępu dla klastra az aks trustedaccess rolebinding list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
przy użyciu polecenia .
Powiązana zawartość
- Wdrażanie rozszerzeń klastra dla usługi AKS i zarządzanie nimi
- Wdrażanie rozszerzenia usługi Azure Machine Learning w klastrze Kubernetes z obsługą usługi AKS lub Azure Arc
- Wdrażanie usługi Azure Backup w klastrze usługi AKS
- Ustawianie stanu kontenera bez agenta w Microsoft Defender dla Chmury dla klastra usługi AKS
Azure Kubernetes Service