Udostępnij za pośrednictwem


Kontrola dostępu oparta na rolach platformy Kubernetes na urządzeniu z procesorem GPU Usługi Azure Stack Edge Pro

DOTYCZY: Tak dla jednostki SKU procesora GPU ProAzure Stack Edge Pro — GPUTak dla jednostki SKU Pro 2Azure Stack Edge Pro 2Tak dla jednostki SKU Pro RAzure Stack Edge Pro R Azure Stack Edge Mini RTak dla jednostki SKU Mini R

Na urządzeniu Azure Stack Edge Pro podczas konfigurowania roli obliczeniowej tworzony jest klaster Kubernetes. Aby ograniczyć dostęp do zasobów klastra na urządzeniu, możesz użyć kontroli dostępu opartej na rolach (RBAC) platformy Kubernetes.

Ten artykuł zawiera omówienie systemu RBAC platformy Kubernetes dostarczonego przez platformę Kubernetes oraz sposób implementacji kontroli dostępu opartej na rolach platformy Kubernetes na urządzeniu Azure Stack Edge Pro.

Kontrola dostępu na podstawie ról na platformie Kubernetes

Kontrola dostępu oparta na rolach platformy Kubernetes umożliwia przypisywanie użytkowników lub grup użytkowników, uprawnienia do wykonywania takich czynności jak tworzenie lub modyfikowanie zasobów lub wyświetlanie dzienników z uruchomionych obciążeń aplikacji. Te uprawnienia mogą być ograniczone do jednej przestrzeni nazw lub przyznane w całym klastrze.

Podczas konfigurowania klastra Kubernetes zostaje utworzony jeden użytkownik odpowiadający temu klastrowi i jest nazywany użytkownikiem administracyjnym klastra. Plik kubeconfig jest skojarzony z użytkownikiem administratora klastra. Plik kubeconfig jest plikiem tekstowym zawierającym wszystkie informacje o konfiguracji wymagane do nawiązania połączenia z klastrem w celu uwierzytelnienia użytkownika.

Typy przestrzeni nazw

Zasoby platformy Kubernetes, takie jak zasobniki i wdrożenia, są logicznie grupowane w przestrzeń nazw. Te grupowania umożliwiają logiczne podzielenie klastra Kubernetes i ograniczenie dostępu do tworzenia, wyświetlania lub zarządzania zasobami. Użytkownicy mogą korzystać tylko z zasobów znajdujących się w przypisanych przestrzeniach nazw.

Przestrzenie nazw są przeznaczone do użytku w środowiskach z wieloma użytkownikami rozmieszczonymi w wielu zespołach lub projektach. Aby uzyskać więcej informacji, zobacz Kubernetes namespaces (Przestrzenie nazw kubernetes).

Urządzenie Azure Stack Edge Pro ma następujące przestrzenie nazw:

  • Przestrzeń nazw systemu — ta przestrzeń nazw to miejsce, w którym istnieją podstawowe zasoby, takie jak funkcje sieciowe, takie jak DNS i proxy, lub pulpit nawigacyjny platformy Kubernetes. W tej przestrzeni nazw zazwyczaj nie wdraża się własnych aplikacji. Ta przestrzeń nazw służy do debugowania wszelkich problemów z klastrem Kubernetes.

    Na urządzeniu znajduje się wiele przestrzeni nazw systemowych, a nazwy odpowiadające tym przestrzeniom nazw systemu są zarezerwowane. Oto lista zarezerwowanych przestrzeni nazw systemu:

    • kube-system
    • system metallb
    • dbe-namespace
    • domyślna
    • kubernetes-dashboard
    • kube-node-lease
    • kube-public

    Pamiętaj, aby nie używać żadnych nazw zarezerwowanych dla utworzonych przestrzeni nazw użytkowników.

  • Przestrzeń nazw użytkownika — są to przestrzenie nazw, które można utworzyć za pomocą narzędzia kubectl lub za pośrednictwem interfejsu programu PowerShell urządzenia w celu lokalnego wdrażania aplikacji.

  • Przestrzeń nazw usługi IoT Edge — łączysz się z tą iotedge przestrzenią nazw w celu zarządzania aplikacjami wdrożonym za pośrednictwem usługi IoT Edge.

  • Przestrzeń nazw usługi Azure Arc — łączysz się z tą azure-arc przestrzenią nazw w celu zarządzania aplikacjami wdrożonym za pośrednictwem usługi Azure Arc. Za pomocą usługi Azure Arc można również wdrażać aplikacje w innych przestrzeniach nazw użytkowników.

Przestrzenie nazw i użytkownicy

W świecie rzeczywistym ważne jest podzielenie klastra na wiele przestrzeni nazw.

  • Wielu użytkowników: jeśli masz wielu użytkowników, wiele przestrzeni nazw umożliwi tym użytkownikom wdrażanie aplikacji i usług w określonych przestrzeniach nazw w izolacji od siebie.
  • Pojedynczy użytkownik: nawet jeśli istnieje jeden użytkownik, wiele przestrzeni nazw umożliwiłoby użytkownikowi uruchamianie wielu wersji aplikacji w tym samym klastrze Kubernetes.

Role i powiązania ról

Platforma Kubernetes ma koncepcję powiązania roli i roli, która umożliwia przyznawanie uprawnień użytkownikowi lub zasobom na poziomie przestrzeni nazw i na poziomie klastra.

  • Role: możesz zdefiniować uprawnienia do użytkowników jako rolę , a następnie użyć ról , aby udzielić uprawnień w przestrzeni nazw.
  • RoleBindings: Po zdefiniowaniu ról można użyć funkcji RoleBindings , aby przypisać role dla danej przestrzeni nazw.

Takie podejście pozwala logicznie rozdzielić pojedynczy klaster Kubernetes, a użytkownicy mogą uzyskiwać dostęp tylko do zasobów aplikacji w przypisanej przestrzeni nazw.

Kontrola dostępu oparta na rolach platformy Kubernetes w usłudze Azure Stack Edge Pro

W bieżącej implementacji kontroli dostępu opartej na rolach platformy Kubernetes usługa Azure Stack Edge Pro umożliwia wykonywanie następujących akcji z ograniczonego obszaru uruchamiania programu PowerShell:

  • Tworzenie przestrzeni nazw.
  • Utwórz dodatkowych użytkowników.
  • Przyznaj administratorowi dostęp do utworzonych przestrzeni nazw. Należy pamiętać, że nie będziesz mieć dostępu do roli administratora klastra ani widoku zasobów w całym klastrze.
  • Pobierz kubeconfig plik z informacjami, aby uzyskać dostęp do klastra Kubernetes.

Urządzenie Azure Stack Edge Pro ma wiele przestrzeni nazw systemowych i można utworzyć przestrzenie nazw użytkowników z plikami kubeconfig , aby uzyskać dostęp do tych przestrzeni nazw. Użytkownicy mają pełną kontrolę nad tymi przestrzeniami nazw i mogą tworzyć lub modyfikować użytkowników albo udzielać użytkownikom dostępu. Tylko administrator klastra ma pełny dostęp do przestrzeni nazw systemowych i zasobów obejmujących cały klaster. Obiekt aseuser ma dostęp tylko do odczytu do przestrzeni nazw systemowych.

Oto diagram przedstawiający implementację kontroli dostępu opartej na rolach platformy Kubernetes na urządzeniu Azure Stack Edge Pro.

Kontrola dostępu oparta na rolach platformy Kubernetes na urządzeniu Azure Stack Edge Pro

Na tym diagramie Alice, Bob i Chuck mają dostęp tylko do przypisanych przestrzeni nazw użytkowników, które w tym przypadku są , ns1ns2i ns3 odpowiednio. W tych przestrzeniach nazw mają dostęp administratora. Z drugiej strony administrator klastra ma dostęp administratora do przestrzeni nazw systemu i zasobów w całym klastrze.

Jako użytkownik możesz tworzyć przestrzenie nazw i użytkowników, przypisywać użytkowników do przestrzeni nazw lub pobierać kubeconfig pliki. Aby uzyskać szczegółowe instrukcje krok po kroku, zobacz Access Kubernetes cluster via kuebctl on your Azure Stack Edge Pro (Uzyskiwanie dostępu do klastra Kubernetes za pośrednictwem usługi Kuebctl w usłudze Azure Stack Edge Pro).

Podczas pracy z przestrzeniami nazw i użytkownikami na urządzeniach Azure Stack Edge Pro obowiązują następujące zastrzeżenia:

  • Nie można wykonywać żadnych operacji, takich jak tworzenie użytkowników, udzielanie lub odwoływanie dostępu do przestrzeni nazw dla żadnego z przestrzeni nazw systemowych. Przykłady przestrzeni nazw systemowych obejmują kube-system, , metallb-system, kubernetes-dashboarddefault, kube-node-lease, . kube-public Przestrzenie nazw systemu obejmują również przestrzenie nazw zarezerwowane dla typów wdrożeń, takich jak iotedge (przestrzeń nazw usługi IoT Edge) i azure-arc (przestrzeń nazw usługi Azure Arc).
  • Przestrzenie nazw użytkowników można tworzyć i w tych przestrzeniach nazw tworzyć dodatkowych użytkowników i udzielać lub odwoływać dostęp do tych użytkowników.
  • Nie można tworzyć żadnych przestrzeni nazw o nazwach identycznych z nazwami dla dowolnej przestrzeni nazw systemu. Nazwy przestrzeni nazw systemowych są zarezerwowane.
  • Nie możesz tworzyć żadnych przestrzeni nazw użytkownika z nazwami, które są już używane przez inne przestrzenie nazw użytkowników. Jeśli na przykład masz utworzoną test-ns przestrzeń nazw, nie możesz utworzyć innej test-ns przestrzeni nazw.
  • Nie możesz tworzyć użytkowników z nazwami, które są już zarezerwowane. Na przykład aseuser jest zastrzeżonym użytkownikiem i nie można go użyć.

Następne kroki

Aby dowiedzieć się, jak utworzyć użytkownika, utworzyć przestrzeń nazw i udzielić użytkownikowi dostępu do przestrzeni nazw, zobacz Uzyskiwanie dostępu do klastra Kubernetes za pośrednictwem narzędzia kubectl.