Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zásobník nasazení Azure je zdroj, který umožňuje spravovat skupinu prostředků Azure jako jednu soudržnou jednotku. Když odešlete soubor Bicep nebo šablonu JSON Azure Resource Manageru (šablona JSON ARM) do zásobníku nasazení, definujete prostředky, které zásobník spravuje. Pokud odeberete prostředek ze šablony, může být odpojen nebo odstraněn na základě zadaného actionOnUnmanage chování zásobníku nasazení. Přístup ke zásobníku nasazení můžete omezit pomocí řízení přístupu na základě role v Azure (Azure RBAC), podobně jako u jiných prostředků Azure.
K vytvoření a aktualizaci zásobníku nasazení použijte Azure CLI, Azure PowerShell nebo Azure portal se soubory Bicep. Systém tyto soubory Bicep převádí do šablon JSON ARM a nasadí je jako nasazovací objekt. Zásobník nasazení nabízí další možnosti nad rámec známých prostředků nasazení a je nadmnožinou těchto možností.
Microsoft.Resources/deploymentStacks
je typ prostředku pro nasazovací zásobníky. Skládá se z hlavní šablony, která může provádět aktualizace na více prostředků v různých oblastech, které popisuje, a blokovat 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, zvažte životní cyklus správy těchto prostředků, včetně vytvoření, aktualizace a odstranění. Můžete například potřebovat 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ů. Zásobník nasazení můžete použí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 možná budete muset odebrat nebo odstranit všechny prostředky, které jste vytvořili, například testovací virtuální počítače. Použijte nasazovací balík a zadejte příslušný příznak pro odstranění k odebrání spravovaných prostředků. Tento zjednodušený přístup šetří čas během čištění prostředí, protože zahrnuje jednu aktualizaci zdroje 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ů.
Nasazovací zásobníky vyžadují Azure PowerShell verze 12.0.0 nebo novější nebo Azure CLI verze 2.61.0 nebo novější.
Pokud chcete vytvořit první zásobník nasazení, projděte si Quickstart: vytvoření zásobníku nasazení.
Proč používat nasazovací sady?
Sady pro nasazení poskytují následující výhody:
- Optimalizované zajišťování a správa zdrojů napříč různými oblastmi jako sjednocený celek.
- Prevence nežádoucích úprav spravovaných prostředků pomocí nastavení pro odmítnutí
- Efektivní vyčištění prostředí pomocí odstraňovacích příznaků během aktualizací nasazovacího zásobníku.
- Použití standardních šablon, jako jsou šablony Bicep, ARM nebo specifikace šablon, pro vaše nasazovací zásobníky.
Známá omezení
- Existuje omezení na 800 zásobníků nasazení, které lze vytvořit v rámci jednoho rozsahu.
- V libovolném rozsahu může existovat maximálně 2 000 zamítnutí přiřazení.
- Zásobník nasazení nespravuje implicitně vytvořené prostředky. Proto pro tyto prostředky nemůžete použít odepření přiřazení ani vyčištění.
- Odepřená přiřazení nepodporují značky.
- Zamítací přiřazení nejsou podporována v oboru řídicí skupiny. Jsou však podporovány ve zásobníku skupin pro správu, pokud je nasazení nasměrováno na obor předplatného.
- Zásobníky nasazení nemůžou odstranit tajné kódy trezoru klíčů. Pokud odebíráte tajemství z klíčového trezoru ze šablony, nezapomeňte také spustit příkaz pro aktualizaci nebo odstranění nasazovacího zásobníku v režimu odpojení.
Známé problémy
- Odstraňování skupin prostředků aktuálně obchází omezující přiřazení. Když vytvoříte zásobník nasazení v rámci oboru skupiny prostředků, soubor Bicep neobsahuje definici této skupiny prostředků. I přesto, že je aktivní nastavení pro zamítnutí přiřazení, můžete odstranit skupinu prostředků a její obsažený zásobník. Pokud je však zámek aktivní u libovolného prostředku v rámci skupiny, operace odstranění selže.
- Podpora What-if ještě není k dispozici.
- Zásobník s oborem skupiny pro správu se nedá nasadit do jiné skupiny pro správu. Lze ji nasadit pouze do skupiny pro správu samotného zásobníku nebo do podřízeného předplatného.
- Nápověda k příkazu Azure PowerShell zobrazuje hodnotu
DeleteResourcesAndResourcesGroups
pro přepínačActionOnUnmanage
. Když použijete tuto hodnotu, příkaz odpojí spravované prostředky a skupiny prostředků. Tato hodnota se odebere v další aktualizaci. Tuto hodnotu nepoužívejte. - V některých případech můžou rutiny New and Set Azure PowerShell vracet obecnou chybu ověření šablony, která není jasně použitelná. Tato chyba bude opravena v příští verzi. Pokud chyba není jasná, spusťte rutinu v režimu ladění a zobrazte podrobnější chybu v nezpracované odpovědi.
- Poskytovatel Microsoft Graphu nepodporuje nasazení zásobníků.
Předdefinované role
Varování
Vynucování oprávnění RBAC Microsoft.Resources/deploymentStacks/manageDenySetting/action se zavádí napříč oblastmi, včetně cloudů pro státní správu.
Existují dvě vestavěné role pro nasazovací zásobník.
- Přispěvatel služby Azure Deployment Stack: Uživatelé můžou spravovat zásobníky nasazení, ale nesmí vytvářet ani odstraňovat zamítnutá přiřazení v rámci zásobníků nasazení.
- Vlastník služby Azure Deployment Stack: Uživatelé můžou spravovat zásobníky nasazení, včetně těch uživatelů s přiřazením zamítnutí.
Vytvořit nasazovací zásobníky
Prostředek zásobníku nasazení můžete vytvořit v oboru skupiny prostředků, předplatného nebo skupiny pro správu. Šablona, kterou poskytujete se zásobníkem nasazení, definuje prostředky, které se mají vytvořit nebo aktualizovat v cílovém oboru.
- Zásobník v oboru skupiny prostředků může nasadit šablonu do stejné skupiny prostředků, ve které existuje zásobník nasazení.
- Zásobník na úrovni předplatného může nasadit šablonu do skupiny prostředků nebo do stejného předplatného, které obsahuje zásobník nasazení.
- Zásobník v oboru skupiny pro správu může šablonu nasadit do předplatného.
Je důležité si uvědomit, že pokud existuje zásobník nasazení, také je vytvořeno přiřazení zamítnutí s funkcí 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 DenyDelete
odepří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ů. Tento přístup vám pomůže vylepšit zabezpečení zásobníku nasazení tím, že ho rozdělíte na úrovni předplatného místo na úrovni skupiny prostředků. Toto oddělení zajišťuje, že vývojářské týmy, které pracují se zřízenými prostředky, mají k skupinám prostředků jenom přehled a přístup k zápisu. Nasazovací platforma zůstává izolovaná na vyšší úrovni. Tato konfigurace minimalizuje počet uživatelů, kteří mohou upravovat nasazovací zásobník a provádět změny v přiřazení zamítnutí. Další informace najdete v tématu Ochrana spravovaného prostředku před odstraněním.
K aktualizaci zásobníků nasazení můžete použít také příkazy create-stack.
Chcete-li vytvořit implementační zásobník v rámci rozsahu skupiny prostředků:
New-AzResourceGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-ResourceGroupName "<resource-group-name>" `
-TemplateFile "<bicep-file-name>" `
-ActionOnUnmanage "detachAll" `
-DenySettingsMode "none"
Pro vytvoření stacku nasazení v rámci předplatného:
New-AzSubscriptionDeploymentStack `
-Name "<deployment-stack-name>" `
-Location "<location>" `
-TemplateFile "<bicep-file-name>" `
-DeploymentResourceGroupName "<resource-group-name>" `
-ActionOnUnmanage "detachAll" `
-DenySettingsMode "none"
Parametr DeploymentResourceGroupName
určuje skupinu prostředků použitou k ukládání spravovaných prostředků. Pokud parametr nezadáte, spravované prostředky se uloží do oboru předplatného.
Chcete-li vytvořit nasazovací stack v rámci skupiny pro správu:
New-AzManagementGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-Location "<location>" `
-TemplateFile "<bicep-file-name>" `
-DeploymentSubscriptionId "<subscription-id>" `
-ActionOnUnmanage "detachAll" `
-DenySettingsMode "none"
Parametr deploymentSubscriptionId
určuje předplatné použité k ukládání spravovaných prostředků. Pokud parametr nezadáte, spravované prostředky se uloží do oboru skupiny pro správu.
Seznam nasazovacích sad
Pro seznam prostředků zásobníku nasazení v rámci 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í, může to zahrnovat přidání nebo odstranění spravovaného prostředku, a proto musíte provést změny v podkladových souborech Bicep. Jakmile provedete úpravy, můžete zásobník nasazení aktualizovat spuštěním příkazu update nebo opětovným spuštěním příkazu create.
Vzor návrhu infrastruktury jako kódu poskytuje úplnou kontrolu nad seznamem spravovaných prostředků.
Použití příkazu Set
Aktualizovat zásobník nasazení v rámci skupiny prostředků:
Set-AzResourceGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-ResourceGroupName "<resource-group-name>" `
-TemplateFile "<bicep-file-name>" `
-ActionOnUnmanage "detachAll" `
-DenySettingsMode "none"
Aktualizovat zásobník nasazení v rámci předplatného:
Set-AzSubscriptionDeploymentStack `
-Name "<deployment-stack-name>" `
-Location "<location>" `
-TemplateFile "<bicep-file-name>" `
-DeploymentResourceGroupName "<resource-group-name>" `
-ActionOnUnmanage "detachAll" `
-DenySettingsMode "none"
Parametr DeploymentResourceGroupName
určuje, kterou skupinu prostředků se použije k uložení zdrojů 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ů.
Pro aktualizaci instalačního zásobníku v rámci skupiny pro správu:
Set-AzManagementGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-Location "<location>" `
-TemplateFile "<bicep-file-name>" `
-DeploymentSubscriptionId "<subscription-id>" `
-ActionOnUnmanage "detachAll" `
-DenySettingsMode "none"
Použijte příkaz 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í nasazení zásobníků.
Správa odpojení a odstranění
Odpojený prostředek (nebo nespravovaný prostředek) odkazuje na prostředek, který zásobník nasazení nesleduje ani nespravuje, ale stále existuje v rámci Azure.
Pokud chcete Azure instruovat, aby odstranila nespravované prostředky, aktualizujte zásobník příkazem create stack a zahrňte přepínač ActionOnUnmanage
. Další informace najdete v tématu Vytvoření zásobníku pro nasazení.
Pomocí přepínače ActionOnUnmanage
můžete definovat, co se stane s prostředky, které již nejsou spravovány po aktualizaci nebo odstranění zásobníku. Povolené hodnoty jsou následující:
-
deleteAll
: Místo odpojení použijte odstranění pro spravované prostředky a skupiny prostředků. -
deleteResources
: Používejte smazání místo odpojení pouze pro spravované prostředky. -
detachAll
: Odpojte spravované prostředky a skupiny prostředků.
Příklad:
New-AzSubscriptionDeploymentStack `
-Name "<deployment-stack-name" `
-TemplateFile "<bicep-file-name>" `
-DenySettingsMode "none" `
-ActionOnUnmanage "deleteAll"
Varování
Při odstraňování skupin prostředků s nastaveným action-on-unmanage
deleteAll
přepínačem odstraníte spravované skupiny prostředků a všechny prostředky, které jsou v nich obsažené.
Zpracování chyby zásobníku mimo synchronizaci
Při aktualizaci nebo odstranění nasazovacího zásobníku se může zobrazit následující chyba "zásobník není synchronizován", která značí, že seznam prostředků zásobníku není správně synchronizovaný.
The deployment stack '{0}' might not have an accurate list of managed resources. To prevent resources from being accidentally deleted, check that the managed resource list doesn't have any additional values. If there is any uncertainty, it's recommended to redeploy the stack with the same template and parameters as the current iteration. To bypass this warning, specify the 'BypassStackOutOfSyncError' flag.
Seznam prostředků můžete získat z webu Azure Portal nebo znovu nasadit aktuálně nasazený soubor Bicep se stejnými parametry. Výstup zobrazuje spravované prostředky.
...
Resources: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk
Po kontrole a ověření seznamu prostředků v zásobníku spusťte příkaz znovu s přepínačem BypassStackOutOfSyncError
v Azure PowerShellu (nebo bypass-stack-out-of-sync-error
v Azure CLI). Tento přepínač použijte až po důkladné kontrole seznamu prostředků v zásobníku. Ve výchozím nastavení tento přepínač nepoužívejte.
Odstranit nasazovací zásobníky
Přepínač ActionOnUnmanage
definuje akci na prostředky, které už nejsou spravovány. Přepínač má následující hodnoty:
-
DeleteAll
: Odstraňte prostředky i skupiny zdrojů. -
DeleteResources
: Odstraňte pouze prostředky. -
DetachAll
: Odpojte zdroje.
I když zadáte přepínač pro smazání všeho, nespravované prostředky ve skupině prostředků, kde se zásobník nasazení nachází, zabraňují odstranění jak nespravovaných prostředků, tak samotné skupiny prostředků.
Chcete-li odstranit prostředky deployment stack v rámci skupiny prostředků:
Remove-AzResourceGroupDeploymentStack `
-name "<deployment-stack-name>" `
-ResourceGroupName "<resource-group-name>" `
-ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"
Odstranění prostředků zásobníku nasazení v oboru předplatného:
Remove-AzSubscriptionDeploymentStack `
-Name "<deployment-stack-name>" `
-ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"
Chcete-li odstranit prostředky zásobníku nasazení na úrovni skupiny pro správu:
Remove-AzManagementGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-ManagementGroupId "<management-group-id>" `
-ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"
Prohlédněte si spravované prostředky ve stohu nasazení
Služba pro nasazení stacku zatím nemá grafické uživatelské rozhraní (GUI) v portálu Azure. Pokud chcete zobrazit spravované prostředky v zásobníku nasazení, použijte následující příkazy Azure PowerShellu nebo Azure CLI:
Chcete-li zobrazit spravované prostředky v rámci 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
Chcete-li zobrazit spravované prostředky na úrovni skupiny pro správu:
(Get-AzManagementGroupDeploymentStack -Name "<deployment-stack-name>" -ManagementGroupId "<management-group-id>").Resources
Přidejte prostředky do nasazovacího zásobníku
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 nasazovacích zásobníků.
Odstranění spravovaných prostředků z nasazovacího zásobníku
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 nasazovacích zásobníků.
Ochrana spravovaných prostředků
Ke spravovaným prostředkům zásobníku nasazení můžete přiřadit konkrétní oprávnění, aby bylo zabráněno neoprávněným entitám v jejich odstranění nebo aktualizaci. Tato oprávnění se označují jako nastavení zamítnutí. Ukládat zásobníky v nadřazené oblasti. Pokud například chcete chránit prostředky v předplatném, umístěte zásobník do nadřazeného oboru, což je bezprostřední nadřazená skupina pro správu.
Nastavení zamítnutí se vztahuje pouze na operace řídicí roviny , nikoli na operace roviny dat. Například vytvoříte účty úložiště a trezory klíčů prostřednictvím řídicí roviny, což znamená, že je spravuje nasazovací zásobník. Vytvoříte však podřízené prostředky, jako jsou tajné kódy nebo kontejnery objektů blob, prostřednictvím roviny dat, což znamená, že zásobník nasazení je nemůže spravovat.
Nastavení zamítnutí se vztahuje pouze na explicitně vytvořené prostředky, nikoli implicitně vytvořené prostředky. Spravovaný cluster AKS například vytvoří několik dalších služeb, které ho podporují, například virtuální počítač. V tomto případě, protože virtuální počítač není definován v souboru Bicep a je prostředkem vytvořeným implicitně, nepodléhá nastavením odmítnutí pro zásobník nasazení.
Poznámka:
Nejnovější verze vyžaduje konkrétní oprávnění v rozsahu zásobníku pro:
- Vytvořte nebo aktualizujte nasazovací zásobník a nastavte nastavení zamítnutí na jinou hodnotu než
None
. - Aktualizujte nebo odstraňte nasazovací zásobník s nastavením zamítnutí, které má jinou hodnotu než
None
.
Použijte nasazovací stack vestavěné role k udělení oprávnění.
Azure PowerShell obsahuje tyto parametry pro přizpůsobení přiřazení odepření:
-
DenySettingsMode
: Definuje operace, které jsou zakázány na spravovaných prostředcích, aby se ochránily před neoprávněnými bezpečnostními entitami, které se pokoušejí je odstranit nebo aktualizovat. Toto omezení platí pro všechny uživatele, pokud explicitně nezadáte přístup. Mezi hodnoty patří:None
,DenyDelete
aDenyWriteAndDelete
. -
DenySettingsApplyToChildScopes
: Pokud je zadáno, nastavení režimu zákazu se také vztahuje na podřízený rozsah spravovaných prostředků. Například soubor Bicep definuje prostředek Microsoft.Sql/servers (nadřazený) a prostředek Microsoft.Sql/servers/databases (podřízený). Pokud vytvoříte sadu nasazení pomocí souboru Bicep s aktivním nastavenímDenySettingsApplyToChildScopes
a nastavenímDenySettingsMode
naDenyWriteAndDelete
, nemůžete do zdroje Microsoft.Sql/servers nebo zdroje Microsoft.Sql/servers/databases přidat žádné další podřízené zdroje. -
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 identifikátorů hlavních objektů Microsoft Entra vyjmutých ze zámku. Je povoleno až pět vedoucích osobností.
Chcete-li uplatnit nastavení zamítnutí na úrovni skupiny prostředků:
New-AzResourceGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-ResourceGroupName "<resource-group-name>" `
-TemplateFile "<bicep-file-name>" `
-ActionOnUnmanage "detachAll" `
-DenySettingsMode "denyDelete" `
-DenySettingsExcludedAction "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
-DenySettingsExcludedPrincipal "<object-id>,<object-id>"
Chcete-li použít nastavení zamítnutí v oboru předplatného:
New-AzSubscriptionDeploymentStack `
-Name "<deployment-stack-name>" `
-Location "<location>" `
-TemplateFile "<bicep-file-name>" `
-ActionOnUnmanage "detachAll" `
-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é bude vytvořen nasazovací zásobník. Pokud není specifikován žádný rozsah, používá se rozsah zásobníku nasazení.
Pro aplikaci nastavení zamítnutí na úrovni skupiny pro správu:
New-AzManagementGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-Location "<location>" `
-TemplateFile "<bicep-file-name>" `
-ActionOnUnmanage "detachAll" `
-DenySettingsMode "denyDelete" `
-DenySettingsExcludedActions "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
-DenySettingsExcludedPrincipal "<object-id>,<object-id>"
Pomocí parametru DeploymentSubscriptionId
zadejte ID předplatného, pro které se vytvoří zásobník nasazení. Pokud není specifikován žádný rozsah, používá se rozsah zásobníku nasazení.
Odpojte spravované prostředky z nasazovacího balíku
Ve výchozím nastavení se zásobníky nasazení odpojí a neodstraní nespravované prostředky, jakmile už nejsou zahrnuty v oboru správy zásobníku. Další informace najdete v tématu Aktualizace nasazovacích zásobníků.
Export šablon ze sad nasazení
Prostředky můžete exportovat ze zásobníku nasazení do JSON výstupu. Výstup můžete převést do souboru.
Chcete-li exportovat zásobník nasazení v rámci skupiny prostředků:
Save-AzResourceGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-ResourceGroupName "<resource-group-name>" `
Pro export nasazení sady na úrovni předplatného:
Save-AzSubscriptionDeploymentStack `
-name "<deployment-stack-name>"
Exportujte zásobník nasazení v rozsahu skupiny pro správu:
Save-AzManagementGroupDeploymentStack `
-Name "<deployment-stack-name>" `
-ManagementGroupId "<management-group-id>"
Další kroky
Pro rychlé zahájení nasazení pomocí Bicep viz téma Rychlý start: Vytvoření a nasazení zásobníku nasazení pomocí Bicep.