Uzyskiwanie bezpiecznego dostępu do zasobów platformy Azure w usłudze Azure Kubernetes Service przy użyciu zaufanego dostępu

Wiele usług platformy Azure, które integrują się z usługą Azure Kubernetes Service (AKS), wymaga dostępu do serwera interfejsu API Kubernetes. Aby uniknąć przyznania tym usługom dostępu administratora lub upublicznieniu klastrów usługi AKS w celu uzyskania dostępu do sieci, możesz użyć funkcji zaufanego dostępu usługi AKS.

Ta funkcja 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.

W tym artykule pokazano, jak uzyskać bezpieczny dostęp dla usług platformy Azure do serwera interfejsu API Kubernetes w usłudze AKS przy użyciu zaufanego dostępu.

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

Tworzenie klastra AKS

W tej samej subskrypcji co zasób platformy Azure, do którego chcesz uzyskać dostęp do klastra, utwórz klaster usługi AKS.

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.

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.

# Create a Trusted Access role binding in an AKS cluster

az aks trustedaccess rolebinding create  --resource-group <AKS resource group> --cluster-name <AKS cluster name> -n <role binding name> -s <connected service resource ID> --roles <roleName1, roleName2>

Oto przykład:

# Sample command

az aks trustedaccess rolebinding create \
-g myResourceGroup \
--cluster-name myAKSCluster -n test-binding \
--source-resource-id /subscriptions/000-000-000-000-000/resourceGroups/myResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/MyMachineLearning \
--roles Microsoft.Compute/virtualMachineScaleSets/test-node-reader,Microsoft.Compute/virtualMachineScaleSets/test-admin

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.

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ć az aks trusted access rolebinding list --name <role binding name> --resource-group <resource group> polecenia , aby sprawdzić bieżące powiązanie roli.

# Update the RoleBinding command

az aks trustedaccess rolebinding update --resource-group <AKS resource group> --cluster-name <AKS cluster name> -n <existing role binding name>  --roles <newRoleName1, newRoleName2>

Oto przykład:

# Update the RoleBinding command with sample resource group, cluster, and roles

az aks trustedaccess rolebinding update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster -n test-binding \
--roles Microsoft.Compute/virtualMachineScaleSets/test-node-reader,Microsoft.Compute/virtualMachineScaleSets/test-admin

Pokaż powiązanie roli zaufanego dostępu

Pokaż określone powiązanie roli zaufanego az aks trustedaccess rolebinding show dostępu przy użyciu polecenia :

az aks trustedaccess rolebinding show --name <role binding name> --resource-group <AKS resource group> --cluster-name <AKS cluster name>

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 przy użyciu az aks trustedaccess rolebinding list polecenia :

az aks trustedaccess rolebinding list --resource-group <AKS resource group> --cluster-name <AKS cluster name>

Usuwanie powiązania roli zaufanego dostępu dla klastra

Ostrzeżenie

Usunięcie istniejącego powiązania roli zaufanego dostępu powoduje rozłączenie usługi platformy Azure z klastra usługi AKS.

Usuń istniejące powiązanie roli zaufanego dostępu przy użyciu az aks trustedaccess rolebinding delete polecenia :

az aks trustedaccess rolebinding delete --name <role binding name> --resource-group <AKS resource group> --cluster-name <AKS cluster name>