Kontrolowanie dostępu do zasobów za pomocą ról

Ukończone

Role wbudowane dla zasobów platformy Azure (z użyciem programu PowerShell)

Platforma Azure udostępnia kilka wbudowanych ról , które obejmują najbardziej typowe scenariusze zabezpieczeń. Aby lepiej zrozumieć działanie ról, przyjrzyjmy się trzem z nich, które są stosowane we wszystkich typach zasobów:

  • Właściciel: ma pełny dostęp do wszystkich zasobów, w tym prawo do delegowania dostępu do innych osób.
  • Współautor: może tworzyć wszystkie typy zasobów platformy Azure i zarządzać nimi, ale nie może udzielać dostępu innym osobom.
  • Czytelnik: może wyświetlać istniejące zasoby platformy Azure.

Definicje ról

Każda rola odpowiada zestawowi właściwości zdefiniowanych w pliku JavaScript Object Notation (JSON). Definicja roli zawiera elementy Name, ID i Description. Obejmuje ona również dozwolone uprawnienia (Actions), odmówione uprawnienia (NotActions) i zakres roli, na przykład dostęp do odczytu.

Definicja roli Właściciel obejmuje wszystkie akcje, co jest oznaczone gwiazdką (*), i wszystkie zakresy, co jest oznaczone ukośnikiem (/). Definicja ta nie zawiera odmówionych akcji.

Te informacje można uzyskać za pomocą polecenia cmdlet Get-AzRoleDefinition Owner programu PowerShell.

Get-AzRoleDefinition Owner

Kod spowoduje wygenerowanie następujących danych wyjściowych:

Name             : Owner
Id               : 8e3af657-a8ff-443c-a75c-2fe8c4bcb635
IsCustom         : False
Description      : Lets you manage everything, including access to resources.
Actions          : {*}
NotActions       : {}
DataActions      : {}
NotDataActions   : {}
AssignableScopes : {/}

Wykonaj te czynności dla ról Współautor i Czytelnik, aby wyświetlić dozwolone i zabronione akcje.

Wbudowane role

Aby zapoznać się ze szczegółowym badaniem kontroli dostępu opartej na rolach i ról użytkowników w usłudze Microsoft Entra ID, zobacz Badanie kontroli dostępu opartej na rolach i ról użytkowników w usłudze Microsoft Entra ID.

Co to jest definicja roli?

Definicja roli to kolekcja uprawnień. Definicja roli zawiera listę operacji, które może wykonywać rola, takich jak odczyt, zapis i usuwanie. Może ona również zawierać listę operacji, których nie można wykonywać, lub operacji związanych z danymi źródłowymi.

Jak opisano wcześniej, definicja roli ma następującą strukturę:

Nazwa/nazwisko opis
Id Unikatowy identyfikator roli przypisanej przez platformę Azure
IsCustom Prawda, jeśli rola niestandardowa, Fałsz, jeśli wbudowana rola
Description Czytelny opis roli
Actions [] Dozwolone uprawnienia; * wskazuje wszystkie
NotActions [] Odmowa uprawnień
DataActions [] Określone dozwolone uprawnienia zastosowane do danych, na przykład Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
NotDataActions [] Określone odmówione uprawnienia zastosowane do danych.
AssignableScopes [] Zakresy, w których ta rola ma zastosowanie; / wskazuje globalne, ale może dotrzeć do drzewa hierarchicznego

Struktura ta ma format JSON, gdy jest używana w kontroli dostępu opartej na rolach lub z poziomu podstawowego interfejsu API. Poniżej przedstawiono definicję roli Współautor w formacie JSON.

{
  "Name": "Contributor",
  "Id": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "IsCustom": false,
  "Description": "Lets you manage everything except access to resources.",
  "Actions": [
    "*"
  ],
  "NotActions": [
    "Microsoft.Authorization/*/Delete",
    "Microsoft.Authorization/*/Write",
    "Microsoft.Authorization/elevateAccess/Action"
  ],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Właściwości Actions i NotActions

Dostosowując właściwości Actions i NotActions, można precyzyjnie sterować przyznawaniem i odmawianiem uprawnień. Te właściwości zawsze mają format: {Company}.{ProviderName}/{resourceType}/{action}.

Oto na przykład akcje dla trzech ról, które wcześniej przyjrzeliśmy:

Rola wbudowana Akcje NotActions
Właściciel (dozwolone są wszystkie akcje) * -
Współautor (dozwolone są wszystkie akcje oprócz zapisywania lub usuwania przypisań ról) * Microsoft.Authorization/*/Delete, Microsoft.Authorization/*/Write, Microsoft.Authorization/elevateAccess/Action
Czytelnik (dozwolone są wszystkie akcje odczytu) */read -

Operacja z symbolami wieloznacznymi (*) w obszarze Actions wskazuje, że podmiot zabezpieczeń przypisany do tej roli może wykonywać wszystkie akcje. Innymi słowy, ta rola może zarządzać wszystkimi elementami, w tym akcjami zdefiniowanymi w przyszłości w miarę dodawania nowych typów zasobów na platformę Azure. W przypadku roli Czytelnik dozwolona jest tylko akcja read.

Operacje w obszarze NotActions są odejmowane od zestawu operacji w obszarze Actions. Z rolą NotActions Współautor usuwa możliwość zarządzania dostępem do zasobów przez tę rolę, a także usuwa przypisywanie dostępu do zasobów.

Właściwości DataActions i NotDataActions

Operacje na danych są definiowane za pomocą właściwości DataActions i NotDataActions. Operacje na danych można określić oddzielnie od operacji zarządzania. Zapobiega to nieoczekiwanemu uzyskiwaniu dostępu do danych za pośrednictwem bieżących przypisań ról z symbolami wieloznacznymi (*). Poniżej przedstawiono niektóre operacje danych, które można określić w systemach DataActions i NotDataActions:

  • Odczyt listy obiektów blob w kontenerze
  • Zapis obiektu blob magazynu w kontenerze
  • Usuwanie komunikatu z kolejki

Operacje na danych można dodawać tylko do DataActions właściwości i NotDataActions . Dostawcy zasobów wskazują operacje na danych, ustawiając właściwość isDataAction na wartość true. Role, które nie mają operacji na danych, mogą pominąć te właściwości z definicji roli.

Akcje te działają tak samo jak akcje zarządzania. Możesz określić akcje, które chcesz zezwolić (lub * dla wszystkich), a następnie podać listę określonych akcji do usunięcia w NotDataActions kolekcji. Oto kilka przykładów. Pełną listę akcji i akcji dotyczących danych można znaleźć w dokumentacji dostawcy zasobów:

Operacja na danych opis
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete Usuwanie danych obiektów blob
Microsoft.Compute/virtualMachines/login/action Logowanie się do maszyny wirtualnej jako zwykły użytkownik
Microsoft.EventHub/namespaces/messages/send/action Wysyłanie komunikatów w centrum zdarzeń
Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read Zwracanie pliku/folderu lub listy plików/folderów
Microsoft.Storage/storageAccounts/queueServices/queues/messages/read Odczytywanie komunikatu z kolejki

Przypisywane zakresy

Zdefiniowanie właściwości Actions i NotActions nie jest wystarczające do pełnej implementacji roli. Musisz również odpowiednio określić zakres roli.

Właściwość AssignableScopes określa zakresy (subskrypcje, grupy zasobów lub zasoby), w których można przypisywać rolę. Rolę niestandardową można udostępnić do przypisania tylko w tych subskrypcjach lub grupach zasobów, w których jest ona potrzebna. Pozwala to zwiększyć przejrzystość środowiska użytkownika w pozostałych subskrypcjach lub grupach zasobów.

Oto kilka przykładów:

Działanie Zakres
Ograniczanie do subskrypcji "/subscriptions/{sub-id}"
Ograniczanie do określonej grupy zasobów w określonej subskrypcji "/subscriptions/{sub-id}/resourceGroups/{rg-name}"
Ograniczanie do określonego zasobu "/subscriptions/{sub-id}/resourceGroups/{rg-name}/{resource-name}"
Udostępnianie roli do przypisania w dwóch subskrypcjach "/subscriptions/{sub-id}", "/subscriptions/{sub-id}"

Tworzenie ról

Identyfikator Entra firmy Microsoft zawiera wbudowane role, które mogą obejmować 99% tego, co kiedykolwiek chcesz zrobić. Preferowane jest użycie wbudowanej roli, jeśli jest to możliwe. W razie potrzeby można jednak tworzyć role niestandardowe.

Uwaga

Tworzenie roli niestandardowej wymaga identyfikatora Microsoft Entra ID P1 lub P2; Nie można tworzyć ról niestandardowych w warstwie Bezpłatna.

Nową rolę można utworzyć za pomocą kilku mechanizmów:

  • Centrum administracyjne firmy Microsoft Entra: możesz użyć centrum administracyjnego firmy Microsoft Entra do utworzenia roli niestandardowej, wybierając pozycję Role i administratorzy w obszarze Role i administratorzy w menu po lewej stronie, a następnie wybierając pozycję Nowa rola niestandardowa.

  • Witryna Azure Portal: możesz użyć witryny Azure Portal do utworzenia roli niestandardowej, wybierając pozycję Role identyfikatorów>firmy Microsoft i administratorów>Nowa rola niestandardowa.

  • Azure PowerShell: możesz użyć New-AzRoleDefinition polecenia cmdlet , aby zdefiniować nową rolę.

  • Interfejs API programu Azure Graph: możesz użyć wywołania REST do interfejsu API programu Graph, aby programowo utworzyć nową rolę.

Sekcja Podsumowanie tego modułu zawiera link do dokumentacji tych podejść.

Sprawdź swoją wiedzę

1.

Jakie informacje zawiera element Action w definicji roli?

2.

Który z poniższych elementów umożliwia ustawienie zakresu roli jako grupy zasobów myResourceGroup?

3.

W jaki sposób jest używana właściwość NotActions w definicji roli?