Per assegnare un ruolo di Azure a un'entità di sicurezza usando PowerShell, chiamare il comando New-AzRoleAssignment. Per eseguire il comando, è necessario un ruolo che includa i permessi Microsoft.Authorization/roleAssignments/write assegnati a te al livello corrispondente o superiore.
Il formato del comando può variare in base all'ambito dell'assegnazione, ma i -ObjectId parametri e -RoleDefinitionName sono obbligatori. Anche se il -Scope parametro non è obbligatorio, includerlo per mantenere il principio dei privilegi minimi. Limitando ruoli e ambiti, si limitano anche le risorse a rischio in caso di compromissione dell’entità di sicurezza.
Il parametro -ObjectId è l'ID oggetto Microsoft Entra dell'utente, del gruppo o dell'entità servizio a cui si sta assegnando il ruolo. Per recuperare l'identificatore, usare Get-AzADUser per filtrare Microsoft Entra utenti, come illustrato nell'esempio seguente.
Get-AzADUser -DisplayName '<Display Name>'
(Get-AzADUser -StartsWith '<substring>').Id
La prima risposta restituisce l'entità di sicurezza e la seconda restituisce l'ID oggetto dell'entità di sicurezza.
UserPrincipalName : markpdaniels@contoso.com
ObjectType : User
DisplayName : Mark P. Daniels
Id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Type :
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Il valore del parametro -RoleDefinitionName è il nome del ruolo RBAC che deve essere assegnato al principale. Per accedere ai dati BLOB nel portale di Azure con le credenziali di Microsoft Entra, un utente deve avere le assegnazioni di ruolo seguenti:
- Il ruolo di accesso ai dati, come ad esempio Contributore dati BLOB di archiviazione o Lettore dati BLOB di archiviazione
- Ruolo di Lettore di Azure Resource Manager
Per assegnare un ruolo con ambito a un contenitore BLOB o a un account di archiviazione, specificare una stringa contenente l'ambito della risorsa per il -Scope parametro . Questa azione è conforme al principio dei privilegi minimi, un concetto di sicurezza delle informazioni in cui un utente ha il livello minimo di accesso necessario per eseguire le proprie funzioni di lavoro. Questa pratica riduce il rischio potenziale di danni accidentali o intenzionali che possono verificarsi in caso di privilegi non necessari.
L'ambito di un contenitore è nella forma seguente:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
L'ambito di un account di archiviazione assume il seguente formato:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>
Per assegnare un ruolo con ambito a un account di archiviazione, specificare una stringa contenente l'ambito del contenitore per il parametro --scope.
Nell'esempio seguente viene assegnato il ruolo di Collaboratore dati di archiviazione BLOB a un utente. L'assegnazione di ruolo ha come ambito il livello del contenitore. Assicurarsi di sostituire i valori di esempio e i valori segnaposto tra parentesi (<>) con i propri valori:
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>"
Nell'esempio seguente viene assegnato il ruolo di Lettore dati BLOB di archiviazione a un utente specificando l'ID oggetto. L'assegnazione di ruolo ha come ambito il livello dell'account di archiviazione. Assicurarsi di sostituire i valori di esempio e i valori segnaposto tra parentesi (<>) con i propri valori:
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>"
L'output dovrebbe essere simile al seguente:
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
Per informazioni sull'assegnazione di ruoli con PowerShell nell'ambito della sottoscrizione o del gruppo di risorse, consultare Assegnare ruoli di Azure tramite Azure PowerShell.
Per assegnare un ruolo di Azure a un'entità di sicurezza usando interfaccia della riga di comando di Azure, usare il comando az role assignment create. Il formato del comando può essere diverso in base all'ambito dell'assegnazione. Per eseguire il comando, è necessario avere un ruolo che include autorizzazioni Microsoft.Authorization/roleAssignments/write assegnate all'utente nell'ambito corrispondente o superiore.
Per assegnare un ruolo con ambito a un contenitore, specificare una stringa contenente l'ambito del contenitore per il parametro --scope. L'ambito di un contenitore è nella forma seguente:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
Nell'esempio seguente, un utente viene assegnato al ruolo di Collaboratore dati BLOB di archiviazione. L'assegnazione di ruolo è limitata al livello del contenitore. Assicurarsi di sostituire i valori di esempio e i valori segnaposto tra parentesi (<>) con i propri valori:
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>"
Nell'esempio seguente viene assegnato il ruolo di Lettore dati BLOB di archiviazione a un utente specificando l'ID oggetto. Per ulteriori informazioni sui parametri --assignee-object-id e --assignee-principal-type, consultare assegnazione di ruolo az. In questo esempio, l'assegnazione di ruolo è limitata al livello dell'account di archiviazione. Assicurarsi di sostituire i valori di esempio e i valori segnaposto tra parentesi (<>) con i propri valori:
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>"
Quando si assegnano ruoli o si rimuovono le assegnazioni di ruolo, possono essere necessari fino a 10 minuti prima che le modifiche siano effettive.
Per informazioni sull'assegnazione di ruoli con l'interfaccia della riga di comando di Azure nell'ambito della sottoscrizione, del gruppo di risorse o dell'account di archiviazione, consultare Assegnare ruoli di Azure tramite l'interfaccia della riga di comando di Azure.