Nasazení skupin pro správu pomocí šablon ARM
S nasazováním vaší organizace můžete nasadit šablonu Azure Resource Manager (šablonu ARM) pro vytváření prostředků na úrovni skupiny pro správu. Například může být potřeba definovat a přiřazovat 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žívat zásady a přiřazovat role na úrovni skupiny pro správu.
Podporované prostředky
Ne všechny typy prostředků je možné nasadit na úroveň skupiny pro správu. V této části je uveden 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 nasadí do předplatných nebo skupin prostředků, použijte:
Pro správu 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 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 o příkazech a možnostech nasazení šablon ARM najdete v těchto tématu:
- Nasazení prostředků pomocí šablon ARM a Azure Portal
- Nasazení prostředků pomocí šablon ARM a Azure CLI
- Nasazení prostředků pomocí šablon ARM a Azure PowerShell
- Nasazení prostředků pomocí šablon ARM a Azure Resource Manager REST API
- Použití tlačítka nasazení k nasazení šablon z GitHub úložiště
- Nasazení šablon ARM z Cloud Shell
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 budou ukládat data nasazení. Nasazení předplatného a tenanta také vyžadují umístění. Pro nasazení skupin prostředků se k ukládání dat nasazení používá umístění skupiny prostředků.
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 při nasazení šablony s názvem azuredeploy.json se 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 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 další nasazení s názvem deployment1, ale umístěním westus. Pokud se zobrazí kód chyby , použijte pro tento název jiný název nebo stejné umístění jako InvalidDeploymentLocation předchozí nasazení.
Obory nasazení
Při nasazování do skupiny pro správu můžete nasadit prostředky 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ů
Prostředek rozšíření může být vymezený na cíl, který se liší od cíle nasazení.
Uživatel, který šablonu nasazovat, musí mít přístup k zadanému oboru.
Tato část ukazuje, jak zadat různé obory. Tyto různé obory můžete kombinovat do jedné šablony.
Obor na cílovou skupinu pro správu
Prostředky definované v části resources šablony se použijí na 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": {}
}
Obor 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 . Nastavte scope 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": "[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": {}
}
Rozsah na předplatné
Můžete také cílit na předplatná v rámci skupiny pro správu. Uživatel, který šablonu nasazovat, 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": "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
}
]
}
}
}
]
}
Obor na skupinu prostředků
Můžete také cílit na skupiny prostředků v rámci skupiny pro správu. Uživatel, který šablonu nasazovat, 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 subscriptionId vlastnosti resourceGroup a . Pro vnořené nasazení nestavíte umístění, 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": "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
}
]
}
}
}
]
}
Informace o použití nasazení skupiny pro správu pro vytvoření skupiny prostředků v rámci předplatného a nasazení účtu úložiště do této skupiny prostředků najdete v tématu Nasazení do předplatného a skupiny prostředků.
Rozsah na tenanta
Pokud chcete vytvořit prostředky v tenantovi, nastavte scope na / . Uživatel, který šablonu nasazovat, musí mít požadovaný přístup k nasazení v tenantovi.
Pokud chcete použít vnořené nasazení, nastavte a scope location .
{
"$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": {}
}
Nebo můžete nastavit rozsah na pro / některé typy prostředků, jako jsou skupiny pro správu. Vytvoření nové skupiny pro správu je popsané v další části.
Skupina pro správu
Chcete-li vytvořit skupinu pro správu v nasazení skupiny pro správu, je nutné nastavit obor na / 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')]"
}
}
}
Následující příklad vytvoří novou skupinu pro správu ve skupině pro správu, která je zadána jako nadřazená. Všimněte si, že obor je nastaven na hodnotu / .
{
"$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á
Chcete-li 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é vytvoření předplatných Azure pro zákaznickou smlouvu Microsoftu
- Programové vytvoření předplatných Azure pro partnerských smluv Microsoftu
Pokud chcete nasadit šablonu, která přesouvá stávající předplatné Azure do nové skupiny pro správu, přečtěte si téma Přesun předplatných v ŠABLONĚ ARM .
Azure Policy
Vlastní definice zásad, které jsou nasazené ve skupině pro správu, jsou rozšířeními skupiny pro správu. K získání ID vlastní definice zásady použijte funkci extensionResourceId () . Předdefinované definice zásad jsou prostředky na úrovni tenanta. K získání 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í účet úložiště do této skupiny prostředků.
{
"$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 Manager.
- Příklad nasazení nastavení pracovního prostoru pro program Microsoft Defender pro Cloud najdete v tématu deployASCwithWorkspaceSettings. JSON.
- Šablony můžete také nasadit na úrovni předplatného a na úrovni tenanta.