Aracılığıyla paylaş


Hızlı Başlangıç: ARM şablonu kullanarak Azure rolü atama

Azure rol tabanlı erişim denetimi (Azure RBAC) Azure kaynaklarına erişimi yönetmek için kullanılan sistemdir. Bu hızlı başlangıçta bir kaynak grubu oluşturacak ve bir kullanıcıya kaynak grubunda sanal makine oluşturma ve yönetme erişimi verirsiniz. Bu hızlı başlangıçta erişim vermek için bir Azure Resource Manager şablonu (ARM şablonu) kullanılır.

Azure Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Dağıtımı oluşturmak için programlama komutlarının sırasını yazmadan hedeflenen dağıtımınızı açıklarsınız.

Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanma hakkında bilginiz varsa, Azure’a dağıtma düğmesini seçin. Şablon Azure portalda açılır.

Button to deploy the Resource Manager template to Azure.

Önkoşullar

Azure rollerini atamak ve rol atamalarını kaldırmak için aşağıdakilere sahip olmanız gerekir:

  • Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
  • Microsoft.Authorization/roleAssignments/writeve Microsoft.Authorization/roleAssignments/delete Rol Tabanlı Erişim Denetimi Yönetici istrator gibi izinler
  • Rol atamak için üç öğe belirtmeniz gerekir: güvenlik sorumlusu, rol tanımı ve kapsam. Bu hızlı başlangıçta, güvenlik sorumlusu siz veya dizininizdeki başka bir kullanıcıdır, rol tanımı Sanal Makine Katkıda Bulunanı'dır ve kapsam da belirttiğiniz bir kaynak grubudur.

Şablonu gözden geçirme

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır. Şablonun iki parametresi ve kaynaklar bölümü vardır. Kaynaklar bölümünde, bir rol atamasının üç öğesine sahip olduğuna dikkat edin: güvenlik sorumlusu, rol tanımı ve kapsam.

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

Şablonda tanımlanan kaynak:

Şablonu dağıtma

  1. Azure Portal’ında oturum açın.

  2. Azure aboneliğinizle ilişkili e-posta adresinizi belirleyin. Veya dizininizdeki başka bir kullanıcının e-posta adresini belirleyin.

  3. PowerShell için Azure Cloud Shell'i açın.

  4. Aşağıdaki betiği kopyalayıp Cloud Shell'e yapıştırın.

    $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. ExampleGrouprg gibi bir kaynak grubu adı girin.

  6. Kendiniz veya dizininizdeki başka bir kullanıcı için bir e-posta adresi girin.

  7. Kaynak grubu için centralus gibi bir konum girin.

  8. Gerekirse, New-AzResourceGroupDeployment komutunu çalıştırmak için Enter tuşuna basın.

    New-AzResourceGroup komutu yeni bir kaynak grubu oluşturur ve New-AzResourceGroupDeployment komutu, rol atamasını eklemek için şablonu dağıtır.

    Aşağıdakine benzer bir çıktı görmeniz gerekir:

    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 :
    

Dağıtılan kaynakları gözden geçirme

  1. Azure portalında, oluşturduğunuz kaynak grubunu açın.

  2. Sol menüde Erişim denetimi (IAM) seçeneğine tıklayın.

  3. Rol atamaları sekmesine tıklayın.

  4. Sanal Makine Katılımcısı rolünün belirttiğiniz kullanıcıya atandığını doğrulayın.

    New role assignment

Kaynakları temizleme

Oluşturduğunuz rol atamasını ve kaynak grubunu kaldırmak için şu adımları izleyin.

  1. Aşağıdaki betiği kopyalayıp Cloud Shell'e yapıştırın.

    $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. Kaldırılacak rol atamasına sahip kullanıcının e-posta adresini girin.

  3. Kaldırılacak kaynak grubu adını girin, örneğin ExampleGrouprg.

  4. Gerekirse Remove-AzResourceGroup komutunu çalıştırmak için Enter tuşuna basın.

  5. Kaynak grubunu kaldırmak istediğinizi onaylamak için Y girin.

Sonraki adımlar