Nasazení skupin pro správu pomocí šablon ARM
Jak vaše organizace zralá, můžete nasadit šablonu Azure Resource Manageru (šablonu ARM) a vytvořit prostředky na úrovni skupiny pro správu. Může být například potřeba definovat a přiřadit zásady nebo řízení přístupu na základě role v Azure (Azure RBAC) pro skupinu pro správu. Pomocí šablon na úrovni skupiny pro správu můžete deklarativní použít zásady a přiřadit role na úrovni skupiny pro správu.
Tip
Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v tématu Nasazení skupin pro správu.
Podporované prostředky
Ne všechny typy prostředků je možné nasadit na úrovni skupiny pro správu. Tato část obsahuje seznam podporovaných typů prostředků.
Pro Azure Blueprints použijte:
Pro Azure Policy použijte:
Pro řízení přístupu použijte:
- privateLinkAssociations
- roleAssignments
- roleAssignmentScheduleRequests
- RoleDefinitions
- roleEligibilityScheduleRequests
- roleManagementPolicyAssignments
Pro vnořené šablony, které se nasazují do předplatných nebo skupin prostředků, použijte:
Ke správě prostředků použijte:
Skupiny pro správu jsou prostředky na úrovni tenanta. Skupiny pro správu však můžete vytvořit v nasazení skupiny pro správu nastavením oboru nové skupiny pro správu na tenanta. Viz Skupina pro správu.
Schéma
Schéma, které používáte pro nasazení skupin pro správu, se liší od schématu pro nasazení skupin prostředků.
Pro šablony použijte:
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
...
}
Schéma souboru parametrů je stejné pro všechny obory nasazení. Pro soubory parametrů použijte:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
...
}
Příkazy nasazení
K nasazení do skupiny pro správu použijte příkazy pro nasazení skupiny pro správu.
V případě Azure CLI použijte příkaz az deployment mg create:
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"
Podrobnější informace opříkazch
- Nasazení prostředků pomocí šablon ARM a webu Azure Portal
- Nasazení prostředků pomocí šablon ARM a Azure CLI
- Nasazení prostředků pomocí šablon ARM a Azure PowerShellu
- Nasazení prostředků pomocí šablon ARM a rozhraní REST API Azure Resource Manageru
- Použití tlačítka nasazení k nasazení šablon z úložiště GitHub
- Nasazení šablon ARM z Cloud Shellu
Umístění a název nasazení
Pro nasazení na úrovni skupiny pro správu musíte zadat umístění pro nasazení. Umístění nasazení je oddělené od umístění prostředků, které nasadíte. Umístění nasazení určuje, kam se mají ukládat data nasazení. Nasazení předplatného a tenanta také vyžadují umístění. Pro nasazení skupin prostředků se umístění skupiny prostředků používá k ukládání dat nasazení.
Můžete zadat název nasazení nebo použít výchozí název nasazení. Výchozí název je název souboru šablony. Například nasazení šablony s názvem azuredeploy.json vytvoří výchozí název nasazení azuredeploy.
Pro každý název nasazení je umístění neměnné. Nasazení nemůžete vytvořit v jednom umístění, pokud existuje existující nasazení se stejným názvem v jiném umístění. Pokud například vytvoříte nasazení skupiny pro správu s názvem deployment1 v centralus, nemůžete později vytvořit jiné nasazení s názvem nasazení1, ale umístěním westus. Pokud se zobrazí kód InvalidDeploymentLocation
chyby, použijte pro tento název jiný název nebo stejné umístění jako předchozí nasazení.
Obory nasazení
Při nasazování do skupiny pro správu můžete prostředky nasadit do:
- cílová skupina pro správu z operace
- jiná skupina pro správu v tenantovi
- předplatná ve skupině pro správu
- skupiny prostředků ve skupině pro správu
- tenant pro skupinu prostředků
K jediným zakázaným přechodům rozsahu dochází ze skupiny prostředků na skupinu pro správu nebo z předplatného na skupinu pro správu.
Prostředek rozšíření může být vymezen na cíl, který se liší od cíle nasazení.
Uživatel, který šablonu nasazuje, musí mít přístup k zadanému oboru.
Tato část ukazuje, jak zadat různé obory. Tyto různé obory můžete kombinovat v jedné šabloně.
Rozsah cílové skupiny pro správu
Prostředky definované v oddílu prostředků šablony se použijí pro skupinu pro správu z příkazu nasazení.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
management-group-resources-default
],
"outputs": {}
}
Rozsah na jinou skupinu pro správu
Pokud chcete cílit na jinou skupinu pro správu, přidejte vnořené nasazení a zadejte scope
vlastnost. scope
Nastavte vlastnost na hodnotu ve formátu Microsoft.Management/managementGroups/<mg-name>
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string"
}
},
"variables": {
"mgId": "[format('Microsoft.Management/managementGroups/{0}', parameters('mgName'))]"
},
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-01",
"name": "nestedDeployment",
"scope": "[variables('mgId')]",
"location": "eastus",
"properties": {
"mode": "Incremental",
"template": {
management-group-resources-non-default
}
}
}
],
"outputs": {}
}
Rozsah předplatného
Můžete také cílit na předplatná v rámci skupiny pro správu. Uživatel, který šablonu nasazuje, musí mít přístup k zadanému oboru.
Pokud chcete cílit na předplatné v rámci skupiny pro správu, použijte vnořené nasazení a subscriptionId
vlastnost.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-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
}
]
}
}
}
]
}
Rozsah na skupinu prostředků
Můžete také cílit na skupiny prostředků v rámci skupiny pro správu. Uživatel, který šablonu nasazuje, musí mít přístup k zadanému oboru.
Pokud chcete cílit na skupinu prostředků v rámci skupiny pro správu, použijte vnořené nasazení. Nastavte vlastnosti subscriptionId
a resourceGroup
vlastnosti. Nenastavujte umístění pro vnořené nasazení, protože je nasazené v umístění skupiny prostředků.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-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
}
]
}
}
}
]
}
Pokud chcete použít nasazení skupiny pro správu k vytvoření skupiny prostředků v rámci předplatného a nasazení účtu úložiště do této skupiny prostředků, přečtěte si téma Nasazení do předplatného a skupiny prostředků.
Rozsah na tenanta
Pokud chcete vytvořit prostředky v tenantovi, nastavte scope
hodnotu /
. Uživatel, který šablonu nasazuje, musí mít požadovaný přístup k nasazení v tenantovi.
Pokud chcete použít vnořené nasazení, nastavte scope
a location
.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-01",
"name": "nestedDeployment",
"location": "centralus",
"scope": "/",
"properties": {
"mode": "Incremental",
"template": {
tenant-resources
}
}
}
],
"outputs": {}
}
Nebo můžete nastavit rozsah /
pro některé typy prostředků, jako jsou skupiny pro správu. Vytvoření nové skupiny pro správu je popsáno v další části.
Skupina pro správu
Pokud chcete vytvořit skupinu pro správu v nasazení skupiny pro správu, musíte nastavit obor /
pro skupinu pro správu.
Následující příklad vytvoří novou skupinu pro správu v kořenové skupině pro správu.
{
"$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')]"
}
}
}
V dalším příkladu se vytvoří nová skupina pro správu ve skupině pro správu zadanou jako nadřazená. Všimněte si, že obor je nastavený na /
.
{
"$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')]"
}
}
}
Předplatná
Pokud chcete použít šablonu ARM k vytvoření nového předplatného Azure ve skupině pro správu, přečtěte si téma:
- Programové vytváření předplatných Azure smlouva Enterprise
- Programové vytváření předplatných Azure pro Smlouva se zákazníkem Microsoftu
- Programové vytváření předplatných Azure pro Smlouva s partnerem Microsoftu
Nasazení šablony, která přesune existující předplatné Azure do nové skupiny pro správu, najdete v tématu Přesun předplatných v šabloně ARM.
Azure Policy
Vlastní definice zásad nasazené do skupiny pro správu jsou rozšíření skupiny pro správu. Pokud chcete získat ID definice vlastní zásady, použijte funkci extensionResourceId(). Předdefinované definice zásad jsou prostředky na úrovni tenanta. Pokud chcete získat ID předdefinované definice zásady, použijte funkci tenantResourceId().
Následující příklad ukazuje, jak definovat zásadu na úrovni skupiny pro správu a přiřadit ji.
{
"$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'))]"
}
}
]
}
Nasazení do předplatného a skupiny prostředků
Z nasazení na úrovni skupiny pro správu můžete cílit na předplatné v rámci skupiny pro správu. Následující příklad vytvoří skupinu prostředků v rámci předplatného a nasadí do této skupiny prostředků účet úložiště.
{
"$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"
}
}
]
}
}
}
]
}
Další kroky
- Další informace o přiřazování rolí najdete v tématu Přiřazení rolí Azure pomocí šablon Azure Resource Manageru.
- Příklad nasazení nastavení pracovního prostoru pro Microsoft Defender for Cloud najdete v tématu deployASCwithWorkspaceSettings.json.
- Můžete také nasadit šablony na úrovni předplatného a na úrovni tenanta.