Schnellstart: Zuweisen einer Azure-Rolle mithilfe einer ARM-Vorlage
Der Zugriff auf Azure-Ressourcen wird mithilfe der rollenbasierten Zugriffssteuerung in Azure (Azure RBAC) verwaltet. In diesem Schnellstart erstellen Sie eine Ressourcengruppe und gewähren einem Benutzer Zugriff, um virtuelle Computer in dieser Ressourcengruppe zu erstellen und zu verwalten. In dieser Schnellstartanleitung wird eine Azure Resource Manager-Vorlage (ARM-Vorlage) zum Gewähren des Zugriffs verwendet.
Eine Azure Resource Manager-Vorlage ist eine JSON (JavaScript Object Notation)-Datei, welche die Infrastruktur und die Konfiguration für Ihr Projekt definiert. Die Vorlage verwendet eine deklarative Syntax. Sie beschreiben Ihre geplante Bereitstellung, ohne die Abfolge der Programmierbefehle zum Erstellen der Bereitstellung zu schreiben.
Wenn Ihre Umgebung die Voraussetzungen erfüllt und Sie mit der Verwendung von ARM-Vorlagen vertraut sind, klicken Sie auf die Schaltfläche In Azure bereitstellen. Die Vorlage wird im Azure-Portal geöffnet.
Voraussetzungen
Sie benötigen Folgendes, um Azure-Rollen zuzuweisen und Rollenzuweisungen zu entfernen:
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Berechtigungen
Microsoft.Authorization/roleAssignments/write
undMicrosoft.Authorization/roleAssignments/delete
, etwa Rollenbasierter Zugriffssteuerungsadministrator - Sie müssen drei Elemente angeben, um eine Rolle zuzuweisen: Sicherheitsprinzipal, Rollendefinition und Bereich. Für diesen Schnellstart sind Sie oder ein anderer Benutzer in Ihrem Verzeichnis der Sicherheitsprinzipal, die Rollendefinition lautet Mitwirkender von virtuellen Computern, und der Bereich ist eine von Ihnen angegebene Ressourcengruppe.
Überprüfen der Vorlage
Die in dieser Schnellstartanleitung verwendete Vorlage stammt von der Seite mit den Azure-Schnellstartvorlagen. Die Vorlage hat zwei Parameter und einen Ressourcenabschnitt. Beachten Sie im Abschnitt „Ressourcen“, dass er die drei Elemente einer Rollenzuweisung enthält: Sicherheitsprinzipal, Rollendefinition und Bereich.
{
"$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'))]"
}
}
}
In der Vorlage ist die folgende Ressource definiert:
Bereitstellen der Vorlage
Melden Sie sich beim Azure-Portal an.
Ermitteln Sie Ihre E-Mail-Adresse, die Ihrem Azure-Abonnement zugeordnet ist. Oder ermitteln Sie die E-Mail-Adresse eines anderen Benutzers in Ihrem Verzeichnis.
Öffnen Sie Azure Cloud Shell für PowerShell.
Kopieren Sie das folgende Skript, und fügen Sie es in Cloud Shell ein.
$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
Geben Sie einen Ressourcengruppennamen wie „ExampleGrouprg“ ein.
Geben Sie eine E-Mail-Adresse für sich selbst oder einen anderen Benutzer in Ihrem Verzeichnis ein.
Geben Sie einen Ort für die Ressourcengruppe ein (z. B. „centralus“).
Drücken Sie ggf. die EINGABETASTE, um den Befehl „New-AzResourceGroupDeployment“ auszuführen.
Der Befehl New-AzResourceGroup erstellt eine neue Ressourcengruppe und der Befehl New-AzResourceGroupDeployment stellt die Vorlage bereit, um die Rollenzuweisung hinzuzufügen.
Die Ausgabe sollte etwa folgendermaßen aussehen:
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 :
Überprüfen der bereitgestellten Ressourcen
Öffnen Sie im Azure-Portal die von Ihnen erstellte Ressourcengruppe.
Klicken Sie im linken Menü auf Zugriffssteuerung (IAM) .
Klicken Sie auf die Registerkarte Rollenzuweisungen.
Überprüfen Sie, ob die Rolle Mitwirkender von virtuellen Computern dem von Ihnen angegebenen Benutzer zugewiesen ist.
Bereinigen von Ressourcen
Gehen Sie folgendermaßen vor, um die von Ihnen erstellte Rollenzuweisung und Ressourcengruppe zu entfernen.
Kopieren Sie das folgende Skript, und fügen Sie es in Cloud Shell ein.
$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
Geben Sie die E-Mail-Adresse des Benutzers mit der zu entfernenden Rollenzuweisung ein.
Geben Sie den Namen der zu entfernenden Ressourcengruppe ein, z. B. „ExampleGrouprg“.
Drücken Sie ggf. die EINGABETASTE, um den Befehl „Remove-AzResourceGroup“ auszuführen.
Geben Sie J ein, um zu bestätigen, dass Sie die Ressourcengruppe entfernen möchten.