Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfahren Sie, wie Sie die scope Eigenschaft mit Erweiterungsressourcentypen in Azure Resource Manager(ARM)-Vorlagen verwenden. Mithilfe von Erweiterungsressourcen können Sie andere Ressourcen funktionen ändern oder hinzufügen, z. B. das Zuweisen einer Rolle oder das Anwenden einer Sperre.
Erweiterungsressourcen sind eine leistungsstarke Möglichkeit zum Verwalten von Berechtigungen, Richtlinien und anderen Einstellungen für Azure-Ressourcen. Eine vollständige Liste finden Sie unter "Ressourcentypen", die Funktionen anderer Ressourcen erweitern.
Die scope Eigenschaft ist nur für Erweiterungsressourcentypen verfügbar. Wenn Sie einen anderen Bereich für einen Ressourcentyp angeben möchten, der kein Erweiterungstyp ist, verwenden Sie eine geschachtelte oder verknüpfte Bereitstellung. Weitere Informationen finden Sie unter:
- Bereitstellungen von Ressourcengruppen
- Abonnementbereitstellungen mit Bicep-Dateien
- Verwaltungsgruppenbereitstellungen mit Bicep-Dateien
- Mandantenbereitstellungen mit Bicep-Datei
Anwenden im Bereitstellungsbereich
Um einen Erweiterungsressourcentyp im Zielbereitstellungsbereich anzuwenden, fügen Sie die Ressource wie bei jedem Ressourcentyp zu Ihrer Vorlage hinzu. Die verfügbaren Bereiche sind:
- Ressourcengruppe
- Abonnement
- Verwaltungsgruppe
- Mieter
Die folgende Vorlage stellt eine Sperre bereit.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2020-05-01",
"name": "rgLock",
"properties": {
"level": "CanNotDelete",
"notes": "Resource Group should not be deleted."
}
}
]
}
Bei der Bereitstellung in einer Ressourcengruppe wird die Ressourcengruppe gesperrt.
az deployment group create \
--resource-group ExampleGroup \
--template-uri "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/scope/locktargetscope.json"
Im nächsten Beispiel wird eine Rolle zugewiesen.
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"principalId": {
"type": "string",
"metadata": {
"description": "The principal to assign the role to"
}
},
"builtInRoleType": {
"type": "string",
"allowedValues": [
"Owner",
"Contributor",
"Reader"
],
"metadata": {
"description": "Built-in role to assign"
}
},
"roleNameGuid": {
"type": "string",
"metadata": {
"description": "The role assignment name"
}
}
},
"variables": {
"roleDefinitionIds": {
"Owner": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635', subscription().subscriptionId)]",
"Contributor": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c', subscription().subscriptionId)]",
"Reader": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7', subscription().subscriptionId)]"
}
},
"resources": [
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
"name": "[parameters('roleNameGuid')]",
"properties": {
"roleDefinitionId": "[variables('roleDefinitionIds')[parameters('builtInRoleType')]]",
"principalId": "[parameters('principalId')]"
}
}
]
}
Bei der Bereitstellung in einem Abonnement wird dem Abonnement die Rolle zugewiesen.
az deployment sub create \
--name demoSubDeployment \
--___location centralus \
--template-uri "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/scope/roletargetscope.json"
Auf eine Ressource anwenden
Verwenden Sie die scope Eigenschaft, um eine Erweiterungsressource auf eine Ressource anzuwenden. Legen Sie die Bereichseigenschaft auf den Namen der Ressource fest, der Sie die Erweiterung hinzufügen. Die Bereichseigenschaft ist eine Stammeigenschaft für den Erweiterungsressourcentyp.
Im folgenden Beispiel wird ein Speicherkonto erstellt und eine Rolle darauf angewendet.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"principalId": {
"type": "string",
"metadata": {
"description": "The principal to assign the role to"
}
},
"builtInRoleType": {
"type": "string",
"allowedValues": [
"Owner",
"Contributor",
"Reader"
],
"metadata": {
"description": "Built-in role to assign"
}
},
"roleNameGuid": {
"type": "string",
"defaultValue": "[newGuid()]",
"metadata": {
"description": "A new GUID used to identify the role assignment"
}
},
"___location": {
"type": "string",
"defaultValue": "[resourceGroup().___location]",
"metadata": {
"description": "The ___location for the resources"
}
}
},
"variables": {
"roleDefinitionIds": {
"Owner": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635', subscription().subscriptionId)]",
"Contributor": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c', subscription().subscriptionId)]",
"Reader": "[format('/subscriptions/{0}/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7', subscription().subscriptionId)]"
},
"storageName": "[format('storage{0}', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-01-01",
"name": "[variables('storageName')]",
"___location": "[parameters('___location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
},
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
"scope": "[format('Microsoft.Storage/storageAccounts/{0}', variables('storageName'))]",
"name": "[parameters('roleNameGuid')]",
"properties": {
"roleDefinitionId": "[variables('roleDefinitionIds')[parameters('builtInRoleType')]]",
"principalId": "[parameters('principalId')]"
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', variables('storageName'))]"
]
}
]
}
Die Eigenschaften "resourceGroup" und "subscription" sind nur für geschachtelte oder verknüpfte Bereitstellungen zulässig. Diese Eigenschaften sind für einzelne Ressourcen nicht zulässig. Verwenden Sie geschachtelte oder verknüpfte Bereitstellungen, wenn Sie eine Erweiterungsressource mit dem Bereich bereitstellen möchten, der auf eine Ressource in einer anderen Ressourcengruppe festgelegt ist.
Nächste Schritte
- Um zu verstehen, wie Parameter in der Vorlage definiert werden, lesen Sie Verstehen der Struktur und Syntax von ARM-Vorlagen.
- Tipps zum Beheben gängiger Azure-Bereitstellungsfehler finden Sie unter Beheben gängiger Azure-Bereitstellungsfehler mit Azure Resource Manager.
- Informationen zum Bereitstellen einer Vorlage, die ein SAS-Token erfordert, finden Sie unter Bereitstellen einer privaten ARM-Vorlage mit SAS-Token.