Menambahkan kondisi penetapan peran Azure menggunakan templat Azure Resource Manager
Kondisi penetapan peran Azure adalah pemeriksaan tambahan yang dapat Anda tambahkan secara opsional ke penetapan peran milik Anda untuk memberikan kontrol akses yang lebih terperinci. Misalnya, Anda dapat menambahkan kondisi yang mengharuskan objek memiliki tag tertentu untuk membaca objek. Artikel ini menjelaskan cara menambahkan kondisi untuk penetapan peran Anda menggunakan templat Azure Resource Manager.
Prasyarat
Anda harus menggunakan versi berikut:
2020-03-01-preview
atau yang lebih baru2020-04-01-preview
atau yang lebih baru jika Anda ingin menggunakandescription
properti untuk penetapan peran2022-04-01
adalah versi stabil pertama
Untuk informasi selengkapnya tentang prasyarat untuk menambahkan kondisi penetapan peran, lihat Prasyarat kondisi.
Menambahkan kondisi
Templat berikut menunjukkan cara menetapkan peran Pembaca Data Blob Penyimpanan dengan kondisi. Kondisi memeriksa apakah nama kontainer sama dengan 'blobs-example-container'.
Untuk menggunakan templat, Anda harus menentukan input berikut:
- ID pengguna, grup, identitas terkelola, atau aplikasi yang akan ditetapkan perannya.
- Jenis perwakilan, seperti
User
,Group
, atauServicePrincipal
. Untuk informasi selengkapnya, lihat Perwakilan layanan baru.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"principalId": {
"type": "string",
"metadata": {
"description": "Principal ID to assign the role to"
}
},
"principalType": {
"type": "string",
"metadata": {
"description": "Type of principal"
}
},
"roleAssignmentGuid": {
"type": "string",
"defaultValue": "[newGuid()]",
"metadata": {
"description": "New GUID used to identify the role assignment"
}
}
},
"variables": {
"StorageBlobDataReader": "[concat(subscription().Id, '/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1')]" // ID for Storage Blob Data Reader role, but can be any valid role ID
},
"resources": [
{
"name": "[parameters('roleAssignmentGuid')]",
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01", // API version to call the role assignment PUT.
"properties": {
"roleDefinitionId": "[variables('StorageBlobDataReader')]",
"principalId": "[parameters('principalId')]",
"principalType": "[parameters('principalType')]",
"description": "Role assignment condition created with an ARM template",
"condition": "((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'})) OR (@Resource[Microsoft.Storage/storageAccounts/blobServices/containers:name] StringEquals 'blobs-example-container'))", // Role assignment condition
"conditionVersion": "2.0"
}
}
]
}
Lingkup penetapan peran ditentukan dari tingkat penerapan. Berikut adalah contoh perintah New-AzResourceGroupDeployment dan membuat grup penerapan az tentang cara memulai penerapan dalam grup sumber daya.
New-AzResourceGroupDeployment -ResourceGroupName example-group -TemplateFile rbac-test.json -principalId $principalId -principalType "User"
az deployment group create --resource-group example-group --template-file rbac-test.json --parameters principalId=$principalId principalType="User"