Pour affecter un rôle Azure à un principal de sécurité à l’aide de PowerShell, appelez la commande New-AzRoleAssignment. Pour exécuter la commande, vous devez disposer d’un rôle qui comprend les autorisations Microsoft.Authorization/roleAssignments/write, attribué au niveau de l’étendue correspondante ou de l’étendue supérieure.
Le format de la commande peut varier en fonction de l’étendue de l’affectation, mais les paramètres -ObjectId et -RoleDefinitionName sont requis. Bien que le -Scope paramètre ne soit pas obligatoire, incluez-le pour conserver le principe du privilège minimum. En limitant les rôles et les étendues, vous limitez les ressources à risque en cas de compromission du principal de sécurité.
Le paramètre -ObjectId est l'ID d'objet Microsoft Entra de l'utilisateur, du groupe ou du principal de service auquel vous attribuez le rôle. Pour récupérer l’identificateur, utilisez Get-AzADUser pour filtrer les utilisateurs Microsoft Entra, comme illustré dans l’exemple suivant.
Get-AzADUser -DisplayName '<Display Name>'
(Get-AzADUser -StartsWith '<substring>').Id
La première réponse retourne le principal de sécurité et la seconde retourne l’ID d’objet du principal de sécurité.
UserPrincipalName : markpdaniels@contoso.com
ObjectType : User
DisplayName : Mark P. Daniels
Id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
Type :
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
La valeur du paramètre -RoleDefinitionName est le nom du rôle RBAC qui doit être attribué au principal. Pour accéder aux données de blob dans le portail Azure avec des informations d’identification Microsoft Entra, un utilisateur doit disposer des attributions de rôle suivantes :
- Un rôle d’accès aux données, comme Contributeur aux données Blob du stockage ou Lecteur des données Blob du stockage
- Le rôle Lecteur d’Azure Resource Manager
Pour affecter un rôle délimité à un conteneur d’objets blob ou à un compte de stockage, spécifiez une chaîne contenant l’étendue de la ressource pour le paramètre -Scope. Cette action est conforme au principe du privilège minimum, un concept de sécurité des informations dans lequel un utilisateur dispose du niveau d’accès minimal nécessaire pour effectuer son travail. Cette pratique réduit le risque potentiel de dommages accidentels ou intentionnels que des privilèges non nécessaires peuvent induire.
L’étendue d’un conteneur se présente sous la forme :
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
L’étendue d’un compte de stockage a la forme :
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>
Pour attribuer un rôle limité à un compte de stockage, spécifiez une chaîne contenant l’étendue du conteneur pour le paramètre --scope.
L’exemple suivant attribue le rôle Contributeur aux données Blob du stockage à un utilisateur. L’attribution de rôle est délimitée au niveau du conteneur. Veillez à remplacer les valeurs de l’exemple et les valeurs d’espace réservé entre les crochets (<>) par vos propres valeurs :
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>"
L’exemple suivant attribue le rôle Lecteur des données Blob du stockage à un utilisateur en spécifiant l’ID d’objet. L’attribution de rôle est délimitée au niveau du compte de stockage. Veillez à remplacer les valeurs de l’exemple et les valeurs d’espace réservé entre les crochets (<>) par vos propres valeurs :
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>"
Le résultat doit ressembler à ce qui suit :
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
Pour plus d’informations sur l’attribution de rôles avec PowerShell au niveau de l’étendue d’un abonnement ou d’un groupe de ressources, consultez Attribuer des rôles Azure en utilisant Azure PowerShell.
Pour affecter un rôle Azure à un principal de sécurité à l’aide de Azure CLI, utilisez la commande az role assignment create. Le format de la commande peut varier selon l’étendue de l’affectation. Pour exécuter la commande, vous devez disposer d’un rôle qui comprend les autorisations Microsoft.Authorization/roleAssignments/write, attribué au niveau de l’étendue correspondante ou de l’étendue supérieure.
Pour affecter un rôle limité à un conteneur, spécifiez une chaîne contenant l’étendue du conteneur pour le paramètre --scope. L’étendue d’un conteneur se présente sous la forme :
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>
L’exemple suivant attribue le rôle Contributeur aux données Blob du stockage à un utilisateur. L’attribution de rôle est délimitée au niveau du conteneur. Veillez à remplacer les valeurs de l’exemple et les valeurs d’espace réservé entre les crochets (<>) par vos propres valeurs :
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>"
L’exemple suivant attribue le rôle Lecteur des données Blob du stockage à un utilisateur en spécifiant l’ID d’objet. Pour en savoir plus sur les paramètres --assignee-object-id et --assignee-principal-type , consultez az role assignment. Dans cet exemple, l’attribution de rôle est limitée au niveau du compte de stockage. Veillez à remplacer les valeurs de l’exemple et les valeurs d’espace réservé entre les crochets (<>) par vos propres valeurs :
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>"
Lorsque vous attribuez des rôles ou supprimez des attributions de rôle, un délai de 10 minutes maximum peut être nécessaire avant que les modifications soient prises en compte.
Pour plus d’informations sur l’attribution de rôles avec Azure CLI au niveau de l’étendue de l’abonnement, du groupe de ressources ou du compte de stockage, consultez Attribuer des rôles Azure à l’aide d’Azure CLI.