Kontrolowanie dostępu do zasobów za pomocą ról
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ść.