Azure Resource Manager şablonları kullanarak Azure rol atama koşulları ekleme (Önizleme)

Önemli

Azure ATZB ve Azure rolü atama koşulları Şu anda önizleme aşamasındadır. Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yüklerinde kullanılması önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Azure rolü atama koşulu , daha ayrıntılı erişim denetimi sağlamak için isteğe bağlı olarak rol atamanıza ekleyebileceğiniz ek bir denetimdir. Örneğin, nesneyi okumak için nesnenin belirli bir etiketine sahip olmasını gerektiren bir koşul ekleyebilirsiniz. Bu makalede, Azure Resource Manager şablonları kullanarak rol atamalarınız için koşulların nasıl ekleneceği açıklanmaktadır.

Önkoşullar

Rol atama koşulları ekleme önkoşulları hakkında daha fazla bilgi için bkz. koşulların önkoşulları.

Koşul ekleme

aşağıdaki şablonda, Depolama Blob veri okuyucu rolünün bir koşula nasıl atanacağı gösterilmektedir. Koşul, kapsayıcı adının ' blob-örnek-kapsayıcı ' değerine eşit olup olmadığını denetler.

Şablonu kullanmak için aşağıdaki girişi belirtmeniz gerekir:

  • Rolün atanacağı bir kullanıcının, grubun, yönetilen kimliğin veya uygulamanın KIMLIĞI.
  • ,, Veya gibi asıl tür User Group ServicePrincipal . Daha fazla bilgi için bkz. yeni hizmet sorumlusu.
{
    "$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"
            }
        }
    ]
}

Rol atamasının kapsamı, dağıtımın düzeyinden belirlenir. Örnek New-AzResourceGroupDeployment ve az dağıtım grubu oluşturma komutları bir kaynak grubu kapsamında nasıl başlayaöğreneceksiniz?.

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"

Sonraki adımlar