Vysvětlení uzamykání prostředků v semodrotiskych Azure

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. Tento článek vysvětluje, jak funguje uzamykání prostředků v Azure modrotisky. Příklad uzamčení prostředků a použití přiřazení odepřít najdete v kurzu ochrana nových prostředků .

Poznámka

Zámky prostředků nasazené v rámci Azure modrotisky se aplikují jenom na prostředky, které jsou nasazené v přiřazení podrobného plánu. Existující prostředky, například ty ve skupinách prostředků, které už existují, nemají přidané zámky.

Režimy zamykání a stavy

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. Režim uzamykání se konfiguruje během nasazování artefaktů během přiřazení podrobného plánu. V případě, že aktualizujete přiřazení podrobného plánu, lze nastavit jiný režim uzamykání. Blokovací režimy se ale nedají změnit mimo plány Azure.

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 odstranit nebo nelze odstranit. Každý typ artefaktu může být ve stavu Neuzamčeno . K určení stavu prostředku lze použít následující tabulku:

Režim Typ prostředku artefaktu State Popis
Nezamknout * Neuzamčeno Prostředky nejsou chráněny pomocí Azure modrotisky. 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.
Jen pro čtení Skupina prostředků Nelze upravit/odstranit Skupina prostředků je jen pro čtení a značky ve skupině prostředků nejde upravovat. Do této skupiny prostředků se dají přidat, přesunout, změnit nebo odstranit prostředky, které nejsou zamčené .
Jen pro čtení Skupina bez prostředků Jen pro čtení Prostředek nelze žádným způsobem změnit. Žádné změny a nelze ji odstranit.
Neodstraňovat * Nejde odstranit Prostředky je možné změnit, ale nelze je odstranit. Do této skupiny prostředků se dají přidat, přesunout, změnit nebo odstranit prostředky, které nejsou zamčené .

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

Pro uživatele s příslušným řízením přístupu na základě role Azure (RBAC) v předplatném, jako je třeba role Owner, je obvykle možné upravovat nebo odstraňovat jakékoli prostředky. Tento přístup neplatí v případě, že Azure modrotisky v rámci nasazeného přiřazení aplikuje uzamykání. 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í.

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.

Přiřadit na skupinu pro správu

Jedinou možností, jak zabránit vlastníkům předplatného odebrání přiřazení podrobného plánu, je přiřazení podrobného plánu ke 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 pouze vlastníci skupiny pro správu.

Chcete-li přiřadit podrobný plán ke skupině pro správu namísto předplatného, REST API volání 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á nástrojem {assignmentMG} musí být buď v rámci hierarchie skupiny pro správu, nebo musí být stejná jako skupina pro správu, kde je uložena definice podrobného plánu.

Text žádosti 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ím rozdílem v tomto textu žádosti a jedním přiřazeným k předplatnému je properties.scope vlastnost. Tato požadovaná vlastnost musí být nastavena na předplatné, pro které platí přiřazení podrobného plánu. Předplatné musí být přímým podřízeným prvkem hierarchie skupiny pro správu, ve kterém 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, že je uloženo přiřazení podrobného plánu, které brání vlastníkům předplatného odebrání přiřazení a přidružených zámků.

Odebírají se stavy zamykání.

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

  • Aktualizuje se přiřazení podrobného plánu na režim uzamčení bez zámku .
  • Odstranit přiřazení podrobného plánu

Po odebrání přiřazení se odeberou zámky vytvořené v rámci Azure modrotisky. Prostředek je však ponechán na pozadí a je třeba jej odstranit běžným způsobem.

Jak podrobný plán funguje zámky

V případě, že přiřazení vybralo možnost jen pro čtení nebo neodstraňovat , je u prostředků artefaktů použita akce odepřít přiřazení , která je v systému Azure RBAC. 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. Tato míra zabezpečení vynutila blokovací mechanizmus a zabraňuje odebrání zámku podrobného plánu mimo plány Azure.

Snímek obrazovky se stránkou řízení přístupu (I a M) a záložkou zamítnutí přiřazení pro skupinu prostředků.

Vlastnosti přiřazení odepřít pro každý režim jsou následující:

Režim Oprávnění. akce Oprávnění. NotActions Objekty zabezpečení [i]. Textový ExcludePrincipals [i]. Účet DoNotApplyToChildScopes
Jen pro čtení **** _ _ * /Read
Microsoft. Authorization/uzamyká/odstranit
Microsoft. Network/virtualNetwork/subnets/JOIN/Action
*
SystemDefined (všichni) přiřazení podrobného plánu a uživatelsky definované v excludedPrincipals Skupina prostředků – pravda; Prostředek – NEPRAVDA
Neodstraňovat */Delete Microsoft. Authorization/zámky/DELETE
Microsoft. Network/virtualNetwork/subnets/JOIN/Action
SystemDefined (všichni) přiřazení podrobného plánu a uživatelsky definované v excludedPrincipals Skupina prostředků – pravda; Prostředek – NEPRAVDA

Důležité

Azure Resource Manager ukládá do mezipaměti Podrobnosti přiřazení role po dobu až 30 minut. 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. 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.

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

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ří. Tento krok 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í. Následující definice přiřazení je příkladem těla žádosti, které zahrnuje 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"
      }
    }
  }
}

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

Podobně jako při vyloučení objektu zabezpečení u přiřazení zamítnout v přiřazení podrobného plánu můžete vyloučit konkrétní operace poskytovatele prostředků Azure. V bloku Properties. zámků , na stejném místě, kde excludedPrincipals je, lze přidat excludedActions :

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

Zatímco excludedPrincipals musí být explicitní, položky excludedActions mohou využívat * zástupné znaky pro porovnání s operacemi poskytovatele prostředků.

Další kroky