Nasazení tenantů pomocí šablon ARM
Až se vaše organizace bude zkřovat, možná budete muset definovat a přiřazovat zásady nebo řízení přístupu na základě role v Azure (Azure RBAC) napříč vaším tenantem Azure AD. Pomocí šablon na úrovni tenanta můžete deklarativně používat zásady a přiřazovat role na globální úrovni.
Podporované prostředky
Ne všechny typy prostředků je možné nasadit na úrovni tenanta. V této části je uveden seznam podporovaných typů prostředků.
Pro řízení přístupu na základě role v Azure (Azure RBAC) použijte:
Pro vnořené šablony, které se nasadí do skupin pro správu, předplatných nebo skupin prostředků, použijte:
Při vytváření skupin pro správu použijte:
K vytváření předplatných použijte:
Ke správě nákladů použijte:
Ke konfiguraci portálu použijte:
Předdefinované definice zásad jsou prostředky na úrovni tenanta, ale nemůžete v tenantovi nasazovat vlastní definice zásad. Příklad přiřazení integrované definice zásady k prostředku najdete v příkladu tenantResourceId.
Schéma
Schéma, které používáte pro nasazení tenantů, se liší od schématu pro nasazení skupin prostředků.
Pro šablony použijte:
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.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#",
...
}
Požadovaný přístup
Objekt zabezpečení nasazující šablonu musí mít oprávnění k vytváření prostředků v oboru tenanta. Objekt zabezpečení musí mít oprávnění ke spuštění akcí nasazení ( ) a k vytvoření prostředků Microsoft.Resources/deployments/* definovaných v šabloně. Pokud například chcete vytvořit skupinu pro správu, musí mít objekt zabezpečení v oboru tenanta oprávnění Přispěvatel. Aby bylo možné vytvořit přiřazení rolí, musí mít objekt zabezpečení oprávnění Vlastník.
Globální správce pro Azure Active Directory nemá automaticky oprávnění k přiřazování rolí. Pokud chcete povolit nasazení šablon v oboru tenanta, musí globální správce provést následující kroky:
Zvýšit oprávnění přístupu k účtu, aby mohl globální správce přiřazovat role. Podrobnosti najdete v tématu Zvýšení úrovně přístupu pro správu všech předplatných Azure a skupin pro správu.
Přiřaďte objekt zabezpečení, který potřebuje nasadit šablony, vlastníka nebo přispěvatele.
New-AzRoleAssignment -SignInName "[userId]" -Scope "/" -RoleDefinitionName "Owner"az role assignment create --assignee "[userId]" --scope "/" --role "Owner"
Objekt zabezpečení teď má požadovaná oprávnění k nasazení šablony.
Příkazy nasazení
Příkazy pro nasazení tenantů se liší od příkazů pro nasazení skupin prostředků.
V případě Azure CLI použijte příkaz az deployment tenant create:
az deployment tenant create \
--name demoTenantDeployment \
--location WestUS \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/tenant-deployments/new-mg/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 tenanta 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ých a skupin pro správu 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í tenanta 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 tenanta můžete nasadit prostředky do:
- tenant
- skupiny pro správu v rámci tenanta
- Odběry
- skupinám 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.
Rozsah na tenanta
Prostředky definované v části resources šablony se použijí na tenanta.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
tenant-resources
],
"outputs": {}
}
Obor na skupinu pro správu
Pokud chcete cílit na skupinu pro správu v rámci tenanta, přidejte vnořené nasazení a zadejte scope vlastnost .
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.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": "nestedMG",
"scope": "[variables('mgId')]",
"location": "eastus",
"properties": {
"mode": "Incremental",
"template": {
management-group-resources
}
}
}
],
"outputs": {}
}
Rozsah na předplatné
Můžete také cílit na předplatná v rámci tenanta. Uživatel, který šablonu nasazovat, musí mít přístup k zadanému oboru.
Pokud chcete cílit na předplatné v rámci tenanta, použijte vnořené nasazení a subscriptionId vlastnost .
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.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 tenanta. 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 tenanta, 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/tenantDeploymentTemplate.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
}
]
}
}
}
]
}
Vytvoření skupiny pro správu
Následující šablona vytvoří skupinu pro správu.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[concat('mg-', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2020-02-01",
"name": "[parameters('mgName')]",
"properties": {
}
}
]
}
Pokud váš účet nemá oprávnění k nasazení do tenanta, můžete skupiny pro správu vytvořit nasazením do jiného oboru. Další informace najdete v tématu Skupina pro správu.
Přiřazení role
Následující šablona přiřadí roli v oboru tenanta.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/tenantDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.4.1008.15138",
"templateHash": "11836852523469035276"
}
},
"parameters": {
"principalId": {
"type": "string",
"metadata": {
"description": "principalId if the user that will be given contributor access to the tenant"
}
},
"roleDefinitionId": {
"type": "string",
"defaultValue": "8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
"metadata": {
"description": "roleDefinition for the assignment - default is owner"
}
}
},
"functions": [],
"variables": {
"roleAssignmentName": "[guid('/', parameters('principalId'), parameters('roleDefinitionId'))]"
},
"resources": [
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2020-03-01-preview",
"name": "[variables('roleAssignmentName')]",
"properties": {
"roleDefinitionId": "[tenantResourceId('Microsoft.Authorization/roleDefinitions', parameters('roleDefinitionId'))]",
"principalId": "[parameters('principalId')]"
}
}
]
}
Další kroky
- Další informace o přiřazování rolí najdete v tématu Přiřazení rolí Azure pomocí Azure Resource Manager šablon.
- Šablony můžete nasadit i na úrovni předplatného nebo skupiny pro správu.