Delen via


Quickstart: Een Azure-rol toewijzen met behulp van een ARM-sjabloon

Met op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) kunt u de toegang tot Azure-resources beheren. In deze quickstart maakt u een resourcegroep en verleent u een gebruiker toegang tot het maken en beheren van virtuele machines in de resourcegroep. In deze quickstart wordt gebruikgemaakt van een Azure Resource Manager-sjabloon (ARM-sjabloon) om de toegang te verlenen.

Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.

Als uw omgeving voldoet aan de vereisten en u benkend bent met het gebruik van ARM-sjablonen, selecteert u de knop Implementeren naar Azure. De sjabloon wordt in Azure Portal geopend.

Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

Vereisten

Als u Azure-rollen wilt toewijzen en roltoewijzingen wilt verwijderen, moet u het volgende hebben:

  • Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
  • Microsoft.Authorization/roleAssignments/write en Microsoft.Authorization/roleAssignments/delete machtigingen, zoals op rollen gebaseerd toegangsbeheerbeheerder
  • Als u een rol wilt toewijzen, moet u drie elementen opgeven: beveiligingsprincipaal, roldefinitie en bereik. Voor deze quickstart bent u of is een andere gebruiker de beveiligingsprincipal in uw map, is de roldefinitie Inzender voor virtuele machines en is het bereik de opgegeven resourcegroep.

De sjabloon controleren

De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen. De sjabloon heeft twee parameters en een sectie resources. De resourcessectie bevat de drie elementen van een roltoewijzing: beveiligingsprincipal, roldefinitie en bereik.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "15160858749942476090"
    }
  },
  "parameters": {
    "roleDefinitionID": {
      "type": "string",
      "metadata": {
        "description": "Specifies the role definition ID used in the role assignment."
      }
    },
    "principalId": {
      "type": "string",
      "metadata": {
        "description": "Specifies the principal ID assigned to the role."
      }
    }
  },
  "variables": {
    "roleAssignmentName": "[guid(parameters('principalId'), parameters('roleDefinitionID'), resourceGroup().id)]"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/roleAssignments",
      "apiVersion": "2022-04-01",
      "name": "[variables('roleAssignmentName')]",
      "properties": {
        "roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', parameters('roleDefinitionID'))]",
        "principalId": "[parameters('principalId')]"
      }
    }
  ],
  "outputs": {
    "name": {
      "type": "string",
      "value": "[variables('roleAssignmentName')]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.Authorization/roleAssignments', variables('roleAssignmentName'))]"
    }
  }
}

De resource die is gedefinieerd in de sjabloon:

De sjabloon implementeren

  1. Meld u aan bij het Azure-portaal.

  2. Geef uw e-mailadres op dat is gekoppeld aan uw Azure-abonnement. Of geef het e-mailadres van een andere gebruiker in uw map op.

  3. Open Azure Cloud Shell voor PowerShell.

  4. Kopieer en plak het volgende script in Cloud Shell.

    $resourceGroupName = Read-Host -Prompt "Enter a resource group name (i.e. ExampleGrouprg)"
    $emailAddress = Read-Host -Prompt "Enter an email address for a user in your directory"
    $location = Read-Host -Prompt "Enter a location (i.e. centralus)"
    
    $roleAssignmentName = New-Guid
    $principalId = (Get-AzAdUser -Mail $emailAddress).id
    $roleDefinitionId = (Get-AzRoleDefinition -name "Virtual Machine Contributor").id
    $templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.authorization/rbac-builtinrole-resourcegroup/azuredeploy.json"
    
    New-AzResourceGroup -Name $resourceGroupName -Location $location
    New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri -roleDefinitionID $roleDefinitionId -principalId $principalId
    
  5. Voer een naam voor de resourcegroep in, zoals ExampleGrouprg.

  6. Voer een e-mailadres in van uzelf of van een andere gebruiker in uw map.

  7. Voer een locatie in voor de resourcegroep, zoals centralus.

  8. Druk, indien nodig, op Enter om de opdracht New-AzResourceGroupDeployment uit te voeren.

    Met de opdracht New-AzResourceGroup maakt u een nieuwe resourcegroep en met de opdracht New-AzResourceGroupDeployment implementeert u de sjabloon om de roltoewijzing toe te voegen.

    De uitvoer ziet er als volgt uit:

    PS> New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri -roleAssignmentName $roleAssignmentName -roleDefinitionID $roleDefinitionId -principalId $principalId
    
    DeploymentName          : azuredeploy
    ResourceGroupName       : ExampleGrouprg
    ProvisioningState       : Succeeded
    Timestamp               : 5/22/2020 9:01:30 PM
    Mode                    : Incremental
    TemplateLink            :
                              Uri            : https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.authorization/rbac-builtinrole-resourcegroup/azuredeploy.json
                              ContentVersion : 1.0.0.0
    
    Parameters              :
                              Name                  Type                       Value
                              ====================  =========================  ==========
                              roleDefinitionID      String                     9980e02c-c2be-4d73-94e8-173b1dc7cf3c
                              principalId           String                     {principalId}
    
    Outputs                 :
    DeploymentDebugLogLevel :
    

Geïmplementeerde resources bekijken

  1. Open de resourcegroep die u hebt gemaakt in de Azure-portal.

  2. Klik in het linkermenu op Toegangsbeheer (IAM).

  3. Klik op het tabblad Roltoewijzingen.

  4. Controleer of de rol Inzender voor virtuele machines is toegewezen aan de gebruiker die u hebt opgegeven.

    Nieuwe roltoewijzing

Resources opschonen

Volg deze stappen om de roltoewijzing en de resourcegroep die u hebt gemaakt, te verwijderen.

  1. Kopieer en plak het volgende script in Cloud Shell.

    $emailAddress = Read-Host -Prompt "Enter the email address of the user with the role assignment to remove"
    $resourceGroupName = Read-Host -Prompt "Enter the resource group name to remove (i.e. ExampleGrouprg)"
    
    $principalId = (Get-AzAdUser -Mail $emailAddress).id
    
    Remove-AzRoleAssignment -ObjectId $principalId -RoleDefinitionName "Virtual Machine Contributor" -ResourceGroupName $resourceGroupName
    Remove-AzResourceGroup -Name $resourceGroupName
    
  2. Voer het e-mailadres van de gebruiker met de roltoewijzing in die u wilt verwijderen.

  3. Voer de naam in van de resourcegroep die u wilt verwijderen, zoals ExampleGrouprg.

  4. Druk, indien nodig, op Enter om de opdracht Remove-AzResourceGroup uit te voeren.

  5. Voer Y in om te bevestigen dat u de resourcegroep wilt verwijderen.

Volgende stappen