Dela via


Snabbstart: Tilldela en Azure-roll med hjälp av en ARM-mall

Azure-rollbaserad åtkomstkontroll (Azure RBAC) är sättet som du hantera åtkomst till Azure-resurser. I den här snabbstarten skapar du en resursgrupp och ger en användare åtkomst för att skapa och hantera virtuella datorer i resursgruppen. Den här snabbstarten använder en Azure Resource Manager-mall (ARM-mall) för att bevilja åtkomst.

En Azure Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Mallen använder deklarativ syntax. Du beskriver den avsedda distributionen utan att skriva sekvensen med programmeringskommandon för att skapa distributionen.

Om din miljö uppfyller förhandskraven och du är van att använda ARM-mallar väljer du knappen Distribuera till Azure. Mallen öppnas på Azure-portalen.

Knapp för att distribuera Resource Manager-mallen till Azure.

Förutsättningar

Om du vill tilldela Azure-roller och ta bort rolltilldelningar måste du ha:

  • Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
  • Microsoft.Authorization/roleAssignments/write och Microsoft.Authorization/roleAssignments/delete behörigheter, till exempel administratör för rollbaserad åtkomstkontroll
  • Om du vill tilldela en roll måste du ange tre element: säkerhetsobjekt, rolldefinition och omfång. För den här snabbstarten är säkerhetsobjektet du eller en annan användare i din katalog, rolldefinitionen är Virtuell datordeltagare och omfånget är en resursgrupp som du anger.

Granska mallen

Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar. Mallen har två parametrar och ett resursavsnitt. I avsnittet resurser ser du att den har de tre elementen i en rolltilldelning: säkerhetsobjekt, rolldefinition och omfång.

{
  "$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'))]"
    }
  }
}

Resursen som definieras i mallen är:

Distribuera mallen

  1. Logga in på Azure-portalen.

  2. Fastställ din e-postadress som är associerad med din Azure-prenumeration. Eller fastställa e-postadressen för en annan användare i din katalog.

  3. Öppna Azure Cloud Shell för PowerShell.

  4. Kopiera och klistra in följande skript i 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. Ange ett resursgruppsnamn, till exempel ExampleGrouprg.

  6. Ange en e-postadress för dig själv eller en annan användare i din katalog.

  7. Ange en plats för resursgruppen, till exempel centralus.

  8. Om det behövs trycker du på Retur för att köra kommandot New-AzResourceGroupDeployment.

    Kommandot New-AzResourceGroup skapar en ny resursgrupp och kommandot New-AzResourceGroupDeployment distribuerar mallen för att lägga till rolltilldelningen.

    Du bör se utdata som liknar följande:

    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 :
    

Granska distribuerade resurser

  1. Öppna den resursgrupp som du skapade i Azure-portalen.

  2. I den vänstra menyn klickar du på Åtkomstkontroll (IAM).

  3. Klicka på fliken Rolltilldelningar.

  4. Kontrollera att rollen Virtuell datordeltagare har tilldelats till den användare som du har angett.

    Ny rolltilldelning

Rensa resurser

Följ dessa steg om du vill ta bort rolltilldelningen och resursgruppen som du skapade.

  1. Kopiera och klistra in följande skript i 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. Ange e-postadressen till användaren med rolltilldelningen som du vill ta bort.

  3. Ange resursgruppens namn som du vill ta bort, till exempel ExampleGrouprg.

  4. Om det behövs trycker du på Retur för att köra kommandot Remove-AzResourceGroup.

  5. Ange Y för att bekräfta att du vill ta bort resursgruppen.

Nästa steg