Co to jest kontrola dostępu oparta na rolach na platformie Azure (Azure RBAC)?

Zarządzanie dostępem do zasobów w chmurze jest funkcją o krytycznym znaczeniu dla każdej organizacji, która korzysta z chmury. Kontrola dostępu na podstawie ról platformy Azure ułatwia zarządzanie osobami mającymi dostęp do zasobów platformy Azure, czynnościami, jakie mogą wykonywać, oraz obszarami, do których mają dostęp.

Kontrola dostępu oparta na rolach platformy Azure to system autoryzacji oparty na usłudze Azure Resource Manager , który zapewnia szczegółowe zarządzanie dostępem do zasobów platformy Azure.

Ten film wideo zawiera krótkie omówienie kontroli dostępu opartej na rolach platformy Azure.

Co mogę zrobić dzięki kontroli dostępu na podstawie ról platformy Azure?

Oto kilka przykładów tego, co można zrobić za pomocą kontroli dostępu opartej na rolach platformy Azure:

  • Zezwalanie jednemu użytkownikowi na zarządzanie maszynami wirtualnymi w ramach subskrypcji, a innemu na zarządzanie sieciami wirtualnymi
  • Zezwalanie grupie administratorów baz danych na zarządzanie bazami danych SQL w ramach subskrypcji.
  • Zezwalanie użytkownikowi na zarządzanie wszystkimi zasobami w grupie zasobów, w tym maszynami wirtualnymi, witrynami internetowymi i podsieciami
  • Zezwalanie aplikacji na dostęp do wszystkich zasobów w grupie zasobów

Jak działa kontrola dostępu oparta na rolach platformy Azure

Sposobem kontrolowania dostępu do zasobów przy użyciu kontroli dostępu opartej na rolach platformy Azure jest przypisywanie ról platformy Azure. Jest to kluczowa koncepcja do zrozumienia — w jaki sposób są wymuszane uprawnienia. Przypisanie roli składa się z trzech elementów: podmiotu zabezpieczeń, definicji roli i zakresu.

Podmiot zabezpieczeń

Podmiot zabezpieczeń jest obiektem, który reprezentuje użytkownika, grupę, usługę lub tożsamość zarządzaną żądającą dostępu do zasobów platformy Azure. Rolę można przypisać do dowolnego z tych podmiotów zabezpieczeń.

Diagram showing the security principal types for a role assignment.

Definicja roli

Definicja roli to kolekcja uprawnień. Zazwyczaj jest to rola nazywana tylko rolą. Definicja roli zawiera listę akcji, które można wykonać, takich jak odczyt, zapis i usuwanie. Role mogą być ogólne, na przykład „właściciel”, lub szczegółowe, na przykład „czytelnik maszyny wirtualnej”.

Diagram showing role definition example for a role assignment

Na platformie Azure można korzystać z kilku ról wbudowanych. Na przykład rola współautora maszyny wirtualnej umożliwia użytkownikowi tworzenie maszyn wirtualnych i zarządzanie nimi. Jeśli wbudowane role nie spełniają konkretnych potrzeb organizacji, możesz utworzyć własne role niestandardowe platformy Azure.

Ten film wideo zawiera krótkie omówienie wbudowanych ról i ról niestandardowych.

Platforma Azure ma akcje danych, które umożliwiają udzielanie dostępu do danych w obiekcie. Jeśli na przykład użytkownik ma uprawnienie do odczytu na koncie magazynu, może odczytywać obiekty blob lub komunikaty na tym koncie magazynu.

Aby uzyskać więcej informacji, zobacz Omówienie definicji ról platformy Azure.

Scope

Zakres to zestaw zasobów, w ramach którego jest przydzielany dostęp. Podczas przypisywania roli można dodatkowo ograniczyć dozwolone akcje przez zdefiniowanie zakresu. Jest to przydatne na przykład wówczas, gdy chcesz przypisać użytkownikowi rolę współautora witryny internetowej, ale tylko w jednej grupie zasobów.

Na platformie Azure można określić zakres na czterech poziomach: grupa zarządzania, subskrypcja, grupa zasobów lub zasób. Zakresy mają strukturę opartą na relacji nadrzędny-podrzędny. Role można przypisywać na dowolnym z tych poziomów zakresu.

Diagram showing scope levels for a role assignment.

Aby uzyskać więcej informacji na temat zakresu, zobacz Omówienie zakresu.

Przypisania ról

Przypisywanie roli to proces dołączania definicji roli do użytkownika, grupy, jednostki usługi lub tożsamości zarządzanej w wybranym zakresie w celu udzielenia dostępu. Udzielenie dostępu polega na utworzeniu przypisania roli, a odwołanie dostępu — na usunięciu przypisania roli.

Na poniższym diagramie przedstawiono przykład przypisania roli. W tym przykładzie do grupy Marketing przypisano rolę współautora w grupie zasobów pharma-sales. To oznacza, że użytkownicy należący do grupy Marketing mogą tworzyć dowolne zasoby platformy Azure w grupie zasobów pharma-sales i zarządzać nimi. Użytkownicy marketingowi nie mają dostępu do zasobów spoza grupy zasobów pharma-sales, chyba że są częścią innego przypisania roli.

Diagram showing how security principal, role definition, and scope create a role assignment.

Role można przypisywać przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell, zestawów AZURE SDK lub interfejsów API REST.

Aby uzyskać więcej informacji, zobacz Kroki przypisywania roli platformy Azure.

Grupy

Przypisania ról są przechodnie dla grup, co oznacza, że jeśli użytkownik jest członkiem grupy, a ta grupa jest członkiem innej grupy, która ma przypisanie roli, użytkownik ma uprawnienia w przypisaniu roli.

Diagram showing how role assignments are transitive for groups.

Przypisania wielu ról

Co więc się dzieje w przypadku wielu nakładających się przypisań ról? Kontrola dostępu oparta na rolach platformy Azure to model addytywne, więc obowiązujące uprawnienia są sumą przypisań ról. Rozważmy poniższy przykład, w którym użytkownikowi przypisano rolę Współautor w zakresie subskrypcji i rolę Czytelnik w grupie zasobów. Suma uprawnień Współautor i Uprawnienia czytelnika jest w rzeczywistości rolą Współautor dla subskrypcji. Dlatego w tym przypadku przypisanie roli Czytelnik nie ma żadnego znaczenia.

Diagram showing how multiple role assignments overlap.

Jak kontrola dostępu oparta na rolach platformy Azure określa, czy użytkownik ma dostęp do zasobu

Poniżej przedstawiono ogólne kroki używane przez kontrolę dostępu opartą na rolach platformy Azure w celu określenia, czy masz dostęp do zasobu. Te kroki dotyczą usługi Azure Resource Manager lub usług płaszczyzny danych zintegrowanych z kontrolą dostępu opartą na rolach platformy Azure. Jest to przydatne, aby zrozumieć, czy próbujesz rozwiązać problem z dostępem.

  1. Użytkownik (lub jednostka usługi) uzyskuje token dla usługi Azure Resource Manager.

    Ten token zawiera informację o członkostwie użytkownika w grupach (w tym przechodnim członkostwie w grupach).

  2. Użytkownik tworzy wywołanie interfejsu API REST do usługi Azure Resource Manager, dołączając token.

  3. Usługa Azure Resource Manager pobiera wszystkie przypisania roli lub odmowy, które dotyczą zasobu, wobec którego podejmowana jest akcja.

  4. Jeśli tak, dostęp jest blokowany. W przeciwnym razie ocena będzie kontynuowana.

  5. Usługa Azure Resource Manager zawęża przypisania roli, które dotyczą tego użytkownika lub jego grupy, i określa, jakie role posiada użytkownik względem tego zasobu.

  6. Usługa Azure Resource Manager określa, czy akcja w wywołaniu interfejsu API należy do ról, jakie użytkownik posiada względem tego zasobu. Jeśli role obejmują Actions symbol wieloznaczny (*), skuteczne uprawnienia są obliczane przez odjęcie NotActions elementu z dozwolonego Actionselementu . Podobnie to samo odejmowanie jest wykonywane dla jakichkolwiek akcji danych.

    Actions - NotActions = Effective management permissions

    DataActions - NotDataActions = Effective data permissions

  7. Jeśli użytkownik nie ma roli z akcją w żądanym zakresie, dostęp nie jest dozwolony. W przeciwnym razie zostaną ocenione wszystkie warunki.

  8. Jeśli przypisanie roli zawiera warunki, są oceniane. W przeciwnym razie dostęp jest dozwolony.

  9. Jeśli warunki są spełnione, dostęp jest dozwolony. W przeciwnym razie dostęp nie jest dozwolony.

Na poniższym diagramie przedstawiono podsumowanie logiki oceny.

Evaluation logic flowchart for determining access to a resource.

Gdzie są przechowywane dane RBAC platformy Azure?

Definicje ról, przypisania ról i przypisania odmowy są przechowywane globalnie, aby mieć pewność, że masz dostęp do zasobów niezależnie od regionu, w którym utworzono zasób.

Po usunięciu przypisania roli lub innych danych RBAC platformy Azure dane są globalnie usuwane. Podmioty zabezpieczeń, które miały dostęp do zasobu za pośrednictwem danych RBAC platformy Azure, utracą dostęp.

Dlaczego dane RBAC platformy Azure są globalne?

Dane RBAC platformy Azure są globalne, aby zapewnić klientom możliwość terminowego uzyskiwania dostępu do zasobów niezależnie od tego, gdzie uzyskują dostęp. Kontrola dostępu oparta na rolach platformy Azure jest wymuszana przez usługę Azure Resource Manager, która ma globalny punkt końcowy i żądania są kierowane do najbliższego regionu w celu uzyskania szybkości i odporności. W związku z tym kontrola dostępu oparta na rolach platformy Azure musi być wymuszana we wszystkich regionach, a dane są replikowane do wszystkich regionów. Aby uzyskać więcej informacji, zobacz Odporność usługi Azure Resource Manager.

Rozważmy następujący przykład. Arina tworzy maszynę wirtualną w Azji Wschodniej. Bob, który jest członkiem zespołu Arina, pracuje w Stany Zjednoczone. Bob musi uzyskać dostęp do maszyny wirtualnej utworzonej w Azji Wschodniej. Aby udzielić Bobowi czasu dostępu do maszyny wirtualnej, platforma Azure musi globalnie replikować przypisanie roli, które przyznaje Bobowi dostęp do maszyny wirtualnej z dowolnego miejsca, w jakim jest Bob.

Diagram showing Azure RBAC data in multiple regions.

Wymagania dotyczące licencji

Korzystanie z tej funkcji jest bezpłatne i uwzględnione w subskrypcji platformy Azure.

Następne kroki