Zásobníky nasazení (Preview)

Zásobník nasazení Azure je typ prostředku Azure, který umožňuje správu skupiny prostředků Azure jako atomické jednotky. Když se do zásobníku nasazení odešle soubor Bicep nebo šablona JSON ARM, definuje prostředky spravované zásobníkem. Pokud se odebere prostředek, který byl dříve součástí šablony, buď se odpojí nebo odstraní na základě zadaného chování actionOnUnmanage zásobníku nasazení. Podobně jako u jiných prostředků Azure je možné přístup ke zásobníku nasazení omezit pomocí řízení přístupu na základě role v Azure (Azure RBAC).

K vytvoření a aktualizaci zásobníku nasazení můžete společně se soubory Bicep využít Azure CLI, Azure PowerShell nebo Azure Portal. Tyto soubory Bicep se přeloží do šablon JSON ARM, které se pak nasadí jako objekt nasazení v zásobníku. Zásobník nasazení nabízí další možnosti nad rámec známých prostředků nasazení, které slouží jako nadmnožina těchto funkcí.

Microsoft.Resources/deploymentStacks je typ prostředku pro zásobníky nasazení. Skládá se z hlavní šablony, která může provádět 1:N aktualizací napříč rozsahy prostředků, které popisuje, a blokovat všechny nežádoucí změny těchto prostředků.

Při plánování nasazení a určení skupin prostředků, které by měly být součástí stejného zásobníku, je důležité zvážit životní cyklus správy těchto prostředků, včetně vytváření, aktualizace a odstranění. Předpokládejme například, že potřebujete zřídit některé testovací virtuální počítače pro různé aplikační týmy v různých oborech skupin prostředků. V tomto případě lze zásobník nasazení využít k vytvoření těchto testovacích prostředí a aktualizaci konfigurací testovacích virtuálních počítačů prostřednictvím následných aktualizací zásobníku nasazení. Po dokončení projektu může být nutné odebrat nebo odstranit všechny vytvořené prostředky, jako jsou testovací virtuální počítače. Pomocí zásobníku nasazení je možné spravované prostředky snadno odebrat zadáním příslušného příznaku odstranění. Tento zjednodušený přístup šetří čas během čištění prostředí, protože zahrnuje jednu aktualizaci prostředku zásobníku místo individuální úpravy nebo odebrání každého testovacího virtuálního počítače v různých oborech skupin prostředků.

Zásobníky nasazení vyžadují Azure PowerShell verze 10.1.0 nebo novější nebo Azure CLI verze 2.50.0 nebo novější.

Pokud chcete vytvořit první zásobník nasazení, projděte si rychlý start: vytvoření zásobníku nasazení.

Proč používat zásobníky nasazení?

Zásobníky nasazení poskytují následující výhody:

  • Zjednodušené zřizování a správa prostředků v různých oborech jako soudržná entita
  • Zabránění nežádoucím úpravám spravovaných prostředků prostřednictvím nastavení odepření
  • Efektivní vyčištění prostředí pomocí příznaků odstranění během aktualizací zásobníku nasazení
  • Využití standardních šablon, jako jsou Bicep, šablony ARM nebo specifikace šablon pro vaše zásobníky nasazení.

Známá omezení

  • Zásobník nespravuje implicitně vytvořené prostředky. Proto není možné žádná přiřazení zamítnutí ani vyčištění.
  • Zamítnutí přiřazení nepodporují značky.
  • Přiřazení odepření není podporováno v rámci oboru skupiny pro správu.
  • Zásobníky nasazení nemůžou odstranit tajné kódy trezoru klíčů. Pokud odebíráte tajné kódy trezoru klíčů ze šablony, nezapomeňte také spustit příkaz update/delete zásobníku nasazení s režimem odpojení.

Známé problémy

  • Odstranění skupin prostředků aktuálně obchází přiřazení zamítnutí. Při vytváření zásobníku nasazení v oboru skupiny prostředků soubor Bicep neobsahuje definici skupiny prostředků. I přes nastavení zamítnutí přiřazení je možné odstranit skupinu prostředků a její obsažený zásobník. Pokud je však zámek aktivní u jakéhokoli prostředku ve skupině, operace odstranění selže.
  • Citlivostní kontrola není dostupná ve verzi Preview.
  • Zásobník s vymezeným oborem skupiny pro správu je omezen na nasazení do jiné skupiny pro správu. Může se nasadit pouze do skupiny pro správu samotného zásobníku nebo do podřízeného předplatného.

Vytváření zásobníků nasazení

Prostředek zásobníku nasazení je možné vytvořit v oboru skupiny prostředků, předplatného nebo skupiny pro správu. Šablona předaná do zásobníku nasazení definuje prostředky, které se mají vytvořit nebo aktualizovat v cílovém oboru určeném pro nasazení šablony.

  • Zásobník v oboru skupiny prostředků může nasadit předanou šablonu do stejného oboru skupiny prostředků, ve kterém existuje zásobník nasazení.
  • Zásobník v oboru předplatného může nasadit předanou šablonu do oboru skupiny prostředků (pokud je zadáno) nebo stejného oboru předplatného, ve kterém existuje zásobník nasazení.
  • Zásobník v oboru skupiny pro správu může nasadit předanou šablonu do zadaného oboru předplatného.

Je důležité si uvědomit, že tam, kde existuje zásobník nasazení, je tedy přiřazení zamítnutí vytvořené s možností nastavení zamítnutí. Například vytvořením zásobníku nasazení v oboru předplatného, který nasadí šablonu do oboru skupiny prostředků a s režimem DenyDeleteodepřít nastavení , můžete snadno zřídit spravované prostředky pro zadanou skupinu prostředků a blokovat pokusy o odstranění těchto prostředků. Pomocí tohoto přístupu také zvýšíte zabezpečení zásobníku nasazení tím, že ho oddělíte na úrovni předplatného, a ne na úrovni skupiny prostředků. Toto oddělení zajišťuje, že vývojářské týmy, které pracují se zřízenými prostředky, budou mít k skupinám prostředků přístup pouze k viditelnosti a zápisu, zatímco zásobník nasazení zůstane izolovaný na vyšší úrovni. Tím se minimalizuje počet uživatelů, kteří můžou upravit zásobník nasazení a provádět změny přiřazení zamítnutí. Další informace najdete v tématu Ochrana spravovaného prostředku před odstraněním.

Příkazy pro vytváření zásobníku je také možné použít k aktualizaci zásobníků nasazení.

Vytvoření zásobníku nasazení v oboru skupiny prostředků:

New-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -DenySettingsMode "none"

Vytvoření zásobníku nasazení v oboru předplatného:

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentResourceGroupName "<resource-group-name>" `
  -DenySettingsMode "none"

Parametr DeploymentResourceGroupName určuje skupinu prostředků použitou k ukládání spravovaných prostředků. Pokud parametr není zadaný, spravované prostředky se ukládají v oboru předplatného.

Vytvoření zásobníku nasazení v oboru skupiny pro správu:

New-AzManagmentGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentSubscriptionId "<subscription-id>" `
  -DenySettingsMode "none"

Parametr deploymentSubscriptionId určuje předplatné použité k ukládání spravovaných prostředků. Pokud parametr není zadaný, spravované prostředky se ukládají do oboru skupiny pro správu.

Výpis zásobníků nasazení

Seznam prostředků zásobníku nasazení v oboru skupiny prostředků:

Get-AzResourceGroupDeploymentStack `
  -ResourceGroupName "<resource-group-name>"

Zobrazení seznamu prostředků zásobníku nasazení v oboru předplatného:

Get-AzSubscriptionDeploymentStack

Seznam prostředků zásobníku nasazení v oboru skupiny pro správu:

Get-AzManagementGroupDeploymentStack `
  -ManagementGroupId "<management-group-id>"

Aktualizace zásobníků nasazení

Pokud chcete aktualizovat zásobník nasazení, který může zahrnovat přidání nebo odstranění spravovaného prostředku, musíte provést změny v podkladových souborech Bicep. Po provedení změn máte dvě možnosti aktualizace zásobníku nasazení: spusťte příkaz update nebo spusťte příkaz create znovu.

Seznam spravovaných prostředků lze plně ovládat prostřednictvím vzoru návrhu infrastruktury jako kódu (IaC).

Použití příkazu Set

Aktualizace zásobníku nasazení v oboru skupiny prostředků:

Set-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -DenySettingsMode "none"

Aktualizace zásobníku nasazení v oboru předplatného:

Set-AzSubscriptionDeploymentStack `
   -Name "<deployment-stack-name>" `
   -Location "<location>" `
   -TemplateFile "<bicep-file-name>" `
   -DeploymentResourceGroupName "<resource-group-name>" `
  -DenySettingsMode "none"

Parametr DeploymentResourceGroupName určuje skupinu prostředků použitou k uložení prostředků zásobníku nasazení. Pokud nezadáte název skupiny prostředků, služba zásobníku nasazení za vás vytvoří novou skupinu prostředků.

Aktualizace zásobníku nasazení v oboru skupiny pro správu:

Set-AzManagmentGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentSubscriptionId "<subscription-id>" `
  -DenySettingsMode "none"

Použití příkazu Nový

Zobrazí se upozornění podobné následujícímu:

The deployment stack 'myStack' you're trying to create already exists in the current subscription/management group/resource group. Do you want to overwrite it? Detaching: resources, resourceGroups (Y/N)

Další informace najdete v tématu Vytváření zásobníků nasazení.

Řízení odpojení a odstranění

Odpojený prostředek (nebo nespravovaný prostředek) odkazuje na prostředek, který není sledován nebo spravován zásobníkem nasazení, ale stále existuje v Rámci Azure.

Pokud chcete Azure instruovat, aby odstranila nespravované prostředky, aktualizujte zásobník pomocí příkazu create stack jedním z následujících příznaků odstranění. Další informace najdete v tématu Vytvoření zásobníku nasazení.

  • DeleteAll: Používejte odstranění místo odpojení spravovaných prostředků a skupin prostředků.
  • DeleteResources: Používejte odstranění místo odpojení jenom pro spravované prostředky.
  • DeleteResourceGroups: Místo odpojení používejte odstranění pouze pro spravované skupiny prostředků. Použití je neplatné DeleteResourceGroups . DeleteResourceGroups musí být použity společně s DeleteResources.

Příklad:

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name" `
  -TemplateFile "<bicep-file-name>" `
  -DenySettingsMode "none" `
  -DeleteResourceGroups `
  -DeleteResources

Upozorňující

Při odstraňování skupin prostředků s vlastnostmi DeleteAll nebo DeleteResourceGroups se odstraní také spravované skupiny prostředků a všechny prostředky obsažené v nich.

Odstranění zásobníků nasazení

Pokud příkazy pro odstranění spustíte bez příznaků odstranění, nespravované prostředky se odpojí, ale neodstraní se. Pokud chcete odstranit nespravované prostředky, použijte následující přepínače:

  • DeleteAll: Odstraňte prostředky i skupiny prostředků.
  • DeleteResources: Odstraňte pouze prostředky.
  • DeleteResourceGroups: Odstraňte pouze skupiny prostředků.

I když zadáte odstranění všech přepínačů, pokud v rámci skupiny prostředků, ve které se nachází zásobník nasazení, existují nespravované prostředky a samotná skupina prostředků se neodstraní.

Odstranění prostředků zásobníku nasazení v oboru skupiny prostředků:

Remove-AzResourceGroupDeploymentStack `
  -name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  [-DeleteAll/-DeleteResourceGroups/-DeleteResources]

Odstranění prostředků zásobníku nasazení v oboru předplatného:

Remove-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  [-DeleteAll/-DeleteResourceGroups/-DeleteResources]

Odstranění prostředků zásobníku nasazení v oboru skupiny pro správu:

Remove-AzManagementGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ManagementGroupId "<management-group-id>" `
  [-DeleteAll/-DeleteResourceGroups/-DeleteResources]

Zobrazení spravovaných prostředků v zásobníku nasazení

Ve verzi Public Preview ještě nemá služba zásobníku nasazení grafické uživatelské rozhraní (GUI) na webu Azure Portal. Pokud chcete zobrazit spravované prostředky v zásobníku nasazení, použijte následující příkazy Azure PowerShellu nebo Azure CLI:

Zobrazení spravovaných prostředků v oboru skupiny prostředků:

(Get-AzResourceGroupDeploymentStack -Name "<deployment-stack-name>" -ResourceGroupName "<resource-group-name>").Resources

Zobrazení spravovaných prostředků v oboru předplatného:

(Get-AzSubscriptionDeploymentStack -Name "<deployment-stack-name>").Resources

Zobrazení spravovaných prostředků v oboru skupiny pro správu:

(Get-AzManagementGroupDeploymentStack -Name "<deployment-stack-name>" -ManagementGroupId "<management-group-id>").Resources

Přidání prostředků do zásobníku nasazení

Pokud chcete přidat spravovaný prostředek, přidejte definici prostředku do podkladových souborů Bicep a pak spusťte příkaz update nebo spusťte příkaz create znovu. Další informace najdete v tématu Aktualizace zásobníků nasazení.

Odstranění spravovaných prostředků ze zásobníku nasazení

Pokud chcete odstranit spravovaný prostředek, odeberte definici prostředku ze základních souborů Bicep a pak spusťte příkaz update nebo spusťte příkaz create znovu. Další informace najdete v tématu Aktualizace zásobníků nasazení.

Ochrana spravovaných prostředků před odstraněním

Při vytváření zásobníku nasazení je možné přiřadit ke spravovaným prostředkům konkrétní typ oprávnění, což brání jejich odstranění neoprávněnými objekty zabezpečení. Tato nastavení se označují jako nastavení zamítnutí. Zásobník chcete uložit do nadřazeného oboru.

Azure PowerShell obsahuje tyto parametry pro přizpůsobení přiřazení zamítnutí:

  • DenySettingsMode: Definuje operace, které jsou zakázány na spravovaných prostředcích, aby se chránily před neoprávněnými objekty zabezpečení, které se pokouší odstranit nebo aktualizovat. Toto omezení platí pro všechny uživatele, pokud explicitně nepodělíte přístup. Mezi hodnoty patří: None, DenyDeletea DenyWriteAndDelete.
  • DenySettingsApplyToChildScopes: Nastavení zamítnutí se použijí u vnořených prostředků ve spravovaných prostředcích.
  • DenySettingsExcludedAction: Seznam operací správy založených na rolích, které jsou vyloučené z nastavení zamítnutí. Je povoleno až 200 akcí.
  • DenySettingsExcludedPrincipal: Seznam ID objektu zabezpečení Microsoft Entra vyloučených z zámku. Je povoleno až pět objektů zabezpečení.

Použití nastavení zamítnutí v oboru skupiny prostředků:

New-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -DenySettingsMode "DenyDelete" `
  -DenySettingsExcludedAction "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

Použití nastavení zamítnutí v oboru předplatného:

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DenySettingsMode "DenyDelete" `
  -DenySettingsExcludedAction "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

Pomocí parametru DeploymentResourceGroupName zadejte název skupiny prostředků, ve které se vytvoří zásobník nasazení. Pokud není zadaný obor, použije obor zásobníku nasazení.

Použití nastavení zamítnutí v oboru skupiny pro správu:

New-AzManagmentGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DenySettingsMode "DenyDelete" `
  -DenySettingsExcludedActions "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

Pomocí parametru DeploymentSubscriptionId zadejte ID předplatného, ve kterém se vytvoří zásobník nasazení. Pokud není zadaný obor, použije obor zásobníku nasazení.

Odpojení spravovaných prostředků ze zásobníku nasazení

Ve výchozím nastavení se zásobníky nasazení odpojí a neodstraňují nespravované prostředky, pokud už nejsou obsažené v oboru správy zásobníku. Další informace najdete v tématu Aktualizace zásobníků nasazení.

Export šablon ze zásobníků nasazení

Prostředky můžete exportovat ze zásobníku nasazení do výstupu JSON. Výstup můžete převést do souboru.

Export zásobníku nasazení v oboru skupiny prostředků:

Save-AzResourceGroupDeploymentStack `
   -Name '<deployment-stack-name>' `
   -ResourceGroupName '<resource-group-name>' `

Export zásobníku nasazení v oboru předplatného:

Save-AzSubscriptionDeploymentStack `
  -name '<deployment-stack-name>'

Export zásobníku nasazení v oboru skupiny pro správu:

Save-AzManagmentGroupDeploymentStack `
  -Name '<deployment-stack-name>' `
  -ManagementGroupId '<management-group-id>'

Další kroky

Pokud chcete projít rychlý start, podívejte se na rychlý start: Vytvoření zásobníku nasazení.