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áért tekintse meg az egyéb erőforrások képességeit bővítő erőforrástípusokat.

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. Az erőforrásra való alkalmazáskor a bővítményerőforrásokhoz elérhető hatókörtulajdonságot ismerteti.

Megjegyzés

A hatókör tulajdonság csak bővítmény típusú erőforrásokhoz é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ókért tekintse meg az erőforráscsoportok üzembe helyezését, az előfizetések üzembe helyezését, a felügyeleti csoportok üzembe helyezését és a bérlőtelepítéseket.

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

Ha bővítmény típusú erőforrást 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áscsoportba 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 hatókör tulajdonságot annak az erőforrásnak a nevére, amelybe a bővítményt hozzáadja. A hatókör 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 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