Aby przypisać rolę Azure do podmiotu zabezpieczeń przy użyciu programu PowerShell, wywołaj polecenie New-AzRoleAssignment. Aby uruchomić polecenie, musisz mieć rolę, która zawiera uprawnienia Microsoft.Authorization/roleAssignments/write przypisane Ci na odpowiednim poziomie lub wyższym.
Format polecenia może się różnić w zależności od zakresu przypisania, ale parametry -ObjectId i -RoleDefinitionName są wymagane.
-Scope Chociaż parametr nie jest wymagany, uwzględnij go, aby zachować zasadę najniższych uprawnień. Ograniczając role i zakresy, ograniczasz zasoby, które są zagrożone, jeśli podmiot zabezpieczeń kiedykolwiek zostanie naruszony.
Parametr -ObjectId jest identyfikatorem obiektu Microsoft Entra użytkownika, grupy lub jednostki usługi, do której przypisujesz rolę. Aby pobrać identyfikator, użyj polecenia Get-AzADUser aby filtrować użytkowników Microsoft Entra, jak pokazano w poniższym przykładzie.
Get-AzADUser -DisplayName '<Display Name>'
(Get-AzADUser -StartsWith '<substring>').Id
Pierwsza odpowiedź zwraca podmiot zabezpieczeń, a druga zwraca identyfikator obiektu podmiotu zabezpieczeń.
UserPrincipalName : markpdaniels@contoso.com
ObjectType : User
DisplayName : Mark P. Daniels
Id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Type :
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Wartość -RoleDefinitionName parametru to nazwa roli RBAC, która musi zostać przypisana do podmiotu zabezpieczeń. Aby uzyskać dostęp do danych obiektów blob w portalu Azure przy użyciu poświadczeń Microsoft Entra, użytkownik musi mieć następujące przypisania ról:
- Rola dostępu do danych, taka jak Współautor danych obiektu blob usługi Storage lub Czytelnik danych obiektu blob usługi Storage
- Rola Czytelnik usługi Azure Resource Manager
Aby przypisać rolę zdefiniowaną zakresem do kontenera obiektów blob lub konta magazynu, określ ciąg znaków zawierający zakres zasobu jako wartość parametru -Scope. Ta akcja jest zgodna z zasadą najniższych uprawnień— pojęcie zabezpieczeń informacji, w którym użytkownik otrzymuje minimalny poziom dostępu wymagany do wykonywania funkcji zadania. Ta praktyka zmniejsza potencjalne ryzyko przypadkowego lub zamierzonego uszkodzenia, które mogą spowodować niepotrzebne uprawnienia.
Zakres kontenera ma postać:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
Zakres dla konta magazynowego jest w formie:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>
Aby przypisać rolę z określonym zakresem do konta magazynowego, określ ciąg zawierający zakres kontenera dla parametru --scope.
Poniższy przykład przypisuje użytkownikowi rolę Współautor danych obiektu blob usługi Storage . Przypisanie roli jest ograniczone do poziomu kontenera. Pamiętaj, aby zastąpić przykładowe wartości i wartości symboli zastępczych w nawiasach trójkątnych (<>) własnymi wartościami.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Storage Blob Data Contributor" `
-Scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>"
Poniższy przykład przypisuje użytkownikowi rolę Storage Blob Data Reader, określając identyfikator obiektu. Przypisanie roli jest zawężone do poziomu konta magazynowego. Pamiętaj, aby zastąpić przykładowe wartości i wartości symboli zastępczych w nawiasach trójkątnych (<>) własnymi wartościami.
New-AzRoleAssignment -ObjectID "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" `
-RoleDefinitionName "Storage Blob Data Reader" `
-Scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
Dane wyjściowe powinny być podobne do następujących:
RoleAssignmentId : /subscriptions/<subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.Storage/storageAccounts/<Storage Account>/providers/Microsoft.Authorization/roleAssignments/<Role Assignment ID>
Scope : /subscriptions/<subscription ID>/resourceGroups/<Resource Group>/providers/Microsoft.Storage/storageAccounts/<Storage Account>
DisplayName : Mark Patrick
SignInName : markpdaniels@contoso.com
RoleDefinitionName : Storage Blob Data Reader
RoleDefinitionId : <Role Definition ID>
ObjectId : <Object ID>
ObjectType : User
CanDelegate : False
Aby uzyskać informacje na temat przypisywania ról za pomocą programu PowerShell w zakresie subskrypcji lub grupy zasobów, zobacz Przypisywanie ról platformy Azure przy użyciu programu Azure PowerShell.
Aby przypisać rolę Azure do podmiotu zabezpieczeń przy użyciu Azure CLI, użyj polecenia az role assignment create. Format polecenia może się różnić w zależności od zakresu przypisania. Aby uruchomić polecenie, musisz mieć rolę, która obejmuje uprawnienia Microsoft.Authorization/roleAssignments/write przypisane do ciebie w odpowiednim zakresie lub wyższym.
Aby przypisać rolę o zakresie do kontenera, określ ciąg zawierający zakres kontenera dla parametru --scope . Zakres kontenera ma postać:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
Poniższy przykład przypisuje użytkownikowi rolę Współautor danych obiektu blob usługi Storage . Przypisanie roli jest ograniczone do poziomu kontenera. Pamiętaj, aby zastąpić przykładowe wartości i wartości symboli zastępczych w nawiasach trójkątnych (<>) własnymi wartościami.
az role assignment create \
--role "Storage Blob Data Contributor" \
--assignee <email> \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>"
Poniższy przykład przypisuje użytkownikowi rolę Storage Blob Data Reader, określając identyfikator obiektu. Aby dowiedzieć się więcej o parametrach --assignee-object-id i --assignee-principal-type, zobacz az role assignment. W tym przykładzie przypisanie roli jest ograniczone do poziomu konta przechowywania. Pamiętaj, aby zastąpić przykładowe wartości i wartości symboli zastępczych w nawiasach trójkątnych (<>) własnymi wartościami.
az role assignment create \
--role "Storage Blob Data Reader" \
--assignee-object-id "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" \
--assignee-principal-type "User" \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
Po przypisaniu ról lub usunięciu przypisań ról może upłynąć do 10 minut, aby zmiany zaczęły obowiązywać.
Aby uzyskać informacje na temat przypisywania ról w Azure CLI w zakresie subskrypcji, grupy zasobów lub konta magazynowego, zobacz Przypisywanie ról przy użyciu Azure CLI.