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.
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
- Postępuj zgodnie z samouczkiem dotyczącym ochrony nowych zasobów .
- Uzyskaj informacje na temat cyklu życia strategii.
- Dowiedz się, jak używać parametrów statycznych i dynamicznych.
- Dowiedz się, jak dostosować kolejność sekwencjonowania strategii.
- Dowiedz się, jak zaktualizować istniejące przypisania.
- Rozwiązywanie problemów podczas przypisywania strategii za pomocą ogólnych procedur rozwiązywania problemów.