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ény típusú erőforrástípusok teljes listáját lásd: Más erőforrások képességeit kiterjesztő erőforrástípusok.

Ez a cikk bemutatja, hogyan állíthatja be a bővítmény erőforrástípusának hatókörét egy Azure Resource Manager-sablonnal (ARM-sablonnal) való üzembe helyezéskor. Ez a cikk azt a hatókörtulajdonságot ismerteti, amely a bővítményerőforrásokhoz érhető el egy erőforrásra való alkalmazáskor.

Megjegyzés

A scope tulajdonság csak bővítmény típusú erőforrástípusokhoz érhető el. Ha más hatókört szeretne megadni egy olyan erőforrástípushoz, amely nem bővítménytípus, használjon beágyazott vagy csatolt üzembe helyezést. További információ: Erőforráscsoportok üzembe helyezései, előfizetések központi telepítései, felügyeleti csoportok üzembe helyezé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 üzembehelyezési hatókörben, adja hozzá az erőforrást a sablonhoz, ahogyan bármely erőforrástípus esetében. Az elérhető hatókörök az erőforráscsoport, az előfizetés, a felügyeleti csoport és a bérlő. Az üzembehelyezé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."
      }
    }
  ]
}

Egy erőforráscsoportban való üzembe helyezéskor 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",
      "metadata": {
        "description": "The role assignment name"
      }
    }
  },
  "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

Ha bővítményerőforrást szeretne alkalmazni egy erőforrásra, használja a tulajdonságot scope . Állítsa a scope tulajdonságot annak az erőforrásnak a nevére, amelyhez a bővítményt hozzáadja. A scope tulajdonság a bővítmény erőforrástípusának gyökértulajdonsága.

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

{
  "$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')]"
      }
    }
  ]
}

A resourceGroup és az előfizetés tulajdonságai csak beágyazott vagy csatolt üzemelő példányokon engedélyezettek. Ezek a tulajdonságok nem engedélyezettek az egyes erőforrásokon. Beágyazott vagy csatolt üzemelő példányokat akkor használjon, ha olyan bővítményerőforrást szeretne üzembe helyezni, amelynek hatóköre egy másik erőforráscsoportban lévő erőforrásra van beállítva.

Következő lépések