Udostępnij za pośrednictwem


Szybki start: przypisywanie roli platformy Azure przy użyciu szablonu usługi ARM

Kontrola dostępu oparta na rolach Azure (Azure RBAC, Role Based Access Control) to sposób zarządzania dostępem do zasobów na platformie Azure. W tym przewodniku Szybki start utworzysz grupę zasobów i przyznasz użytkownikowi dostęp do tworzenia maszyn wirtualnych w grupie zasobów i zarządzania nimi. Ten przewodnik Szybki start używa szablonu usługi Azure Resource Manager (szablonu usługi ARM) do udzielenia dostępu.

Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.

Jeśli Twoje środowisko spełnia wymagania wstępne i masz doświadczenie w korzystaniu z szablonów ARM, wybierz przycisk Wdróż na platformie Azure. Szablon zostanie otwarty w witrynie Azure Portal.

Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure.

Wymagania wstępne

Aby przypisać role platformy Azure i usunąć przypisania ról, musisz mieć następujące elementy:

  • Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Microsoft.Authorization/roleAssignments/write i Microsoft.Authorization/roleAssignments/delete uprawnienia, takie jak administrator kontroli dostępu opartej na rolach
  • Aby przypisać rolę, należy określić trzy elementy: podmiot zabezpieczeń, definicję roli i zakres. W tym przewodniku Szybki start podmiot zabezpieczeń jest użytkownikiem lub innym użytkownikiem w katalogu, definicją roli jest Współautor maszyny wirtualnej, a zakresem jest określona grupa zasobów.

Przegląd szablonu

Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure. Szablon ma dwa parametry i sekcję zasobów. W sekcji zasobów zwróć uwagę, że ma trzy elementy przypisania roli: podmiot zabezpieczeń, definicję roli i zakres.

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

Zasób zdefiniowany w szablonie to:

Wdrażanie szablonu

  1. Zaloguj się w witrynie Azure Portal.

  2. Określ adres e-mail skojarzony z subskrypcją platformy Azure. Możesz też określić adres e-mail innego użytkownika w katalogu.

  3. Otwórz usługę Azure Cloud Shell dla programu PowerShell.

  4. Skopiuj i wklej następujący skrypt do usługi 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. Wprowadź nazwę grupy zasobów, taką jak ExampleGrouprg.

  6. Wprowadź adres e-mail dla siebie lub innego użytkownika w katalogu.

  7. Wprowadź lokalizację dla grupy zasobów, takiej jak centralus.

  8. W razie potrzeby naciśnij Enter, aby uruchomić polecenie New-AzResourceGroupDeployment.

    Polecenie New-AzResourceGroup tworzy nową grupę zasobów, a polecenie New-AzResourceGroupDeployment wdraża szablon w celu dodania przypisania roli.

    Powinny zostać wyświetlone dane wyjściowe podobne do następujących:

    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 :
    

Przeglądanie wdrożonych zasobów

  1. W witrynie Azure Portal otwórz utworzoną grupę zasobów.

  2. W menu po lewej stronie kliknij pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami)..

  3. Kliknij kartę Przypisania ról.

  4. Sprawdź, czy rola Współautor maszyny wirtualnej jest przypisana do określonego użytkownika.

    Przypisanie nowej roli

Czyszczenie zasobów

Aby usunąć utworzone przypisanie roli i grupę zasobów, wykonaj następujące kroki.

  1. Skopiuj i wklej następujący skrypt do usługi 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. Wprowadź adres e-mail użytkownika z przypisaniem roli do usunięcia.

  3. Wprowadź nazwę grupy zasobów, która ma być usunięta, na przykład ExampleGrouprg.

  4. W razie potrzeby naciśnij Enter, aby uruchomić polecenie Remove-AzResourceGroup.

  5. Wprowadź wartość Y , aby potwierdzić, że chcesz usunąć grupę zasobów.

Następne kroki