Używanie RBAC Azure z usługą Azure Kubernetes Fleet Manager

Dotyczy: ✔️ Fleet Manager ✔️ Fleet Manager z klastrem koncentratora

Ten artykuł zawiera omówienie ról RBAC Azure, których można używać z usługą Azure Kubernetes Fleet Manager.

Azure kontrola dostępu oparta na rolach (Azure RBAC) to system autoryzacji oparty na Azure Resource Manager, który zapewnia szczegółowe zarządzanie dostępem do Azure zasobów.

Azure Resource Manager

Te role zapewniają dostęp do zasobów i podźródł floty Azure Resource Manager (ARM) oraz mają zastosowanie do menedżerów floty z klastrem centrum i bez niej.

Uwaga / Notatka

W przypadku korzystania z portalu Azure do wykonywania akcji, takich jak dodawanie klastrów członkowskich, upewnij się, że użytkownik ma uprawnienia Współautor do grupy zasobów, w której wdrożono usługę Fleet Manager.

Nazwa roli opis Użycie
Azure Kubernetes Fleet Manager - współtwórca Udziela dostępu do odczytu i zapisu do zasobów Azure udostępnianych przez Azure Kubernetes Fleet Manager, w tym flot, członków floty, strategii aktualizacji floty, operacji aktualizacji floty i nie tylko. Użyj tej roli do nadania uprawnień Kontrybutora, które mają zastosowanie wyłącznie do zasobów ARM oraz podzasobów w Fleet Manager. Na przykład tę rolę można nadać administratorowi Azure, którego zadaniem jest definiowanie i utrzymywanie zasobów usługi Fleet Manager.
Azure Rola użytkownika klastra Hub usługi Kubernetes Fleet Manager Udziela dostępu tylko do odczytu do klastra centrum Fleet Manager i pliku kubeconfig w celu połączenia się z klastrem centrum Fleet Manager. Służy do wyświetlania zasobów usługi Fleet Manager i pobierania klastra kubeconfig centrum Fleet Manager w celu sprawdzenia konfiguracji i obciążeń bez wprowadzania żadnych zmian.

Płaszczyzna danych Kubernetes

Role płaszczyzny danych programu Fleet Manager można przypisywać na poziomie floty lub na poziomie przestrzeni nazw zarządzanej floty.

Istnieją dwa typy ról płaszczyzny danych: role RBAC dla Fleet Managera i role RBAC dla klastrów członkowskich. Role RBAC dla usługi Fleet Manager udzielają dostępu tylko do obiektów Kubernetes w klastrze centrum zarządzanym przez flotę. Role RBAC dla klastrów członkowskich zapewniają dostęp wyłącznie do obiektów Kubernetes w klastrach członkowskich we flocie. Zastosowanie roli RBAC dla klastrów członkowskich w zakresie zarządzanej przestrzeni nazw stosuje tę rolę do zarządzanej przestrzeni nazw we wszystkich elementach członkowskich nadrzędnej floty, niezależnie od tego, czy zarządzana przestrzeń nazw jest propagowana do tego elementu członkowskiego.

Gdy klaster dołącza do floty jako klaster członkowski, użytkownicy uzyskują wszelkie uprawnienia do klastra, które zostały już przyznane w zakresie nadrzędnej floty. Gdy klaster członkowski opuści flotę, użytkownik utraci te uprawnienia dla tego klastra. Na przykład użytkownik z przypisaną rolą Azure Kubernetes Fleet Manager RBAC Cluster Admin for Member Clusters w zakresie floty może tworzyć przestrzenie nazw we wszystkich klastrach członkowskich tylko wtedy, gdy te klastry pozostają w ramach floty.

Jeśli rola jest stosowana w zakresie zarządzanej przestrzeni nazw i zarządzana przestrzeń nazw zostanie usunięta, przypisanie roli również zostanie usunięte. Jeśli zarządzana przestrzeń nazw zostanie ponownie utworzona, przypisanie roli nie zostanie automatycznie ponownie stworzone i należy je ponownie utworzyć ręcznie.

Uwaga / Notatka

Te role RBAC nie są obecnie obsługiwane dla klastrów członkowskich obsługujących usługę Arc. Ponadto kontrola dostępu dla określonych Zasobów Niestandardowych Kubernetes (CRs) nie jest obsługiwana w przypadku tych ról Azure RBAC.

Klaster koncentratora usługi Fleet Manager

Następujące role są używane do interakcji z zasobami Kubernetes w klastrze centrum Fleet Manager.

Nazwa roli opis Użycie
Administrator klastra RBAC Azure Kubernetes Fleet Manager Przyznaje dostęp do odczytu/zapisu do wszystkich zasobów Kubernetes w klastrze węzła centralnego zarządzanym przez flotę. Użyj tej roli, aby udzielić dostępu do wszystkich obiektów Kubernetes (w tym CRD) w zakresie przestrzeni nazw lub klastra.
Administrator RBAC usługi Azure Kubernetes Fleet Manager Przyznaje dostęp do odczytu i zapisu do zasobów Kubernetes w przestrzeni nazw w klastrze centralnym zarządzanym przez flotę. Zapewnia uprawnienia do zapisu dla większości obiektów w przestrzeni nazw, z wyjątkiem ResourceQuota obiektu i samego obiektu przestrzeni nazw. Zastosowanie tej roli w zakresie klastra zapewnia dostęp we wszystkich przestrzeniach nazw. Ta rola umożliwia udzielanie możliwości administrowania wybranymi obiektami Kubernetes (w tym rolami i powiązaniami ról) w przestrzeni nazw lub zakresie klastra. Na przykład do użycia przez zespół projektu odpowiedzialny za obiekty w danej przestrzeni nazw.
Autor RBAC usługi Azure Kubernetes Fleet Manager Przyznaje dostęp do odczytu i zapisu większości zasobów Kubernetes w przestrzeni nazw w centralnym klastrze zarządzanym przez flotę. Ta rola nie zezwala na wyświetlanie ani modyfikowanie ról ani powiązań ról. Jednak ta rola umożliwia dostęp do sekretów jako dowolny ServiceAccount w przestrzeni nazw, dzięki czemu może służyć do uzyskiwania poziomów dostępu do interfejsu API dowolnego ServiceAccount w przestrzeni nazw. Zastosowanie tej roli w zakresie klastra zapewnia dostęp we wszystkich przestrzeniach nazw. Użyj tej roli, aby przyznać możliwość zapisywania wybranych obiektów Kubernetes w zakresie przestrzeni nazw lub klastra. Na przykład do użycia przez zespół projektu odpowiedzialny za obiekty w danej przestrzeni nazw.
Czytelnik RBAC dla usługi Azure Kubernetes Fleet Manager Udziela dostępu tylko do odczytu do większości zasobów Kubernetes w przestrzeni nazw w klastrze węzła zarządzanego przez flotę. Nie zezwala na wyświetlanie ról ani powiązań ról. Ta rola nie zezwala na wyświetlanie tajemnic, ponieważ odczytywanie zawartości tajemnic umożliwia dostęp do ServiceAccount poświadczeń w przestrzeni nazw, co umożliwi dostęp do interfejsu API jako dowolny ServiceAccount w przestrzeni nazw (forma eskalacji uprawnień). Zastosowanie tej roli w zakresie klastra zapewnia dostęp we wszystkich przestrzeniach nazw. Użyj tej roli, aby umożliwić odczytywanie wybranych niewrażliwych obiektów Kubernetes w zakresie przestrzeni nazw lub klastra. Na przykład tę rolę można przyznać do celów przeglądu.

Klastry członkowskie Fleet Manager

Poniższe role są używane do interakcji z zasobami Kubernetes w klastrach członkowskich usługi Fleet Manager podczas korzystania z przestrzeni nazw floty zarządzanej.

Nazwa roli opis Użycie
Administrator klastrów RBAC usługi Azure Kubernetes Fleet Manager dla klastrów członkowskich Pełny dostęp do odczytu i zapisu wszystkich zasobów Kubernetes w klastrach członkowskich we flocie. Ta rola służy do udzielania pełnego dostępu do wszystkich zasobów w klastrach członkowskich. Na przykład administrator platformy, który musi uzyskać dostęp do wielu przestrzeni nazw w klastrach członkowskich.
Administrator RBAC usługi Azure Kubernetes Fleet Manager dla klastrów członkowskich Dostęp do odczytu i zapisu zasobów Kubernetes w ramach przestrzeni nazw na klastrze członkowskim. Ta rola umożliwia udzielanie możliwości administrowania wybranymi obiektami Kubernetes (w tym rolami i powiązaniami ról) w zakresie przestrzeni nazw dla elementów członkowskich floty. Na przykład do użycia przez zespół projektu odpowiedzialny za obiekty w danej przestrzeni nazw.
RBAC Writer usługi Azure Kubernetes Fleet Manager dla klastrów członkowskich Dostęp odczytu i zapisu do większości zasobów Kubernetes w przestrzeni nazw. Nie można wyświetlać ani modyfikować ról ani powiązań ról. Może odczytywać wpisy tajne (w związku z tym można założyć dowolne ServiceAccount w przestrzeni nazw). Użyj tej roli, aby przyznać możliwość zapisywania wybranych obiektów Kubernetes w przestrzeni nazw na członku floty. Na przykład do użycia przez zespół projektu odpowiedzialny za obiekty w danej przestrzeni nazw.
Czytelnik RBAC dla klastra członkowskiego usługi Azure Kubernetes Fleet Manager Dostęp tylko do odczytu do większości obiektów w przestrzeni nazw w klastrze członkowskim. Nie można wyświetlić ról ani powiązań ról. Nie można wyświetlić tajnych danych (zapobiega eskalacji uprawnień poprzez ServiceAccount dane uwierzytelniania). Użyj tej roli, aby przyznać możliwość odczytywania wybranych niewrażliwych obiektów Kubernetes w obrębie przestrzeni nazw dla członków floty.

Prywatny klaster węzła

W przypadku korzystania z menedżera flot z prywatnym klastrem koncentratora należy dodać następującą konfigurację Azure RBAC, aby Fleet Manager mógł kontrolować konfigurację i stosować aktualizacje do zarządzanego klastra koncentratora.

Klastry koncentratora prywatnego wymagają przypisania roli Współtwórca sieci na podsieci sieci wirtualnej skonfigurowanej jako podsieć dla agentów (węzłów). Przypisanie roli używa Azure jednostki usługi Fleet Manager, której identyfikator obiektu różni się w różnych dzierżawach firmy Entra.

Uwaga / Notatka

To przypisanie roli nie jest potrzebne podczas tworzenia menedżera floty z klastrem centrum prywatnego przy użyciu polecenia az fleet create Azure CLI, ponieważ Azure CLI automatycznie tworzy przypisanie roli.

  1. Uzyskaj identyfikator zasobu Azure podsieci Azure Virtual Network, do którego jest dołączony klaster centrum Fleet Manager. Użyj odpowiednich wartości dla symboli zastępczych.

    SUBNET_ID=$(az network vnet subnet show --subscription <subscription-id> --resource-group <virtual-network-rg> --vnet-name <virtual-network> -n <subnet-name> -o tsv --query id)
    
  2. Pobierz identyfikator obiektu jednostki usługi Azure Fleet Manager dla Twojego środowiska.

    FLEET_RP_ID=$(az ad sp list --display-name "Azure Kubernetes Service - Fleet RP" --query "[].{id:id}" --output tsv)
    
  3. Przypisz dostawcy zasobów Fleet rolę Współautora sieci, ustawiając zakres na identyfikator zasobu dotyczący podsieci.

    az role assignment create --assignee "${FLEET_RP_ID}" --role "Network Contributor" --scope "${SUBNET_ID}"
    
  4. Potwierdź przypisanie przy użyciu następującego polecenia.

    az role assignment list --assignee "${FLEET_RP_ID}" --scope "${SUBNET_ID}"
    

Przykładowe przypisania ról

Za pomocą Azure CLI można przydzielić role Azure RBAC. Aby na przykład utworzyć przypisanie roli w ramach Floty:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)

az role assignment create \
    --role 'Azure Kubernetes Fleet Manager RBAC Reader' \
    --assignee "$IDENTITY" \
    --scope "$FLEET_ID"

Można również ograniczyć zakres przypisań ról do pojedynczej zarządzanej przestrzeni nazw, dołączając /managedNamespaces/<managed-namespace> do zakresu identyfikatora floty. Aby na przykład utworzyć przypisanie roli na poziomie zarządzanej przestrzeni nazw dla przestrzeni example-ns nazw:

IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)
MANAGED_NAMESPACE_NAME="example-ns"

az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"/managedNamespaces/"$MANAGED_NAMESPACE_NAME"