Sdílet prostřednictvím


Rychlý start: Definování a přiřazení podrobného plánu Azure pomocí PowerShellu

Důležité

11. července 2026 se podrobné plány (Preview) přestanou používat. Migrujte existující definice a přiřazení podrobného plánu do šablonových specifikací a zásobníků nasazení. Artefakty podrobného plánu se mají převést na šablony JSON ARM nebo soubory Bicep používané k definování zásobníků nasazení. Informace o vytváření artefaktu jako prostředku ARM najdete tady:

V tomto kurzu se naučíte používat Azure Blueprints k provádění některých běžných úloh souvisejících s vytvářením, publikováním a přiřazením podrobného plánu v rámci vaší organizace. Tato dovednost vám pomůže definovat běžné vzory pro vývoj opakovaně použitelných a rychle nasaditelných konfigurací na základě šablon, zásad a zabezpečení Azure Resource Manageru (ARM).

Požadavky

  • Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
  • Pokud ještě není nainstalovaný, podle pokynů v modulu Az.Blueprint nainstalujte a ověřte modul Az.Blueprint z Galerie prostředí PowerShell.
  • Pokud jste azure Blueprints ještě nepoužívali, zaregistrujte poskytovatele prostředků prostřednictvím Azure PowerShellu ve službě Register-AzResourceProvider -ProviderNamespace Microsoft.Blueprint.

Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Snímek obrazovky znázorňující příklad možnosti Vyzkoušet pro Azure Cloud Shell
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Tlačítko pro spuštění Azure Cloud Shellu
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Snímek obrazovky znázorňující tlačítko Cloud Shell na webu Azure Portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

Vytvoření podrobného plánu

Jako první krok při definování standardního vzoru pro dodržování předpisů je sestavení podrobného plánu z dostupných prostředků. Pojďme vytvořit podrobný plán s názvem MyBlueprint pro konfiguraci přiřazení rolí a zásad pro předplatné. Potom do skupiny prostředků přidáte skupinu prostředků, šablonu ARM a přiřazení role.

Poznámka:

Při použití PowerShellu se nejprve vytvoří objekt podrobného plánu . Pro každý artefakt , který má parametry, definujete parametry předem v počátečním podrobném plánu.

  1. Vytvořte počáteční objekt blueprint. Parametr BlueprintFile přebírá soubor JSON, který obsahuje vlastnosti podrobného plánu, všechny skupiny prostředků k vytvoření a všechny parametry na úrovni podrobného plánu. Parametry nastavíte během přiřazení a artefakty, které přidáte v dalších krocích.

    • Soubor JSON – blueprint.json

      {
          "properties": {
              "description": "This blueprint sets tag policy and role assignment on the subscription, creates a ResourceGroup, and deploys a resource template and role assignment to that ResourceGroup.",
              "targetScope": "subscription",
              "parameters": {
                  "storageAccountType": {
                      "type": "string",
                      "defaultValue": "Standard_LRS",
                      "allowedValues": [
                          "Standard_LRS",
                          "Standard_GRS",
                          "Standard_ZRS",
                          "Premium_LRS"
                      ],
                      "metadata": {
                          "displayName": "storage account type.",
                          "description": null
                      }
                  },
                  "tagName": {
                      "type": "string",
                      "metadata": {
                          "displayName": "The name of the tag to provide the policy assignment.",
                          "description": null
                      }
                  },
                  "tagValue": {
                      "type": "string",
                      "metadata": {
                          "displayName": "The value of the tag to provide the policy assignment.",
                          "description": null
                      }
                  },
                  "contributors": {
                      "type": "array",
                      "metadata": {
                          "description": "List of AAD object IDs that is assigned Contributor role at the subscription",
                          "strongType": "PrincipalId"
                      }
                  },
                  "owners": {
                      "type": "array",
                      "metadata": {
                          "description": "List of AAD object IDs that is assigned Owner role at the resource group",
                          "strongType": "PrincipalId"
                      }
                  }
              },
              "resourceGroups": {
                  "storageRG": {
                      "description": "Contains the resource template deployment and a role assignment."
                  }
              }
          }
      }
      
    • Příkaz PowerShellu

      # Login first with Connect-AzAccount if not using Cloud Shell
      
      # Get a reference to the new blueprint object, we'll use it in subsequent steps
      $blueprint = New-AzBlueprint -Name 'MyBlueprint' -BlueprintFile .\blueprint.json
      

      Poznámka:

      Název souboru použijte blueprint.json při programovém vytváření definic podrobného plánu. Tento název souboru se používá při volání Import-AzBlueprintWithArtifact.

      Objekt podrobného plánu se ve výchozím nastavení vytvoří ve výchozím předplatném. Chcete-li zadat skupinu pro správu, použijte parametr ManagementGroupId. Pokud chcete zadat předplatné, použijte parametr SubscriptionId.

  2. Přidejte přiřazení role v předplatném. Definuje ArtifactFile druh artefaktu, vlastnosti odpovídají identifikátoru definice role a hlavní identity se předávají jako pole hodnot. V následujícím příkladu jsou hlavní identity udělené zadanou rolí nakonfigurovány na parametr, který je nastaven během přiřazení podrobného plánu. V tomto příkladu Contributor se používá předdefinovaná role s identifikátorem GUID b24988ac-6180-42a0-ab88-20f7382dd24c.

    • Soubor JSON – \artifacts\roleContributor.json

      {
          "kind": "roleAssignment",
          "properties": {
              "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
              "principalIds": "[parameters('contributors')]"
          }
      }
      
    • Příkaz PowerShellu

      # Use the reference to the new blueprint object from the previous steps
      New-AzBlueprintArtifact -Blueprint $blueprint -Name 'roleContributor' -ArtifactFile .\artifacts\roleContributor.json
      
  3. Přidejte přiřazení zásad v předplatném. Definuje ArtifactFile druh artefaktu, vlastnosti odpovídají definici zásady nebo iniciativy a přiřazení zásady je nakonfigurováno tak, aby používalo definované parametry podrobného plánu během přiřazení podrobného plánu. Tento příklad používá Apply tag and its default value to resource groups předdefinované zásady s identifikátorem GUID 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • Soubor JSON – \artifacts\policyTags.json

      {
          "kind": "policyAssignment",
          "properties": {
              "displayName": "Apply tag and its default value to resource groups",
              "description": "Apply tag and its default value to resource groups",
              "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71",
              "parameters": {
                  "tagName": {
                      "value": "[parameters('tagName')]"
                  },
                  "tagValue": {
                      "value": "[parameters('tagValue')]"
                  }
              }
          }
      }
      
    • Příkaz PowerShellu

      # Use the reference to the new blueprint object from the previous steps
      New-AzBlueprintArtifact -Blueprint $blueprint -Name 'policyTags' -ArtifactFile .\artifacts\policyTags.json
      
  4. Přidejte další přiřazení zásad pro značku úložiště (opětovným použitím storageAccountType_ parameter) v předplatném. Tento další artefakt přiřazené zásady ukazuje, že parametr definovaný v podrobném plánu může používat více artefaktů. V tomto příkladu storageAccountType použijete k nastavení značky ve skupině prostředků. Tato hodnota poskytuje informace o účtu úložiště, který vytvoříte v dalším kroku. Tento příklad používá Apply tag and its default value to resource groups předdefinované zásady s identifikátorem GUID 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • Soubor JSON – \artifacts\policyStorageTags.json

      {
          "kind": "policyAssignment",
          "properties": {
              "displayName": "Apply storage tag to resource group",
              "description": "Apply storage tag and the parameter also used by the template to resource groups",
              "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71",
              "parameters": {
                  "tagName": {
                      "value": "StorageType"
                  },
                  "tagValue": {
                      "value": "[parameters('storageAccountType')]"
                  }
              }
          }
      }
      
    • Příkaz PowerShellu

      # Use the reference to the new blueprint object from the previous steps
      New-AzBlueprintArtifact -Blueprint $blueprint -Name 'policyStorageTags' -ArtifactFile .\artifacts\policyStorageTags.json
      
  5. Přidejte šablonu do skupiny prostředků. Šablona TemplateFile ARM obsahuje normální komponentu JSON šablony. Šablona také znovu použije storageAccountTypeparametry , tagNamea tagValue podrobného plánu předáním každé šablony. Parametry podrobného plánu jsou k dispozici šabloně pomocí parametru TemplateParameterFilea uvnitř souboru JSON šablony, který pár klíč-hodnota použije k vložení hodnoty. Názvy parametrů podrobného plánu a šablony můžou být stejné.

    • Soubor šablony JSON ARM – \artifacts\templateStorage.json

      {
          "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
              "storageAccountTypeFromBP": {
                  "type": "string",
                  "metadata": {
                      "description": "Storage Account type"
                  }
              },
              "tagNameFromBP": {
                  "type": "string",
                  "defaultValue": "NotSet",
                  "metadata": {
                      "description": "Tag name from blueprint"
                  }
              },
              "tagValueFromBP": {
                  "type": "string",
                  "defaultValue": "NotSet",
                  "metadata": {
                      "description": "Tag value from blueprint"
                  }
              }
          },
          "variables": {
              "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
          },
          "resources": [{
              "type": "Microsoft.Storage/storageAccounts",
              "name": "[variables('storageAccountName')]",
              "apiVersion": "2016-01-01",
              "tags": {
                  "[parameters('tagNameFromBP')]": "[parameters('tagValueFromBP')]"
              },
              "location": "[resourceGroup().location]",
              "sku": {
                  "name": "[parameters('storageAccountTypeFromBP')]"
              },
              "kind": "Storage",
              "properties": {}
          }],
          "outputs": {
              "storageAccountSku": {
                  "type": "string",
                  "value": "[variables('storageAccountName')]"
              }
          }
      }
      
    • Soubor parametrů šablony JSON ARM – \artifacts\templateStorageParams.json

      {
          "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
              "storageAccountTypeFromBP": {
                  "value": "[parameters('storageAccountType')]"
              },
              "tagNameFromBP": {
                  "value": "[parameters('tagName')]"
              },
              "tagValueFromBP": {
                  "value": "[parameters('tagValue')]"
              }
          }
      }
      
    • Příkaz PowerShellu

      # Use the reference to the new blueprint object from the previous steps
      New-AzBlueprintArtifact -Blueprint $blueprint -Type TemplateArtifact -Name 'templateStorage' -TemplateFile .\artifacts\templateStorage.json -TemplateParameterFile .\artifacts\templateStorageParams.json -ResourceGroupName storageRG
      
  6. Přidejte přiřazení role do skupiny prostředků. Podobně jako u předchozí položky přiřazení role používá následující příklad identifikátor definice pro Owner roli a poskytuje jiný parametr než podrobný plán. V tomto příkladu Owner se používá předdefinovaná role s identifikátorem GUID 8e3af657-a8ff-443c-a75c-2fe8c4bcb635.

    • Soubor JSON – \artifacts\roleOwner.json

      {
          "kind": "roleAssignment",
          "properties": {
              "resourceGroup": "storageRG",
              "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
              "principalIds": "[parameters('owners')]"
          }
      }
      
    • Příkaz PowerShellu

      # Use the reference to the new blueprint object from the previous steps
      New-AzBlueprintArtifact -Blueprint $blueprint -Name 'roleOwner' -ArtifactFile .\artifacts\roleOwner.json
      

Publikování podrobného plánu

Teď, když jste do podrobného plánu přidali artefakty, je čas ho publikovat. Publikování zpřístupní podrobný plán pro přiřazení k předplatnému.

# Use the reference to the new blueprint object from the previous steps
Publish-AzBlueprint -Blueprint $blueprint -Version '{BlueprintVersion}'

Hodnota {BlueprintVersion} je řetězec písmen, číslic a pomlček (bez mezer nebo jiných speciálních znaků). Maximální délka je 20 znaků. Použijte něco jedinečného a informativního, například v20180622-135541.

Přiřazení podrobného plánu

Po publikování podrobného plánu pomocí PowerShellu je možné ho přiřadit předplatnému. Přiřaďte podrobný plán, který jste vytvořili, k jednomu z předplatných v hierarchii skupin pro správu. Pokud se podrobný plán uloží do předplatného, můžete ho přiřadit jenom k ho. Parametr Blueprint určuje podrobný plán, který se má přiřadit. Pokud chcete zadat nameparametry , , location, identitylocka blueprint parametry, použijte odpovídající parametry PowerShellu v rutině New-AzBlueprintAssignment nebo je zadejte do souboru JSON parametruAssignmentFile.

  1. Spusťte nasazení podrobného plánu tím, že ho přiřadíte k předplatnému. Vzhledem k tomu, že parametry contributors owners vyžadují udělení přiřazení role pole objectIds objektů zabezpečení, použijte rozhraní Azure Active Directory Graph API ke shromažďování objectIds informací o použití ve AssignmentFile vašich vlastních uživatelích, skupinách nebo instančních objektech.

    • Soubor JSON – blueprintAssignment.json

      {
          "properties": {
              "blueprintId": "/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint",
              "resourceGroups": {
                  "storageRG": {
                      "name": "StorageAccount",
                      "location": "eastus2"
                  }
              },
              "parameters": {
                  "storageAccountType": {
                      "value": "Standard_GRS"
                  },
                  "tagName": {
                      "value": "CostCenter"
                  },
                  "tagValue": {
                      "value": "ContosoIT"
                  },
                  "contributors": {
                      "value": [
                          "7be2f100-3af5-4c15-bcb7-27ee43784a1f",
                          "38833b56-194d-420b-90ce-cff578296714"
                      ]
                  },
                  "owners": {
                      "value": [
                          "44254d2b-a0c7-405f-959c-f829ee31c2e7",
                          "316deb5f-7187-4512-9dd4-21e7798b0ef9"
                      ]
                  }
              }
          },
          "identity": {
              "type": "systemAssigned"
          },
          "location": "westus"
      }
      
    • Příkaz PowerShellu

      # Use the reference to the new blueprint object from the previous steps
      New-AzBlueprintAssignment -Blueprint $blueprint -Name 'assignMyBlueprint' -AssignmentFile .\blueprintAssignment.json
      
    • Spravovaná identita přiřazená uživatelem

      Přiřazení podrobného plánu může také použít spravovanou identitu přiřazenou uživatelem. V tomto případě se identity část souboru přiřazení JSON změní následujícím způsobem. Nahraďte {tenantId}, {subscriptionId}a {yourRG}{userIdentity} ID tenanta, ID předplatného, názvem skupiny prostředků a názvem spravované identity přiřazené uživatelem.

      "identity": {
          "type": "userAssigned",
          "tenantId": "{tenantId}",
          "userAssignedIdentities": {
              "/subscriptions/{subscriptionId}/resourceGroups/{yourRG}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userIdentity}": {}
          }
      },
      

      Spravovaná identita přiřazená uživatelem může být v libovolném předplatném a skupině prostředků, ke které má uživatel přiřazení podrobného plánu oprávnění.

      Důležité

      Azure Blueprints nespravuje spravovanou identitu přiřazenou uživatelem. Uživatelé zodpovídají za přiřazení dostatečných rolí a oprávnění nebo přiřazení podrobného plánu selže.

Vyčištění prostředků

Podrobný plán můžete odebrat z předplatného. Odebrání se často provádí v případě, že už nepotřebujete prostředky artefaktů. Po odebrání podrobného plánu zůstanou přiřazené artefakty, které byly jeho součástí. Pokud chcete odebrat přiřazení podrobného plánu, použijte rutinu Remove-AzBlueprintAssignment :

assignMyBlueprint

Remove-AzBlueprintAssignment -Name 'assignMyBlueprint'

Další kroky

V tomto rychlém startu jste vytvořili, přiřadili a odebrali podrobný plán pomocí PowerShellu. Další informace o Azure Blueprints najdete v článku o životním cyklu podrobného plánu.