Tambahkan kondisi penetapan peran Azure menggunakan templat Azure Resource Manager (Pratinjau)

Penting

Azure ABAC dan kondisi penetapan peran Azure saat ini dalam pratinjau. Versi pratinjau ini diberikan tanpa perjanjian tingkat layanan dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Kondisi penetapan peran Azure adalah pemeriksaan tambahan yang dapat Anda tambahkan secara opsional ke penetapan peran 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

Untuk informasi tentang prasyarat untuk menambahkan ketentuan penetapan peran, lihat Prasyarat ketentuan.

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, atau ServicePrincipal. 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": "2020-04-01-preview", // 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"

Langkah berikutnya