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
- 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:
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.
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. Aby na przykład wyświetlić listę ról usługi Azure Machine Learning, użyj następującego polecenia:
az aks trustedaccess role list --location $LOCATION
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 $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $ROLE_BINDING_NAME --source-resource-id $SOURCE_RESOURCE_ID --roles $ROLE_NAME_1,$ROLE_NAME_2
Oto przykład:
# 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
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ć polecenia , az aks trusted access rolebinding list
aby sprawdzić bieżące powiązanie roli.
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
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 $RESOURCE_GROUP_NAME --cluster-name $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 $RESOURCE_GROUP_NAME --cluster-name $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 $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
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