Vysvětlení uzamykání prostředků v semodrotiskych AzureUnderstand resource locking in Azure Blueprints

Vytváření konzistentních prostředí se škálováním je skutečně cenné jenom v případě, že existuje mechanismus pro zachování této konzistence.The creation of consistent environments at scale is only truly valuable if there's a mechanism to maintain that consistency. Tento článek vysvětluje, jak funguje uzamykání prostředků v Azure modrotisky.This article explains how resource locking works in Azure Blueprints. Příklad uzamčení prostředků a použití _přiřazení odepřít_najdete v kurzu ochrana nových prostředků .To see an example of resource locking and application of deny assignments, see the protecting new resources tutorial.

Režimy zamykání a stavyLocking modes and states

Režim uzamykání se vztahuje na přiřazení podrobného plánu a má tři možnosti: nezamknout, jen pro čtenínebo neodstraňovat.Locking Mode applies to the blueprint assignment and it has three options: Don't Lock, Read Only, or Do Not Delete. Režim uzamykání se konfiguruje během nasazování artefaktů během přiřazení podrobného plánu.The locking mode is configured during artifact deployment during a blueprint assignment. V případě, že aktualizujete přiřazení podrobného plánu, lze nastavit jiný režim uzamykání.A different locking mode can be set by updating the blueprint assignment. Blokovací režimy se ale nedají změnit mimo plány.Locking modes, however, can't be changed outside of Blueprints.

Prostředky vytvořené artefakty v přiřazení podrobného plánu mají čtyři stavy: Neuzamčeno, jen pro čtení, nelze je upravit nebo odstranitnebo nelze odstranit.Resources created by artifacts in a blueprint assignment have four states: Not Locked, Read Only, Cannot Edit / Delete, or Cannot Delete. Každý typ artefaktu může být ve stavu Neuzamčeno .Each artifact type can be in the Not Locked state. K určení stavu prostředku lze použít následující tabulku:The following table can be used to determine the state of a resource:

ModeMode Typ prostředku artefaktuArtifact Resource Type StavState PopisDescription
NezamknoutDon't Lock * NeuzamčenoNot Locked Prostředky nejsou chráněny pomocí modrotisky.Resources aren't protected by Blueprints. Tento stav se používá také pro prostředky přidané do pouze pro čtení nebo neodstraňují artefakt skupiny prostředků z vnějšího přiřazení podrobného plánu.This state is also used for resources added to a Read Only or Do Not Delete resource group artifact from outside a blueprint assignment.
Jen pro čteníRead Only Skupina prostředkůResource group Nelze upravit/odstranitCannot Edit / Delete Skupina prostředků je jen pro čtení a značky ve skupině prostředků nejde upravovat.The resource group is read only and tags on the resource group can't be modified. Do této skupiny prostředků se dají přidat, přesunout, změnit nebo odstranit prostředky, které nejsou zamčené .Not Locked resources can be added, moved, changed, or deleted from this resource group.
Jen pro čteníRead Only Skupina bez prostředkůNon-resource group Jen pro čteníRead Only Prostředek se nedá změnit jakýmkoli způsobem – bez změn a nedá se odstranit.The resource can't be altered in any way -- no changes and it can't be deleted.
NeodstraňovatDo Not Delete * Nejde odstranitCannot Delete Prostředky je možné změnit, ale nelze je odstranit.The resources can be altered, but can't be deleted. Do této skupiny prostředků se dají přidat, přesunout, změnit nebo odstranit prostředky, které nejsou zamčené .Not Locked resources can be added, moved, changed, or deleted from this resource group.

Přepsání stavů uzamčeníOverriding locking states

Pro někoho, kdo má v předplatném příslušné role (RBAC), je obvykle možné, jako je role vlastník, aby bylo možné upravovat nebo odstraňovat jakékoli prostředky.It's typically possible for someone with appropriate role-based access control (RBAC) on the subscription, such as the 'Owner' role, to be allowed to alter or delete any resource. Tento přístup se netýká případu, kdy se při nasazení v rámci nasazeného přiřazení používá jako součást zámky.This access isn't the case when Blueprints applies locking as part of a deployed assignment. Pokud bylo přiřazení nastaveno s možností jen pro čtení nebo neodstraňovat , není ani vlastník předplatného, který může u chráněného prostředku provést akci zablokování.If the assignment was set with the Read Only or Do Not Delete option, not even the subscription owner can perform the blocked action on the protected resource.

Tato míra zabezpečení chrání konzistenci definovaného podrobného plánu a prostředí, které bylo navrženo pro vytvoření z náhodného nebo neprogramového odstranění nebo změny.This security measure protects the consistency of the defined blueprint and the environment it was designed to create from accidental or programmatic deletion or alteration.

Odebírají se stavy zamykání.Removing locking states

Pokud bude nutné upravit nebo odstranit prostředek chráněný přiřazením, existují dva způsoby, jak to provést.If it becomes necessary to modify or delete a resource protected by an assignment, there are two ways to do so.

  • Aktualizuje se přiřazení podrobného plánu na režim uzamčení bez zámku .Updating the blueprint assignment to a locking mode of Don't Lock
  • Odstranit přiřazení podrobného plánuDelete the blueprint assignment

Po odebrání přiřazení se odeberou zámky vytvořené pomocí modrotisky.When the assignment is removed, the locks created by Blueprints are removed. Prostředek je však ponechán na pozadí a je třeba jej odstranit běžným způsobem.However, the resource is left behind and would need to be deleted through normal means.

Jak podrobný plán funguje zámkyHow blueprint locks work

Pokud přiřazení vybere možnost jen pro čtení nebo neodstraní , je u prostředků artefaktů při přiřazení podrobného plánu použita akce odepřít odmítnutí přiřazení .An RBAC deny assignments deny action is applied to artifact resources during assignment of a blueprint if the assignment selected the Read Only or Do Not Delete option. Akce odepřít je přidána spravovanou identitou přiřazení podrobného plánu a lze ji odebrat pouze z prostředků artefaktu pomocí stejné spravované identity.The deny action is added by the managed identity of the blueprint assignment and can only be removed from the artifact resources by the same managed identity. Tato míra zabezpečení vynutila blokovací mechanizmus a zabraňuje odebrání zámku podrobného plánu mimo plány.This security measure enforces the locking mechanism and prevents removing the blueprint lock outside Blueprints.

Přiřazení podrobného plánu k zamítnutí ve skupině prostředků

Vlastnosti přiřazení odepřít pro každý režim jsou následující:The deny assignment properties of each mode are as follows:

ModeMode Oprávnění. akcePermissions.Actions Oprávnění. NotActionsPermissions.NotActions Principals[i].TypePrincipals[i].Type ExcludePrincipals [i]. ÚčetExcludePrincipals[i].Id DoNotApplyToChildScopesDoNotApplyToChildScopes
Jen pro čteníRead Only * */Read*/read SystemDefined (všichni)SystemDefined (Everyone) přiřazení podrobného plánu a uživatelsky definované v excludedPrincipalsblueprint assignment and user-defined in excludedPrincipals Skupina prostředků – pravda; Prostředek – NEPRAVDAResource group - true; Resource - false
NeodstraňovatDo Not Delete */DELETE*/delete SystemDefined (všichni)SystemDefined (Everyone) přiřazení podrobného plánu a uživatelsky definované v excludedPrincipalsblueprint assignment and user-defined in excludedPrincipals Skupina prostředků – pravda; Prostředek – NEPRAVDAResource group - true; Resource - false

Důležité

Azure Resource Manager ukládá do mezipaměti Podrobnosti přiřazení role po dobu až 30 minut.Azure Resource Manager caches role assignment details for up to 30 minutes. V důsledku toho nemusí být přiřazení zamítnutí akcí Odepřít u prostředků podrobného plánu okamžitě platit.As a result, deny assignments deny action's on blueprint resources may not immediately be in full effect. Během této doby může být možné odstranit prostředek určený k ochraně pomocí zámků podrobného plánu.During this period of time, it might be possible to delete a resource intended to be protected by blueprint locks.

Vyloučení objektu zabezpečení z přiřazení zamítnutíExclude a principal from a deny assignment

V některých scénářích návrhu nebo zabezpečení může být nutné vyřadit objekt zabezpečení z přiřazení zamítnutí , které přiřazení podrobného plánu vytvoří.In some design or security scenarios, it may be necessary to exclude a principal from the deny assignment the blueprint assignment creates. To se provádí v REST API přidáním až pěti hodnot do pole excludedPrincipals ve vlastnosti zámky při vytváření přiřazení.This is done in REST API by adding up to five values to the excludedPrincipals array in the locks property when creating the assignment. Toto je příklad textu žádosti, který obsahuje excludedPrincipals:This is an example of a request body that includes excludedPrincipals:

{
  "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"
      }
    }
  }
}

Další krokyNext steps