Principy zamykání prostředků v Azure Blueprints

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:

Vytváření konzistentních prostředí ve velkém měřítku je skutečně cenné pouze v případě, že existuje mechanismus pro zachování této konzistence. Tento článek vysvětluje, jak funguje uzamykání prostředků v Azure Blueprints. Pokud se chcete podívat na příklad uzamčení prostředků a použití přiřazení zamítnutí, podívejte se na kurz ochrany nových prostředků .

Poznámka:

Zámky prostředků nasazené službou Azure Blueprints se použijí jenom na prostředky bez rozšíření nasazené přiřazením podrobného plánu. Existující prostředky, například prostředky ve skupinách prostředků, které už existují, nemají přidané zámky.

Uzamykání režimů a stavů

Režim uzamčení se vztahuje na přiřazení podrobného plánu a má tři možnosti: Nezamknout, Jen pro čtení nebo Neodstraňovat. Režim uzamykání se konfiguruje během nasazování artefaktů během přiřazení podrobného plánu. Jiný režim uzamčení lze nastavit aktualizací přiřazení podrobného plánu. Režimy uzamčení se ale nedají změnit mimo Azure Blueprints.

Prostředky vytvořené artefakty v přiřazení podrobného plánu mají čtyři stavy: Není uzamčeno, Jen pro čtení, Nelze upravit nebo Odstranit nebo Nelze odstranit. Každý typ artefaktu může být ve stavu Není uzamčen. K určení stavu prostředku můžete použít následující tabulku:

Režim Typ prostředku artefaktu Stát Popis
Nezamknout * Není uzamčeno Prostředky nejsou chráněné službou Azure Blueprints. Tento stav se také používá pro prostředky přidané do artefaktu skupiny prostředků jen pro čtení nebo neodstraňovat z přiřazení podrobného plánu.
Jen pro čtení Skupina prostředků Nejde upravit nebo odstranit Skupina prostředků je jen pro čtení a všechny její vlastnosti, s výjimkou značek, nelze upravit. Nezamknuté prostředky je možné přidat, přesunout, změnit nebo odstranit z této skupiny prostředků.
Jen pro čtení Skupina prostředků, která není skupina prostředků Jen pro čtení S výjimkou značek zůstane prostředek nepotřebný a nelze ho odstranit ani upravit.
Neodstraňovat * Nelze odstranit Prostředky je možné změnit, ale není možné je odstranit. Nezamknuté prostředky je možné přidat, přesunout, změnit nebo odstranit z této skupiny prostředků.

Přepsání stavů uzamčení

Obvykle je možné, aby někdo, kdo má v předplatném odpovídající řízení přístupu na základě role v Azure (Azure RBAC), jako je role Vlastník, mohl měnit nebo odstraňovat jakýkoli prostředek. Tento přístup není případ, kdy Azure Blueprints použije uzamčení jako součást nasazeného přiřazení. Pokud bylo přiřazení nastaveno s možností Jen pro čtení nebo Neodstraňovat , ani vlastník předplatného nemůže u chráněného prostředku provést blokovanou akci.

Toto bezpečnostní opatření chrání konzistenci definovaného podrobného plánu a prostředí, které bylo navrženo k vytvoření před náhodným nebo programovým odstraněním nebo změnou.

Přiřazení ve skupině pro správu

Jedinou možností, jak zabránit vlastníkům předplatného v odebrání přiřazení podrobného plánu, je přiřadit podrobný plán skupině pro správu. V tomto scénáři mají oprávnění potřebná k odebrání přiřazení podrobného plánu jenom vlastníci skupiny pro správu.

Pokud chcete podrobný plán přiřadit ke skupině pro správu místo předplatného, volání rozhraní REST API bude vypadat takto:

PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{assignmentMG}/providers/Microsoft.Blueprint/blueprintAssignments/{assignmentName}?api-version=2018-11-01-preview

Skupina pro správu definovaná {assignmentMG} skupinou pro správu musí být buď v hierarchii skupin pro správu, nebo musí být stejnou skupinou pro správu, ve které je uložena definice podrobného plánu.

Text požadavku přiřazení podrobného plánu vypadá takto:

{
    "identity": {
        "type": "SystemAssigned"
    },
    "location": "eastus",
    "properties": {
        "description": "enforce pre-defined simpleBlueprint to this XXXXXXXX subscription.",
        "blueprintId": "/providers/Microsoft.Management/managementGroups/{blueprintMG}/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
        "scope": "/subscriptions/{targetSubscriptionId}",
        "parameters": {
            "storageAccountType": {
                "value": "Standard_LRS"
            },
            "costCenter": {
                "value": "Contoso/Online/Shopping/Production"
            },
            "owners": {
                "value": [
                    "johnDoe@contoso.com",
                    "johnsteam@contoso.com"
                ]
            }
        },
        "resourceGroups": {
            "storageRG": {
                "name": "defaultRG",
                "location": "eastus"
            }
        }
    }
}

Hlavní rozdíl v tomto textu požadavku a jeden přiřazený k předplatnému je properties.scope vlastnost. Tato požadovaná vlastnost musí být nastavená na předplatné, na které se přiřazení podrobného plánu vztahuje. Předplatné musí být přímým podřízeným objektem hierarchie skupin pro správu, kde je uloženo přiřazení podrobného plánu.

Poznámka:

Podrobný plán přiřazený k oboru skupiny pro správu stále funguje jako přiřazení podrobného plánu na úrovni předplatného. Jediným rozdílem je, kdy je přiřazení podrobného plánu uloženo, aby vlastníci předplatného odebrali přiřazení a přidružené zámky.

Odebrání stavů uzamčení

Pokud je nutné upravit nebo odstranit prostředek chráněný přiřazením, existují dva způsoby, jak to udělat.

  • Aktualizace přiřazení podrobného plánu do režimu uzamčení zámku
  • Odstranění přiřazení podrobného plánu

Po odebrání přiřazení se zámky vytvořené službou Azure Blueprints odeberou. Prostředek však zůstane za sebou a bude potřeba ho odstranit běžnými prostředky.

Jak fungují zámky podrobného plánu

Akce odepření přiřazení azure RBAC se použije u prostředků artefaktů během přiřazení podrobného plánu, pokud přiřazení vybrali možnost Jen pro čtení nebo Neodstraňovat. Akce zamítnutí se přidá spravovanou identitou přiřazení podrobného plánu a dá se odebrat jenom ze stejných prostředků artefaktů stejnou spravovanou identitou. Tato bezpečnostní opatření vynucuje mechanismus uzamčení a zabraňuje odebrání zámku podrobného plánu mimo Azure Blueprints.

Screenshot of the Access control (I A M) page and the Deny assignments tab for a resource group.

Vlastnosti přiřazení zamítnutí jednotlivých režimů jsou následující:

Režim Permissions.Actions Permissions.NotActions Objekty zabezpečení[i]. Typ ExcludePrincipals[i]. Id DoNotApplyToChildScopes
Jen pro čtení * */Číst
Microsoft.Authorization/locks/delete
Microsoft.Network/virtualNetwork/subnets/join/action
SystemDefined (Všichni) přiřazení podrobného plánu a uživatelem definované v vyloučenýchprincipalech Skupina prostředků – pravda; Prostředek – false
Neodstraňovat */Odstranit Microsoft.Authorization/locks/delete
Microsoft.Network/virtualNetwork/subnets/join/action
SystemDefined (Všichni) přiřazení podrobného plánu a uživatelem definované v vyloučenýchprincipalech Skupina prostředků – pravda; Prostředek – false

Důležité

Azure Resource Manager ukládá podrobnosti o přiřazení rolí do mezipaměti po dobu až 30 minut. V důsledku toho nemusí být přiřazení odepření akce odepření prostředků podrobného plánu okamžitě v plném účinku. Během této doby může být možné odstranit prostředek, který má být chráněn zámky podrobného plánu.

Vyloučení objektu zabezpečení z přiřazení zamítnutí

V některýchscénářch Tento krok se provádí v rozhraní REST API přidáním až pěti hodnot do pole vyloučenýchPrincipals v uzamčení vlastnosti při vytváření přiřazení. Následující definice přiřazení je příkladem textu požadavku, který obsahuje vyloučenéPrincipals:

{
  "identity": {
    "type": "SystemAssigned"
  },
  "location": "eastus",
  "properties": {
    "description": "enforce pre-defined simpleBlueprint to this XXXXXXXX subscription.",
    "blueprintId": "/providers/Microsoft.Management/managementGroups/{mgId}/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
    "locks": {
        "mode": "AllResourcesDoNotDelete",
        "excludedPrincipals": [
            "7be2f100-3af5-4c15-bcb7-27ee43784a1f",
            "38833b56-194d-420b-90ce-cff578296714"
        ]
    },
    "parameters": {
      "storageAccountType": {
        "value": "Standard_LRS"
      },
      "costCenter": {
        "value": "Contoso/Online/Shopping/Production"
      },
      "owners": {
        "value": [
          "johnDoe@contoso.com",
          "johnsteam@contoso.com"
        ]
      }
    },
    "resourceGroups": {
      "storageRG": {
        "name": "defaultRG",
        "location": "eastus"
      }
    }
  }
}

Vyloučení akce z přiřazení zamítnutí

Podobně jako u objektu zabezpečení přiřazení zamítnutí v přiřazení podrobného plánu můžete vyloučit konkrétní operace poskytovatele prostředků Azure. V rámci bloku properties.locks lze přidat vyloučené akce na stejném místě, kde jsou vyloučenéPrincipals:

"locks": {
    "mode": "AllResourcesDoNotDelete",
    "excludedPrincipals": [
        "7be2f100-3af5-4c15-bcb7-27ee43784a1f",
        "38833b56-194d-420b-90ce-cff578296714"
    ],
    "excludedActions": [
        "Microsoft.ContainerRegistry/registries/push/write",
        "Microsoft.Authorization/*/read"
    ]
},

I když vyloučenéPrincipals musí být explicitní, položky excludedActions mohou využít * pro porovnávání zástupných znaků operací poskytovatele prostředků.

Další kroky