Functie definities voor Azure-resources begrijpenUnderstand role definitions for Azure resources

Als u wilt weten hoe een rol werkt of als u uw eigen aangepaste rol voor Azure-resourcesmaakt, is het handig om te begrijpen hoe rollen worden gedefinieerd.If you are trying to understand how a role works or if you are creating your own custom role for Azure resources, it's helpful to understand how roles are defined. In dit artikel worden de details van roldefinities beschreven en vindt u enkele voor beelden.This article describes the details of role definitions and provides some examples.

Roldefinitie structuurRole definition structure

Een roldefinitie is een verzameling machtigingen.A role definition is a collection of permissions. Dit wordt soms gewoon een rol genoemd.It's sometimes just called a role. Een roldefinitie beschijft de bewerkingen die kunnen worden uitgevoerd, zoals lezen, schrijven en verwijderen.A role definition lists the operations that can be performed, such as read, write, and delete. Het kan ook een overzicht geven van de bewerkingen die niet kunnen worden uitgevoerd of bewerkingen met betrekking tot onderliggende gegevens.It can also list the operations that can't be performed or operations related to underlying data. Een roldefinitie heeft de volgende structuur:A role definition has the following structure:

Name
Id
IsCustom
Description
Actions []
NotActions []
DataActions []
NotDataActions []
AssignableScopes []

Bewerkingen worden opgegeven met teken reeksen die de volgende indeling hebben:Operations are specified with strings that have the following format:

  • {Company}.{ProviderName}/{resourceType}/{action}

Het {action} gedeelte van een bewerkings reeks geeft u het type bewerkingen op dat u kunt uitvoeren op een resource type.The {action} portion of an operation string specifies the type of operations you can perform on a resource type. U ziet bijvoorbeeld de volgende subtekenreeksen in {action}:For example, you will see the following substrings in {action}:

Subtekenreeks van actieAction substring DescriptionDescription
* Het Joker teken verleent toegang tot alle bewerkingen die overeenkomen met de teken reeks.The wildcard character grants access to all operations that match the string.
read Hiermee schakelt u lees bewerkingen in (GET).Enables read operations (GET).
write Hiermee wordt schrijf bewerkingen (PUT of PATCH) ingeschakeld.Enables write operations (PUT or PATCH).
action Hiermee schakelt u aangepaste bewerkingen in, zoals het opnieuw opstarten van virtuele machines (POST).Enables custom operations like restart virtual machines (POST).
delete Hiermee worden Verwijder bewerkingen (verwijderen) ingeschakeld.Enables delete operations (DELETE).

Hier volgt de rol van Inzender in JSON-indeling.Here's the Contributor role definition in JSON format. De bewerking Joker*teken () Actions onder geeft aan dat de principal die aan deze rol is toegewezen, alle acties kan uitvoeren, of met andere woorden, het kan alles beheren.The wildcard (*) operation under Actions indicates that the principal assigned to this role can perform all actions, or in other words, it can manage everything. Dit omvat acties die in de toekomst zijn gedefinieerd, aangezien Azure nieuwe resource typen toevoegt.This includes actions defined in the future, as Azure adds new resource types. De bewerkingen NotActions worden afgetrokken van Actions.The operations under NotActions are subtracted from Actions. In het geval van de rol NotActions Inzender verwijdert deze rol de mogelijkheid om de toegang tot resources te beheren en ook toegang tot resources toe te wijzen.In the case of the Contributor role, NotActions removes this role's ability to manage access to resources and also assign access to resources.

{
  "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": [
    "/"
  ]
}

Beheer-en gegevens bewerkingenManagement and data operations

Toegangs beheer op basis van rollen voor beheer bewerkingen is opgegeven in Actions de NotActions eigenschappen en van een roldefinitie.Role-based access control for management operations is specified in the Actions and NotActions properties of a role definition. Hier volgen enkele voor beelden van beheer bewerkingen in Azure:Here are some examples of management operations in Azure:

  • Toegang tot een opslag account beherenManage access to a storage account
  • Een BLOB-container maken, bijwerken of verwijderenCreate, update, or delete a blob container
  • Een resource groep en alle bijbehorende resources verwijderenDelete a resource group and all of its resources

De toegang tot het beheer wordt niet overgenomen van uw gegevens omdat de container verificatie methode is ingesteld op ' Azure AD-gebruikers account ' en niet op ' toegangs sleutel '.Management access is not inherited to your data provided that the container authentication method is set to "Azure AD User Account" and not "Access Key". Deze schei ding voor komt dat rollen*met Joker tekens () onbeperkte toegang tot uw gegevens hebben.This separation prevents roles with wildcards (*) from having unrestricted access to your data. Als een gebruiker bijvoorbeeld een rol van lezer heeft voor een abonnement, kan deze het opslag account weer geven, maar standaard kunnen ze de onderliggende gegevens niet weer geven.For example, if a user has a Reader role on a subscription, then they can view the storage account, but by default they can't view the underlying data.

Voorheen werd op rollen gebaseerd toegangs beheer niet gebruikt voor gegevens bewerkingen.Previously, role-based access control was not used for data operations. Autorisatie voor gegevens bewerkingen varieerden van alle resource providers.Authorization for data operations varied across resource providers. Hetzelfde op rollen gebaseerde toegangs beheer autorisatie model dat wordt gebruikt voor beheer bewerkingen, is uitgebreid naar gegevens bewerkingen.The same role-based access control authorization model used for management operations has been extended to data operations.

Voor het ondersteunen van gegevens bewerkingen zijn er nieuwe gegevens eigenschappen aan de roldefinitie structuur toegevoegd.To support data operations, new data properties have been added to the role definition structure. Gegevens bewerkingen worden opgegeven in de DataActions eigenschappen NotDataActions en.Data operations are specified in the DataActions and NotDataActions properties. Door deze gegevens eigenschappen toe te voegen, wordt de schei ding tussen beheer en gegevens gehandhaafd.By adding these data properties, the separation between management and data is maintained. Hiermee voor komt u dat huidige roltoewijzingen met Joker*tekens () plotseling toegang hebben tot gegevens.This prevents current role assignments with wildcards (*) from suddenly having accessing to data. Hier volgen enkele gegevens bewerkingen die kunnen worden opgegeven in DataActions en NotDataActions:Here are some data operations that can be specified in DataActions and NotDataActions:

  • Een lijst met blobs in een container lezenRead a list of blobs in a container
  • Een opslag-Blob in een container schrijvenWrite a storage blob in a container
  • Een bericht in een wachtrij verwijderenDelete a message in a queue

Hier ziet u de definitie van de rol van BLOB-gegevens lezer , die bewerkingen Actions bevat DataActions in de eigenschappen en.Here's the Storage Blob Data Reader role definition, which includes operations in both the Actions and DataActions properties. Met deze rol kunt u de BLOB-container en ook de onderliggende BLOB-gegevens lezen.This role allows you to read the blob container and also the underlying blob data.

{
  "Name": "Storage Blob Data Reader",
  "Id": "2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
  "IsCustom": false,
  "Description": "Allows for read access to Azure Storage blob containers and data",
  "Actions": [
    "Microsoft.Storage/storageAccounts/blobServices/containers/read"
  ],
  "NotActions": [],
  "DataActions": [
    "Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read"
  ],
  "NotDataActions": [],
  "AssignableScopes": [
    "/"
  ]
}

Alleen gegevens bewerkingen kunnen worden toegevoegd aan de DataActions eigenschappen NotDataActions en.Only data operations can be added to the DataActions and NotDataActions properties. Resource providers bepalen welke bewerkingen gegevens bewerkingen zijn, door de isDataAction eigenschap in te stellen op. trueResource providers identify which operations are data operations, by setting the isDataAction property to true. Zie de bewerkingen van de resource providervoor isDataAction een trueoverzicht van de bewerkingen waarbij dat is.To see a list of the operations where isDataAction is true, see Resource provider operations. Rollen zonder gegevens bewerkingen hoeven geen DataActions NotDataActions eigenschappen in de roldefinitie te hebben.Roles that do not have data operations are not required to have DataActions and NotDataActions properties within the role definition.

Autorisatie voor alle beheer bewerkingen-API-aanroepen wordt afgehandeld door Azure Resource Manager.Authorization for all management operation API calls is handled by Azure Resource Manager. Autorisatie voor data Operation-API-aanroepen wordt verwerkt door een resource provider of Azure Resource Manager.Authorization for data operation API calls is handled by either a resource provider or Azure Resource Manager.

Voor beeld van gegevens bewerkingenData operations example

Voor een beter inzicht in hoe beheer en gegevens bewerkingen werken, kunt u een specifiek voor beeld overwegen.To better understand how management and data operations work, let's consider a specific example. Lisa is toegewezen aan de rol van eigenaar op het abonnements bereik.Alice has been assigned the Owner role at the subscription scope. Bob is toegewezen aan de rol van de blobgegevens van de gegevens opslag in een bereik van een opslag account.Bob has been assigned the Storage Blob Data Contributor role at a storage account scope. In het volgende diagram ziet u dit voor beeld.The following diagram shows this example.

Toegangs beheer op basis van rollen is uitgebreid om zowel beheer-als gegevens bewerkingen te ondersteunen

De rol van eigenaar voor Alice en de rol BLOB data contributor-gegevens voor Bob hebben de volgende acties:The Owner role for Alice and the Storage Blob Data Contributor role for Bob have the following actions:

EigenaarOwner

    Regelen    Actions
    *    *

Bijdrager voor opslagblobgegevensStorage Blob Data Contributor

    Regelen    Actions
    Microsoft.Storage/storageAccounts/blobServices/containers/delete    Microsoft.Storage/storageAccounts/blobServices/containers/delete
    Microsoft.Storage/storageAccounts/blobServices/containers/read    Microsoft.Storage/storageAccounts/blobServices/containers/read
    Microsoft.Storage/storageAccounts/blobServices/containers/write    Microsoft.Storage/storageAccounts/blobServices/containers/write
    DataActions    DataActions
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write    Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

Aangezien Anne een actie Joker teken*() heeft op een abonnements bereik, worden de machtigingen ervan overgenomen zodat ze alle beheer acties kunnen uitvoeren.Since Alice has a wildcard (*) action at a subscription scope, their permissions inherit down to enable them to perform all management actions. Anja kan containers lezen, schrijven en verwijderen.Alice can read, write, and delete containers. Anja kan echter geen gegevens bewerkingen uitvoeren zonder extra stappen te nemen.However, Alice cannot perform data operations without taking additional steps. Zo kan Anja de blobs in een container bijvoorbeeld standaard niet lezen.For example, by default, Alice cannot read the blobs inside a container. Om de blobs te lezen, zou Anne de toegangs sleutels voor opslag moeten ophalen en gebruiken om toegang te krijgen tot de blobs.To read the blobs, Alice would have to retrieve the storage access keys and use them to access the blobs.

De machtigingen van Bob zijn beperkt tot alleen Actions de DataActions en opgegeven in de rol BLOB data contributor van de opslag.Bob's permissions are restricted to just the Actions and DataActions specified in the Storage Blob Data Contributor role. Op basis van de rol kan Bob zowel beheer-als gegevens bewerkingen uitvoeren.Based on the role, Bob can perform both management and data operations. Bob kan bijvoorbeeld containers in het opgegeven opslag account lezen, schrijven en verwijderen en kunnen ook de blobs lezen, schrijven en verwijderen.For example, Bob can read, write, and delete containers in the specified storage account and can also read, write, and delete the blobs.

Zie de Azure Storage-beveiligings handleidingvoor meer informatie over de beveiliging van beheer en gegevenslaag voor opslag.For more information about management and data plane security for storage, see the Azure Storage security guide.

Welke hulpprogram ma's ondersteunen het gebruik van RBAC voor gegevens bewerkingen?What tools support using RBAC for data operations?

Als u gegevens bewerkingen wilt bekijken en gebruiken, moet u beschikken over de juiste versies van de hulpprogram ma's of Sdk's:To view and work with data operations, you must have the correct versions of the tools or SDKs:

HulpprogrammaTool VersionVersion
Azure PowerShellAzure PowerShell 1.1.0 of hoger1.1.0 or later
Azure-CLIAzure CLI 2.0.30 of hoger2.0.30 or later
Azure voor .NETAzure for .NET 2.8.0-Preview of hoger2.8.0-preview or later
Azure SDK voor GoAzure SDK for Go 15.0.0 of hoger15.0.0 or later
Azure voor JavaAzure for Java 1.9.0 of hoger1.9.0 or later
Azure voor pythonAzure for Python 0.40.0 of hoger0.40.0 or later
Azure-SDK voor RubyAzure SDK for Ruby 0.17.1 of hoger0.17.1 or later

Als u de gegevens bewerkingen in het REST API wilt bekijken en gebruiken, moet u de para meter van de API-versie instellen op de volgende versie of hoger:To view and use the data operations in the REST API, you must set the api-version parameter to the following version or later:

  • 2018-07-012018-07-01

ActiesActions

Met Actions de machtiging worden de beheer bewerkingen opgegeven die door de functie kunnen worden uitgevoerd.The Actions permission specifies the management operations that the role allows to be performed. Het is een verzameling bewerkings reeksen waarmee Beveilig bare bewerkingen van Azure-resource providers worden geïdentificeerd.It is a collection of operation strings that identify securable operations of Azure resource providers. Hier volgen enkele voor beelden van beheer bewerkingen die kunnen worden gebruikt Actionsin.Here are some examples of management operations that can be used in Actions.

Bewerkings reeksOperation string DescriptionDescription
*/read Verleent toegang tot Lees bewerkingen voor alle resource typen van alle Azure-resource providers.Grants access to read operations for all resource types of all Azure resource providers.
Microsoft.Compute/* Verleent toegang tot alle bewerkingen voor alle resource typen in de micro soft. Compute-resource provider.Grants access to all operations for all resource types in the Microsoft.Compute resource provider.
Microsoft.Network/*/read Hiermee wordt toegang verleend tot Lees bewerkingen voor alle resource typen in de resource provider micro soft. Network.Grants access to read operations for all resource types in the Microsoft.Network resource provider.
Microsoft.Compute/virtualMachines/* Verleent toegang tot alle bewerkingen van virtuele machines en de bijbehorende onderliggende resource typen.Grants access to all operations of virtual machines and its child resource types.
microsoft.web/sites/restart/Action Hiermee wordt toegang verleend om een web-app opnieuw op te starten.Grants access to restart a web app.

NotActionsNotActions

Met NotActions de machtiging worden de beheer bewerkingen opgegeven die worden uitgesloten van Actionsde toegestaan.The NotActions permission specifies the management operations that are excluded from the allowed Actions. Gebruik de NotActions machtiging als de set bewerkingen die u wilt toestaan eenvoudiger is gedefinieerd door beperkte bewerkingen uit te sluiten.Use the NotActions permission if the set of operations that you want to allow is more easily defined by excluding restricted operations. De toegang die wordt verleend door een rol (efficiënte machtigingen) wordt berekend door de NotActions bewerkingen van de Actions bewerkingen af te trekken.The access granted by a role (effective permissions) is computed by subtracting the NotActions operations from the Actions operations.

Notitie

Als aan een gebruiker een rol is toegewezen die een bewerking uitsluit NotActionsin, en aan een tweede rol wordt toegewezen die toegang verleent aan dezelfde bewerking, mag de gebruiker die bewerking uitvoeren.If a user is assigned a role that excludes an operation in NotActions, and is assigned a second role that grants access to the same operation, the user is allowed to perform that operation. NotActionsis geen regel voor weigeren: het is een handige manier om een reeks toegestane bewerkingen te maken wanneer specifieke bewerkingen moeten worden uitgesloten.NotActions is not a deny rule – it is simply a convenient way to create a set of allowed operations when specific operations need to be excluded.

DataActionsDataActions

Met DataActions de machtiging worden de gegevens bewerkingen opgegeven die door de functie kunnen worden uitgevoerd op uw gegevens in dat object.The DataActions permission specifies the data operations that the role allows to be performed to your data within that object. Als een gebruiker bijvoorbeeld BLOB-gegevens toegang tot een opslag account heeft gelezen, kunnen ze de blobs binnen dat opslag account lezen.For example, if a user has read blob data access to a storage account, then they can read the blobs within that storage account. Hier volgen enkele voor beelden van gegevens bewerkingen die kunnen worden gebruikt DataActionsin.Here are some examples of data operations that can be used in DataActions.

Bewerkings reeksOperation string DescriptionDescription
Microsoft.Storage/storageAccounts/ blobServices/containers/blobs/read Retourneert een BLOB of een lijst met blobs.Returns a blob or a list of blobs.
Microsoft.Storage/storageAccounts/ blobServices/containers/blobs/write Retourneert het resultaat van het schrijven van een blob.Returns the result of writing a blob.
Microsoft.Storage/storageAccounts/ queueServices/queues/messages/read Retourneert een bericht.Returns a message.
Microsoft.Storage/storageAccounts/ queueServices/queues/messages/* Retourneert een bericht of het resultaat van het schrijven of verwijderen van een bericht.Returns a message or the result of writing or deleting a message.

NotDataActionsNotDataActions

Met NotDataActions de machtiging worden de gegevens bewerkingen opgegeven die worden uitgesloten van DataActionsde toegestaan.The NotDataActions permission specifies the data operations that are excluded from the allowed DataActions. De toegang die wordt verleend door een rol (efficiënte machtigingen) wordt berekend door de NotDataActions bewerkingen van de DataActions bewerkingen af te trekken.The access granted by a role (effective permissions) is computed by subtracting the NotDataActions operations from the DataActions operations. Elke resource provider biedt de respectieve set Api's om te voldoen aan gegevens bewerkingen.Each resource provider provides its respective set of APIs to fulfill data operations.

Notitie

Als aan een gebruiker een rol is toegewezen die een gegevens bewerking uitsluit NotDataActionsin en waaraan een tweede rol wordt toegewezen die toegang verleent aan dezelfde gegevens bewerking, mag de gebruiker die gegevens bewerking uitvoeren.If a user is assigned a role that excludes a data operation in NotDataActions, and is assigned a second role that grants access to the same data operation, the user is allowed to perform that data operation. NotDataActionsis geen regel voor weigeren: het is een handige manier om een set toegestane gegevens bewerkingen te maken wanneer specifieke gegevens bewerkingen moeten worden uitgesloten.NotDataActions is not a deny rule – it is simply a convenient way to create a set of allowed data operations when specific data operations need to be excluded.

AssignableScopesAssignableScopes

Met AssignableScopes de eigenschap geeft u de bereiken (beheer groepen, abonnementen, resource groepen of resources) op waarvoor deze roldefinitie beschikbaar is.The AssignableScopes property specifies the scopes (management groups, subscriptions, resource groups, or resources) that have this role definition available. U kunt de rol beschikbaar maken voor toewijzing in alleen de beheer groepen, abonnementen of resource groepen die deze nodig hebben.You can make the role available for assignment in only the management groups, subscriptions, or resource groups that require it. U moet ten minste één beheer groep, abonnement, resource groep of Resource-ID gebruiken.You must use at least one management group, subscription, resource group, or resource ID.

Ingebouwde rollen zijn AssignableScopes ingesteld op het hoofd bereik ("/").Built-in roles have AssignableScopes set to the root scope ("/"). Het hoofd bereik geeft aan dat de rol beschikbaar is voor toewijzing in alle bereiken.The root scope indicates that the role is available for assignment in all scopes. Voor beelden van geldige toewijs bare bereiken zijn:Examples of valid assignable scopes include:

De rol is beschikbaar voor toewijzingRole is available for assignment VoorbeeldExample
Eén abonnementOne subscription "/subscriptions/{subscriptionId1}"
Twee abonnementenTwo subscriptions "/subscriptions/{subscriptionId1}", "/subscriptions/{subscriptionId2}"
Netwerk resource groepNetwork resource group "/subscriptions/{subscriptionId1}/resourceGroups/Network"
Eén beheer groepOne management group "/providers/Microsoft.Management/managementGroups/{groupId1}"
Beheer groep en een abonnementManagement group and a subscription "/providers/Microsoft.Management/managementGroups/{groupId1}", /subscriptions/{subscriptionId1}",
Alle bereiken (alleen van toepassing op ingebouwde rollen)All scopes (applies only to built-in roles) "/"

Zie AssignableScopes aangepaste rollen voor Azure-resourcesvoor meer informatie over aangepaste rollen.For information about AssignableScopes for custom roles, see Custom roles for Azure resources.

Volgende stappenNext steps