Felügyeleti csoportok telepítése ARM sablonokkal

Ahogy a szervezete felnőtt, telepíthet egy Azure Resource Manager-sablont (ARM), hogy erőforrásokat hozzon létre a felügyeleti csoport szintjén. Előfordulhat például, hogy házirendeket vagy Azure szerepköralapú hozzáférés-vezérlést (Azure RBAC) kell definiálni és hozzárendelni egy felügyeleti csoporthoz. A felügyeleti csoportszintű sablonokkal deklaratív módon alkalmazhat házirendeket, és szerepköröket rendelhet hozzá a felügyeleti csoport szintjén.

Támogatott erőforrások

A felügyeleti csoport szintjén nem minden erőforrástípus telepíthető. Ebben a szakaszban látható, hogy mely erőforrástípusok támogatottak.

Az Azure Blueprints szolgáltatáshoz használja a következőt:

Azure Policy használata:

Hozzáférés-vezérléshez használja a következőt:

Az előfizetések vagy erőforráscsoportok számára üzembe helyező beágyazott sablonok esetében használja a következőt:

Az erőforrások kezeléséhez használja a következőt:

A felügyeleti csoportok bérlői szintű erőforrások. Felügyeleti csoportokat azonban létrehozhat a felügyeleti csoportok telepítéséhez úgy, hogy az új felügyeleti csoport hatókörét a bérlői fiókra stb. Lásd: Felügyeleti csoport.

Séma

A felügyeleti csoportok központi telepítéséhez használt séma eltér az erőforráscsoportok telepítéséhez használt sémától.

Sablonokhoz használja a következőt:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  ...
}

A paraméterfájl sémája minden telepítési hatókörben azonos. Paraméterfájlokhoz használja a következőt:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  ...
}

Üzembe helyezési parancsok

Ha egy felügyeleti csoportban üzembe helyez egy csoportot, használja a felügyeleti csoport telepítési parancsokat.

Az Azure CLI esetében használja az deployment azure create (üzembe helyezési környezet létrehozása) útmutatót:

az deployment mg create \
  --name demoMGDeployment \
  --location WestUS \
  --management-group-id myMG \
  --template-uri "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/management-level-deployment/azuredeploy.json"

A sablonok üzembe helyezésének parancsairól és telepítési lehetőségeiről az alábbi ARM információkat:

Telepítési hely és név

Felügyeleti csoportszintű telepítések esetén meg kell adnia a központi telepítés helyét. A központi telepítés helye független a telepített erőforrások helyétől. A központi telepítés helye adja meg, hogy hol tárolja a telepítési adatokat. Azelőfizetéses és bérlői példányok helyére is szükség van. Erőforráscsoportok központi telepítése esetén a rendszer az erőforráscsoport helyét használja a telepítési adatok tárolására.

Meg kell adnia a központi telepítés nevét, vagy használhatja az alapértelmezett telepítési nevet. Az alapértelmezett név a sablonfájl neve. Egy azuredeploy.json nevű sablon telepítése például létrehozza az azuredeploy alapértelmezetttelepítési nevét.

Az egyes üzembe helyezési név esetén a hely nem módosítható. Nem hozhat létre központi telepítést egy helyen, ha a létezik egy azonos nevű telepítés egy másik helyen. Ha például létrehoz egy olyan felügyeleti csoportos telepítést, amely a központi 1 nevű telepítést is része,akkor később nem hozhat létre újabb telepítést a "telepítés1" névvel, de a nyugati régió helyével. Ha a hibakód jelenik meg, akkor vagy használjon másik nevet, vagy ugyanazt a helyet, mint az előző InvalidDeploymentLocation telepítésben.

Üzembe helyezési hatókörök

Felügyeleti csoportban való telepítéskor a következő rendszereken telepíthet erőforrásokat:

  • the target management group from the operation
  • egy másik felügyeleti csoport a bérlőben
  • előfizetések a felügyeleti csoportban
  • erőforráscsoportok a felügyeleti csoportban
  • the tenant for the resource group

A bővítményerőforrásokat a központi telepítési céltól eltérő célhoz lehet hatókörrel megcélni.

A sablont üzembe helyező felhasználónak hozzáféréssel kell lennie a megadott hatókörhez.

Ebből a szakaszból azt tudható meg, hogy miként adhatja meg a különböző hatóköreket. Ezeket a különböző hatóköreket egyetlen sablonban kombinálhatja.

Hatókör a célkezelési csoportra

A sablon Erőforrások szakaszában definiált erőforrásokat a rendszer a központi telepítés parancsból alkalmazza a felügyeleti csoportra.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    management-group-resources-default
  ],
  "outputs": {}
}

Hatókör másik felügyeleti csoportra

Ha másik felügyeleti csoportot szeretne megcélni, vegyen fel egy beágyazott telepítést, és adja meg a scope tulajdonságot. Állítsa scope a tulajdonságot a formátumban megadott Microsoft.Management/managementGroups/<mg-name> értékre.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "mgName": {
      "type": "string"
    }
  },
  "variables": {
    "mgId": "[concat('Microsoft.Management/managementGroups/', parameters('mgName'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2021-04-01",
      "name": "nestedDeployment",
      "scope": "[variables('mgId')]",
      "location": "eastus",
      "properties": {
        "mode": "Incremental",
        "template": {
          management-group-resources-non-default
        }
      }
    }
  ],
  "outputs": {}
}

Hatókör az előfizetéshez

A felügyeleti csoportokon belül megcélzott előfizetéseket is megcélhat. A sablont üzembe helyező felhasználónak hozzáféréssel kell lennie a megadott hatókörhez.

Ha a felügyeleti csoporton belül megcél egy előfizetést, használjon beágyazott telepítést és a subscriptionId tulajdonságot.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2021-04-01",
      "name": "nestedSub",
      "location": "westus2",
      "subscriptionId": "00000000-0000-0000-0000-000000000000",
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "resources": [
            {
              subscription-resources
            }
          ]
        }
      }
    }
  ]
}

Hatókör erőforráscsoporthoz

A felügyeleti csoporton belül megcélzott erőforráscsoportokat is megcélhat. A sablont üzembe helyező felhasználónak hozzáféréssel kell lennie a megadott hatókörhez.

Ha egy erőforráscsoportot megcélzott a felügyeleti csoporton belül, használjon beágyazott telepítést. Adja meg subscriptionId a és resourceGroup a tulajdonságokat. Ne állítson be helyet a beágyazott telepítésnek, mert az az erőforráscsoport helyén van üzembe állítva.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2021-04-01",
      "name": "nestedRGDeploy",
      "subscriptionId": "00000000-0000-0000-0000-000000000000",
      "resourceGroup": "demoResourceGroup",
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "resources": [
            {
              resource-group-resources
            }
          ]
        }
      }
    }
  ]
}

Ha egy felügyeleti csoport központi telepítésével hoz létre egy erőforráscsoportot egy előfizetésen belül, és tárfiókot telepít az adott erőforráscsoportba, tekintse meg a Központi telepítés az előfizetés és az erőforráscsoport számáralehetőséget.

Hatókör bérlőre

Ha a bérlői fiókban erőforrásokat hoz létre, állítsa a scope () / gombra. A sablont üzembe helyező felhasználónak a bérlői fiókban való telepítéshez szükséges hozzáféréssel kell rendelkezik.

Beágyazott telepítéshez a set és scopelocation a et használhatja.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2021-04-01",
      "name": "nestedDeployment",
      "location": "centralus",
      "scope": "/",
      "properties": {
        "mode": "Incremental",
        "template": {
          tenant-resources
        }
      }
    }
  ],
  "outputs": {}
}

A hatókört beállíthatja egyes erőforrástípusokra, például a / felügyeleti csoportokra is. Az új felügyeleti csoportok létrehozását a következő szakaszban ismertetjük.

Felügyeleti csoport

Ha egy felügyeleti csoport központi telepítésében létre kell hoznia egy felügyeleti csoportot, a felügyeleti csoport hatókörét / kell beállítania.

Az alábbi példa létrehoz egy új felügyeleti csoportot a gyökérkezelési csoportban.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "mgName": {
      "type": "string",
      "defaultValue": "[concat('mg-', uniqueString(newGuid()))]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Management/managementGroups",
      "apiVersion": "2021-04-01",
      "name": "[parameters('mgName')]",
      "scope": "/",
      "location": "eastus",
      "properties": {}
    }
  ],
  "outputs": {
    "output": {
      "type": "string",
      "value": "[parameters('mgName')]"
    }
  }
}

A következő példa létrehoz egy új felügyeleti csoportot a szülőként megadott felügyeleti csoportban. Figyelje meg, hogy a hatókör a következőre van / állítva: .

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "mgName": {
      "type": "string",
      "defaultValue": "[concat('mg-', uniqueString(newGuid()))]"
    },
    "parentMG": {
      "type": "string"
    }
  },
  "resources": [
    {
      "name": "[parameters('mgName')]",
      "type": "Microsoft.Management/managementGroups",
      "apiVersion": "2021-04-01",
      "scope": "/",
      "location": "eastus",
      "properties": {
        "details": {
          "parent": {
            "id": "[tenantResourceId('Microsoft.Management/managementGroups', parameters('parentMG'))]"
          }
        }
      }
    }
  ],
  "outputs": {
    "output": {
      "type": "string",
      "value": "[parameters('mgName')]"
    }
  }
}

Előfizetések

Ha egy ARM új Azure-előfizetést hoz létre egy felügyeleti csoportban, lásd:

Ha egy meglévő Azure-előfizetést egy új felügyeleti csoportba áthelyező sablont is telepítenie kell, tekintse át az Előfizetések áthelyezése új ARM sablonba

Azure-házirend

A felügyeleti csoportban üzembe helyezett egyéni házirend-definíciók a felügyeleti csoport kiterjesztései. Egyéni házirenddefiníció azonosítójának be szereznie az extensionResourceId() függvényt. A beépített házirend-definíciók bérlői szintű erőforrások. Egy beépített házirenddefiníció azonosítójának be szereznie a tenantResourceId() függvényt.

Az alábbi példa bemutatja, hogyan definiálhat és rendelhet hozzá egy házirendet a felügyeleti csoport szintjén.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "targetMG": {
      "type": "string",
      "metadata": {
        "description": "Target Management Group"
      }
    },
    "allowedLocations": {
      "type": "array",
      "defaultValue": [
        "australiaeast",
        "australiasoutheast",
        "australiacentral"
      ],
      "metadata": {
        "description": "An array of the allowed locations, all other locations will be denied by the created policy."
      }
    }
  },
  "variables": {
    "mgScope": "[tenantResourceId('Microsoft.Management/managementGroups', parameters('targetMG'))]",
    "policyDefinition": "LocationRestriction"
  },
  "resources": [
    {
      "type": "Microsoft.Authorization/policyDefinitions",
      "name": "[variables('policyDefinition')]",
      "apiVersion": "2020-09-01",
      "properties": {
        "policyType": "Custom",
        "mode": "All",
        "parameters": {
        },
        "policyRule": {
          "if": {
            "not": {
              "field": "location",
              "in": "[parameters('allowedLocations')]"
            }
          },
          "then": {
            "effect": "deny"
          }
        }
      }
    },
    {
      "type": "Microsoft.Authorization/policyAssignments",
      "name": "location-lock",
      "apiVersion": "2020-09-01",
      "dependsOn": [
        "[variables('policyDefinition')]"
      ],
      "properties": {
        "scope": "[variables('mgScope')]",
        "policyDefinitionId": "[extensionResourceId(variables('mgScope'), 'Microsoft.Authorization/policyDefinitions', variables('policyDefinition'))]"
      }
    }
  ]
}

Telepítés előfizetésbe és erőforráscsoportba

A felügyeleti csoportok szintű telepítésből megcélhat egy előfizetést a felügyeleti csoporton belül. Az alábbi példa létrehoz egy erőforráscsoportot az előfizetésen belül, és üzembe helyez egy tárfiókot az adott erőforráscsoportban.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "nestedsubId": {
      "type": "string"
    },
    "nestedRG": {
      "type": "string"
    },
    "storageAccountName": {
      "type": "string"
    },
    "nestedLocation": {
      "type": "string"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2021-04-01",
      "name": "nestedSub",
      "location": "[parameters('nestedLocation')]",
      "subscriptionId": "[parameters('nestedSubId')]",
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
          },
          "variables": {
          },
          "resources": [
            {
              "type": "Microsoft.Resources/resourceGroups",
              "apiVersion": "2021-04-01",
              "name": "[parameters('nestedRG')]",
              "location": "[parameters('nestedLocation')]"
            }
          ]
        }
      }
    },
    {
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2021-04-01",
      "name": "nestedRG",
      "subscriptionId": "[parameters('nestedSubId')]",
      "resourceGroup": "[parameters('nestedRG')]",
      "dependsOn": [
        "nestedSub"
      ],
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "resources": [
            {
              "type": "Microsoft.Storage/storageAccounts",
              "apiVersion": "2021-04-01",
              "name": "[parameters('storageAccountName')]",
              "location": "[parameters('nestedLocation')]",
              "kind": "StorageV2",
              "sku": {
                "name": "Standard_LRS"
              }
            }
          ]
        }
      }
    }
  ]
}

További lépések