Bővítményerőforrások hatókörének beállítása ARM-sablonokban

A bővítményerőforrás egy másik erőforrást módosító erőforrás. Hozzárendelhet például egy szerepkört egy erőforráshoz. A szerepkör-hozzárendelés egy bővítmény erőforrástípusa.

A bővítményerőforrás-típusok teljes listájáért tekintse meg a más erőforrások képességeit bővítő erőforrástípusokat.

Ez a cikk bemutatja, hogyan állíthatja be egy bővítményerőforrás-típus hatókörét, ha egy Azure Resource Manager sablonnal (ARM-sablonnal) van üzembe állítva. Ismerteti a bővítményerőforrások számára az erőforrásra való alkalmazáskor elérhető scope tulajdonságot.

Megjegyzés

A scope (hatókör) tulajdonság csak a bővítmény típusú erőforrásokhoz érhető el. Ha eltérő hatókört ad meg egy olyan erőforrástípushoz, amely nem bővítménytípus, használjon beágyazott vagy csatolt üzemelő példányokat. További információkért lásd: erőforráscsoportoküzembe helyezései,előfizetések üzembe helyezései, felügyeleti csoportok központi telepítéseiés bérlői telepítések.

Alkalmazás üzembe helyezési hatókörben

Ha bővítményerőforrás-típust szeretne alkalmazni a cél üzembe helyezési hatókörben, adja hozzá az erőforrást a sablonhoz, ahogy minden erőforrástípus esetén. Az elérhető hatókörök az erőforráscsoport, az előfizetés, a felügyeleti csoportés a bérlő. Az üzembe helyezési hatókörnek támogatnia kell az erőforrástípust.

Az alábbi sablon egy zárolást helyez üzembe.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/locks",
      "apiVersion": "2016-09-01",
      "name": "rgLock",
      "properties": {
        "level": "CanNotDelete",
        "notes": "Resource Group should not be deleted."
      }
    }
  ]
}

Az erőforráscsoportban való üzembe helyezés zárolja az erőforráscsoportot.

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"

A következő példa egy szerepkört rendel hozzá.

{
  "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
  "contentVersion": "1.0.0.1",
  "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"
      }
    }
  },
  "variables": {
    "Owner": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]",
    "Contributor": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
    "Reader": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')]"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/roleAssignments",
      "apiVersion": "2020-10-01-preview",
      "name": "[parameters('roleNameGuid')]",
      "properties": {
        "roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
        "principalId": "[parameters('principalId')]"
      }
    }
  ],
  "outputs": {}
}

Az előfizetésben való üzembe helyezéskor hozzárendeli a szerepkört az előfizetéshez.

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"

Alkalmazás erőforrásra

Bővítményerőforrás erőforrásra való alkalmazáshoz használja a scope tulajdonságot. Állítsa a scope (hatókör) tulajdonságot annak az erőforrásnak a nevére, amelybe a bővítményt hozzáadja. A scope tulajdonság a bővítmény erőforrástípusának gyökértulajdonságát adja meg.

Az alábbi példa létrehoz egy tárfiókot, és alkalmaz rá egy szerepkört.

{
  "$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]"
    }
  },
  "variables": {
    "Owner": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]",
    "Contributor": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
    "Reader": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')]",
    "storageName": "[concat('storage', uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[variables('storageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "properties": {}
    },
    {
      "type": "Microsoft.Authorization/roleAssignments",
      "apiVersion": "2020-10-01-preview",
      "name": "[parameters('roleNameGuid')]",
      "scope": "[concat('Microsoft.Storage/storageAccounts', '/', variables('storageName'))]",
      "dependsOn": [
        "[variables('storageName')]"
      ],
      "properties": {
        "roleDefinitionId": "[variables(parameters('builtInRoleType'))]",
        "principalId": "[parameters('principalId')]"
      }
    }
  ]
}

Következő lépések