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.
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
enMicrosoft.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
Meld u aan bij het Azure-portaal.
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.
Open Azure Cloud Shell voor PowerShell.
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
Voer een naam voor de resourcegroep in, zoals ExampleGrouprg.
Voer een e-mailadres in van uzelf of van een andere gebruiker in uw map.
Voer een locatie in voor de resourcegroep, zoals centralus.
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
Open de resourcegroep die u hebt gemaakt in de Azure-portal.
Klik in het linkermenu op Toegangsbeheer (IAM).
Klik op het tabblad Roltoewijzingen.
Controleer of de rol Inzender voor virtuele machines is toegewezen aan de gebruiker die u hebt opgegeven.
Resources opschonen
Volg deze stappen om de roltoewijzing en de resourcegroep die u hebt gemaakt, te verwijderen.
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
Voer het e-mailadres van de gebruiker met de roltoewijzing in die u wilt verwijderen.
Voer de naam in van de resourcegroep die u wilt verwijderen, zoals ExampleGrouprg.
Druk, indien nodig, op Enter om de opdracht Remove-AzResourceGroup uit te voeren.
Voer Y in om te bevestigen dat u de resourcegroep wilt verwijderen.