Omówienie blokowania zasobów w usłudze Azure Blueprints

Ważne

11 lipca 2026 r. usługa Blueprints (wersja zapoznawcza) zostanie wycofana. Przeprowadź migrację istniejących definicji strategii i przypisań do specyfikacji szablonu i stosów wdrażania. Artefakty strategii mają być konwertowane na szablony JSON usługi ARM lub pliki Bicep używane do definiowania stosów wdrażania. Aby dowiedzieć się, jak utworzyć artefakt jako zasób usługi ARM, zobacz:

Tworzenie spójnych środowisk na dużą skalę jest naprawdę cenne tylko wtedy, gdy istnieje mechanizm utrzymania tej spójności. W tym artykule wyjaśniono, jak działa blokowanie zasobów w usłudze Azure Blueprints. Aby zapoznać się z przykładem blokowania zasobów i stosowania przypisań odmowy, zobacz samouczek dotyczący ochrony nowych zasobów .

Uwaga

Blokady zasobów wdrożone przez usługę Azure Blueprints są stosowane tylko do zasobów innych niż rozszerzenia wdrożonych przez przypisanie strategii. Istniejące zasoby, takie jak te w grupach zasobów, które już istnieją, nie mają dodanych blokad.

Blokowanie trybów i stanów

Tryb blokowania dotyczy przypisania strategii i ma trzy opcje: Nie blokuj, tylko do odczytu lub Nie usuwaj. Tryb blokowania jest konfigurowany podczas wdrażania artefaktu podczas przypisywania strategii. Inny tryb blokowania można ustawić, aktualizując przypisanie strategii. Nie można jednak zmienić trybów blokowania poza usługą Azure Blueprints.

Zasoby utworzone przez artefakty w przypisaniu strategii mają cztery stany: Nie zablokowane, Tylko do odczytu, Nie można edytować/usunąć lub Nie można usunąć. Każdy typ artefaktu może być w stanie Nie zablokowano . Poniższa tabela może służyć do określania stanu zasobu:

Tryb Typ zasobu artefaktu Stan opis
Nie blokuj * Nie zablokowano Zasoby nie są chronione przez usługę Azure Blueprints. Ten stan jest również używany w przypadku zasobów dodanych do artefaktu Tylko do odczytu lub Nie usuwaj grupy zasobów spoza przypisania strategii.
Tylko do odczytu Grupa zasobów Nie można edytować/usunąć Grupa zasobów jest tylko do odczytu i wszystkie jej właściwości, z wyjątkiem tagów, nie można modyfikować. Nie zablokowane zasoby można dodawać, przenosić, zmieniać lub usuwać z tej grupy zasobów.
Tylko do odczytu Grupa niezwiązana z zasobami Tylko do odczytu Z wyjątkiem tagów zasób pozostaje niezmienny i nie można go usunąć ani zmodyfikować.
Nie usuwaj * Nie można usunąć Zasoby można zmienić, ale nie można ich usunąć. Nie zablokowane zasoby można dodawać, przenosić, zmieniać lub usuwać z tej grupy zasobów.

Zastępowanie stanów blokowania

Zazwyczaj w przypadku osoby z odpowiednią kontrolą dostępu opartą na rolach (RBAC) platformy Azure w ramach subskrypcji, takiej jak rola "Właściciel", może zmienić lub usunąć dowolny zasób. Ten dostęp nie jest taki, gdy usługa Azure Blueprints stosuje blokadę w ramach wdrożonego przypisania. Jeśli przypisanie zostało ustawione z opcją Tylko do odczytu lub Nie usuwaj , nawet właściciel subskrypcji może wykonać zablokowaną akcję dla chronionego zasobu.

Ta miara zabezpieczeń chroni spójność zdefiniowanej strategii i środowiska, które zostało zaprojektowane w celu utworzenia przed przypadkowym lub programowym usunięciem lub zmianą.

Przypisywanie w grupie zarządzania

Jedyną opcją uniemożliwiającą właścicielom subskrypcji usunięcie przypisania strategii jest przypisanie strategii do grupy zarządzania. W tym scenariuszu tylko właściciele grupy zarządzania mają uprawnienia wymagane do usunięcia przypisania strategii.

Aby przypisać strategię do grupy zarządzania zamiast subskrypcji, wywołanie interfejsu API REST zmieni się w następujący sposób:

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

Grupa zarządzania zdefiniowana przez {assignmentMG} program musi należeć do hierarchii grup zarządzania lub być tą samą grupą zarządzania, w której jest zapisywana definicja strategii.

Treść żądania przypisania strategii wygląda następująco:

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

Kluczową różnicą w tej treści żądania i przypisanym do subskrypcji jest properties.scope właściwość . Ta wymagana właściwość musi być ustawiona na subskrypcję, do której ma zastosowanie przypisanie strategii. Subskrypcja musi być bezpośrednim elementem podrzędnym hierarchii grup zarządzania, w której jest przechowywane przypisanie strategii.

Uwaga

Strategia przypisana do zakresu grupy zarządzania nadal działa jako przypisanie strategii na poziomie subskrypcji. Jedyna różnica polega na tym, że przypisanie strategii jest przechowywane, aby uniemożliwić właścicielom subskrypcji usunięcie przypisania i skojarzonych blokad.

Usuwanie stanów blokowania

Jeśli konieczne będzie zmodyfikowanie lub usunięcie zasobu chronionego przez przypisanie, istnieją dwa sposoby, aby to zrobić.

  • Aktualizowanie przypisania strategii do trybu blokady nie blokuj
  • Usuwanie przypisania strategii

Po usunięciu przypisania zostaną usunięte blokady utworzone przez usługę Azure Blueprints. Jednak zasób pozostaje pozostawiony i musiałby zostać usunięty za pomocą normalnych środków.

Jak działają blokady strategii

Akcja odmowy przypisania RBAC platformy Azure jest stosowana do zasobów artefaktów podczas przypisywania strategii, jeśli przypisanie wybrało opcję Tylko do odczytu lub Nie usuwaj . Akcja odmowy jest dodawana przez tożsamość zarządzaną przypisania strategii i może zostać usunięta tylko z zasobów artefaktu przez tę samą tożsamość zarządzaną. Ta miara zabezpieczeń wymusza mechanizm blokowania i uniemożliwia usunięcie blokady strategii poza usługą Azure Blueprints.

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

Właściwości przypisania odmowy dla każdego trybu są następujące:

Tryb Permissions.Actions Permissions.NotActions Podmioty zabezpieczeń[i]. Typu ExcludePrincipals[i]. Identyfikator DoNotApplyToChildScopes
Tylko do odczytu * */Odczytu
Microsoft.Authorization/locks/delete
Microsoft.Network/virtualNetwork/subnets/join/action
SystemDefined (wszyscy) przypisanie strategii i zdefiniowane przez użytkownika w elementach excludedPrincipals Grupa zasobów — prawda; Zasób — fałsz
Nie usuwaj */Usunąć Microsoft.Authorization/locks/delete
Microsoft.Network/virtualNetwork/subnets/join/action
SystemDefined (wszyscy) przypisanie strategii i zdefiniowane przez użytkownika w elementach excludedPrincipals Grupa zasobów — prawda; Zasób — fałsz

Ważne

Usługa Azure Resource Manager buforuje szczegóły przypisania roli przez maksymalnie 30 minut. W związku z tym przypisania odmowy odmów akcji w zasobach strategii mogą nie być natychmiast w pełni skuteczne. W tym okresie może być możliwe usunięcie zasobu przeznaczonego do ochrony przez blokady strategii.

Wykluczanie podmiotu zabezpieczeń z przypisania odmowy

W niektórych scenariuszach projektowych lub zabezpieczeń może być konieczne wykluczenie podmiotu zabezpieczeń z przypisania odmowy tworzonego przypisania strategii. Ten krok jest wykonywany w interfejsie API REST przez dodanie maksymalnie pięciu wartości do tablicy excludedPrincipals we właściwości locks podczas tworzenia przypisania. Poniższa definicja przypisania to przykład treści żądania, która zawiera wartości 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"
      }
    }
  }
}

Wykluczanie akcji z przypisania odmowy

Podobnie jak w przypadku wykluczania podmiotu zabezpieczeń dla przypisania odmowy w przypisaniu strategii, można wykluczyć określone operacje dostawcy zasobów platformy Azure. W bloku properties.locks w tym samym miejscu, w których znajduje się element excludedPrincipals, można dodać polecenia excludedActions:

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

Chociaż wartości excludedPrincipals muszą być jawne, wpisy excludedActions mogą być używane * do dopasowywania symboli wieloznacznych operacji dostawcy zasobów.

Następne kroki