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.
Ö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/write
veMicrosoft.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
Azure Portal’ında oturum açın.
Azure aboneliğinizle ilişkili e-posta adresinizi belirleyin. Veya dizininizdeki başka bir kullanıcının e-posta adresini belirleyin.
PowerShell için Azure Cloud Shell'i açın.
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
ExampleGrouprg gibi bir kaynak grubu adı girin.
Kendiniz veya dizininizdeki başka bir kullanıcı için bir e-posta adresi girin.
Kaynak grubu için centralus gibi bir konum girin.
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
Azure portalında, oluşturduğunuz kaynak grubunu açın.
Sol menüde Erişim denetimi (IAM) seçeneğine tıklayın.
Rol atamaları sekmesine tıklayın.
Sanal Makine Katılımcısı rolünün belirttiğiniz kullanıcıya atandığını doğrulayın.
Kaynakları temizleme
Oluşturduğunuz rol atamasını ve kaynak grubunu kaldırmak için şu adımları izleyin.
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
Kaldırılacak rol atamasına sahip kullanıcının e-posta adresini girin.
Kaldırılacak kaynak grubu adını girin, örneğin ExampleGrouprg.
Gerekirse Remove-AzResourceGroup komutunu çalıştırmak için Enter tuşuna basın.
Kaynak grubunu kaldırmak istediğinizi onaylamak için Y girin.