Přidání podmínek přiřazení role Azure pomocí Azure Resource Manager šablon (Preview)

Důležité

Podmínky přiřazování rolí Azure ABAC a Azure jsou momentálně ve verzi Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro úlohy v produkčním prostředí. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Podmínka přiřazení role Azure je dodatečná kontrola, kterou můžete volitelně přidat k přiřazení role a poskytnout tak přesnější řízení přístupu. Například můžete přidat podmínku, která vyžaduje, aby objekt měl konkrétní značku pro čtení objektu. Tento článek popisuje, jak přidat podmínky pro přiřazení rolí pomocí šablon Azure Resource Manager.

Požadavky

Informace o požadavcích na přidání podmínek přiřazení role najdete v tématu předpoklady pro podmínky.

Přidání podmínky

následující šablona ukazuje, jak přiřadit roli čtečky dat objektů Blob Storage s podmínkou. Podmínka ověří, zda se název kontejneru rovná ' objekty blob-example-Container '.

Chcete-li použít šablonu, je nutné zadat následující vstup:

  • ID uživatele, skupiny, spravované identity nebo aplikace, ke které se role přiřadí.
  • Typ objektu zabezpečení, například User , Group nebo ServicePrincipal . Další informace najdete v tématu Nový instanční objekt.
{
    "$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"
            }
        }
    ]
}

Rozsah přiřazení role je určen z úrovně nasazení. Tady jsou příklady New-AzResourceGroupDeployment a AZ Deployment Group Create Commands, jak spustit nasazení v oboru skupiny prostředků.

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"

Další kroky