Sdílet prostřednictvím


Rychlý start: Přiřazení role Azure pomocí šablony ARM

Řízení přístupu na základě role Azure (chyba RBAC) je způsob správy přístupu k prostředkům Azure. V tomto rychlém startu vytvoříte skupinu prostředků a udělíte uživateli přístup k vytváření a správě virtuálních počítačů ve skupině prostředků. V tomto rychlém startu se k udělení přístupu používá šablona Azure Resource Manageru (šablona ARM).

Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.

Pokud vaše prostředí splňuje požadavky a jste obeznámeni s používáním šablon ARM, vyberte tlačítko Nasazení do Azure. Šablona se otevře v prostředí Azure Portal.

Button to deploy the Resource Manager template to Azure.

Požadavky

Pokud chcete přiřadit role Azure a odebrat přiřazení rolí, musíte mít:

  • Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
  • Microsoft.Authorization/roleAssignments/writea Microsoft.Authorization/roleAssignments/delete oprávnění, jako je řízení přístupu na základě role Správa istrator
  • Pokud chcete přiřadit roli, musíte zadat tři prvky: objekt zabezpečení, definice role a obor. V tomto rychlém startu je objekt zabezpečení vy nebo jiný uživatel ve vašem adresáři, definice role je Přispěvatel virtuálních počítačů a obor je zadaná skupina prostředků.

Kontrola šablony

Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure. Šablona má dva parametry a oddíl prostředků. V části prostředky si všimněte, že má tři prvky přiřazení role: objekt zabezpečení, definice role a obor.

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

Prostředek definovaný v šabloně je:

Nasazení šablony

  1. Přihlaste se k portálu Azure.

  2. Určete svoji e-mailovou adresu, která je přidružená k vašemu předplatnému Azure. Nebo určete e-mailovou adresu jiného uživatele ve vašem adresáři.

  3. Otevřete Azure Cloud Shell pro PowerShell.

  4. Zkopírujte a vložte následující skript do Cloud Shellu.

    $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. Zadejte název skupiny prostředků, například ExampleGrouprg.

  6. Zadejte e-mailovou adresu pro sebe nebo jiného uživatele ve vašem adresáři.

  7. Zadejte umístění pro skupinu prostředků, například centralus.

  8. V případě potřeby stisknutím klávesy Enter spusťte příkaz New-AzResourceGroupDeployment.

    Příkaz New-AzResourceGroup vytvoří novou skupinu prostředků a příkaz New-AzResourceGroupDeployment nasadí šablonu pro přidání přiřazení role.

    Zobrazený výstup by měl vypadat přibližně takto:

    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 :
    

Kontrola nasazených prostředků

  1. Na webu Azure Portal otevřete skupinu prostředků, kterou jste vytvořili.

  2. V nabídce vlevo klikněte na Řízení přístupu (IAM).

  3. Klikněte na kartu Přiřazení rolí.

  4. Ověřte, že je role Přispěvatel virtuálních počítačů přiřazená uživateli, kterého jste zadali.

    New role assignment

Vyčištění prostředků

Pokud chcete odebrat přiřazení role a skupinu prostředků, kterou jste vytvořili, postupujte takto.

  1. Zkopírujte a vložte následující skript do Cloud Shellu.

    $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. Zadejte e-mailovou adresu uživatele s přiřazením role, kterou chcete odebrat.

  3. Zadejte název skupiny prostředků, který chcete odebrat, například ExampleGrouprg.

  4. V případě potřeby stisknutím klávesy Enter spusťte příkaz Remove-AzResourceGroup.

  5. Zadáním Y potvrďte, že chcete odebrat skupinu prostředků.

Další kroky