Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Azure Blueprints (wersja zapoznawcza) zostanie wycofana 31 stycznia 2027 r. z wycofaniem etapowym od 31 lipca 2026 r. Zmigruj istniejące definicje planów i przypisania do Deployment Stacks (zalecane) oraz Template Specs. Artefakty schematu są konwertowane na szablony ARM w formacie JSON lub pliki Bicep używane do definiowania stosów wdrożenia. Aby uzyskać pełny harmonogram etapów, informacje o wpływie i odpowiedzi na często zadawane pytania, zobacz Wycofanie usługi Azure Blueprints lub https://aka.ms/AzureBlueprintsRetirement. Aby dowiedzieć się, jak utworzyć artefakt jako zasób ARM, zobacz:
Z tego samouczka dowiesz się, jak używać usługi Azure Blueprints do wykonywania niektórych typowych zadań związanych z tworzeniem, publikowaniem i przypisywaniem strategii w organizacji. Ta umiejętność ułatwia definiowanie typowych wzorców w celu opracowywania konfiguracji wielokrotnego użytku i szybkiego wdrażania na podstawie szablonów, zasad i zabezpieczeń usługi Azure Resource Manager (ARM).
Wymagania wstępne
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Jeśli moduł nie jest jeszcze zainstalowany, postępuj zgodnie z instrukcjami w artykule Dodawanie modułu Az.Blueprint, aby zainstalować i zweryfikować moduł Az.Blueprint z galerii programu PowerShell.
- Jeśli wcześniej nie użyto usługi Azure Blueprints, zarejestruj dostawcę zasobów za pomocą programu Azure PowerShell za pomocą polecenia
Register-AzResourceProvider -ProviderNamespace Microsoft.Blueprint.
Azure Cloud Shell
Platforma Azure udostępnia Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać za pośrednictwem przeglądarki. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.
Aby uruchomić środowisko Azure Cloud Shell:
| Opcja | Przykład/link |
|---|---|
| Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu lub polecenia. Wybranie pozycji Wypróbuj nie powoduje automatycznego skopiowania kodu lub polecenia do usługi Cloud Shell. |
|
| Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. |
|
| Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. |
|
Aby użyć usługi Azure Cloud Shell:
Uruchom usługę Cloud Shell.
Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.
Wklej kod lub polecenie do sesji Cloud Shell, naciskając Ctrl+Shift+V w systemach Windows i Linux lub Cmd+Shift+V w systemie macOS.
Wybierz Enter, aby uruchomić kod lub polecenie.
Tworzenie strategii
Pierwszym krokiem podczas definiowania standardowego wzorca zgodności jest utworzenie strategii z dostępnych zasobów. Utwórzmy schemat o nazwie MyBlueprint, aby skonfigurować przypisania ról i zasad w ramach subskrypcji. Następnie dodajesz grupę zasobów, szablon ARM i przypisanie roli dla grupy zasobów.
Uwaga
Podczas korzystania z programu PowerShell obiekt strategii jest tworzony jako pierwszy. Dla każdego artefaktu, który ma zostać dodany i ma parametry, należy z wyprzedzeniem zdefiniować te parametry w początkowym planie.
Utwórz początkowy obiekt schematu. Parametr
BlueprintFileprzyjmuje plik JSON zawierający właściwości strategii, wszystkie grupy zasobów do utworzenia i wszystkie parametry na poziomie strategii. Parametry ustawiasz podczas przypisywania i są one używane przez artefakty, które dodasz w kolejnych krokach.Plik JSON — blueprint.json
{ "properties": { "description": "This blueprint sets tag policy and role assignment on the subscription, creates a ResourceGroup, and deploys a resource template and role assignment to that ResourceGroup.", "targetScope": "subscription", "parameters": { "storageAccountType": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_ZRS", "Premium_LRS" ], "metadata": { "displayName": "storage account type.", "description": null } }, "tagName": { "type": "string", "metadata": { "displayName": "The name of the tag to provide the policy assignment.", "description": null } }, "tagValue": { "type": "string", "metadata": { "displayName": "The value of the tag to provide the policy assignment.", "description": null } }, "contributors": { "type": "array", "metadata": { "description": "List of AAD object IDs that is assigned Contributor role at the subscription", "strongType": "PrincipalId" } }, "owners": { "type": "array", "metadata": { "description": "List of AAD object IDs that is assigned Owner role at the resource group", "strongType": "PrincipalId" } } }, "resourceGroups": { "storageRG": { "description": "Contains the resource template deployment and a role assignment." } } } }Polecenie programu PowerShell
# Login first with Connect-AzAccount if not using Cloud Shell # Get a reference to the new blueprint object, we'll use it in subsequent steps $blueprint = New-AzBlueprint -Name 'MyBlueprint' -BlueprintFile .\blueprint.jsonUwaga
Użyj nazwy pliku blueprint.json podczas programowego tworzenia definicji strategii. Ta nazwa pliku jest używana podczas wywoływania metody
Import-AzBlueprintWithArtifact.Obiekt Blueprint jest domyślnie tworzony w domyślnej subskrypcji. Aby określić grupę zarządzania, użyj parametru
ManagementGroupId. Aby określić subskrypcję, użyj parametruSubscriptionId.
Dodaj przypisanie roli na poziomie subskrypcji. Element
ArtifactFiledefiniuje rodzaj artefaktu, właściwości odpowiadają identyfikatorowi definicji roli, a tożsamości podmiotów są przekazywane w postaci tablicy wartości. W poniższym przykładzie tożsamości podmiotów głównych, którym przypisano określoną rolę, są konfigurowane za pomocą parametru ustawianego podczas przypisywania strategii. W tym przykładzie użyto wbudowanej roliContributor, z identyfikatorem GUIDb24988ac-6180-42a0-ab88-20f7382dd24c.Plik JSON — \artifacts\roleContributor.json
{ "kind": "roleAssignment", "properties": { "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", "principalIds": "[parameters('contributors')]" } }Polecenie programu PowerShell
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Name 'roleContributor' -ArtifactFile .\artifacts\roleContributor.json
Dodaj przypisanie zasad na poziomie subskrypcji. Element
ArtifactFiledefiniuje rodzaj artefaktu, właściwości odpowiadają definicji zasady lub inicjatywy, a przypisanie zasady jest skonfigurowane tak, aby używać zdefiniowanych parametrów strategii podczas przypisywania strategii. W tym przykładzie użyto wbudowanej zasadyApply tag and its default value to resource groupso identyfikatorze GUID49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.Plik JSON — \artifacts\policyTags.json
{ "kind": "policyAssignment", "properties": { "displayName": "Apply tag and its default value to resource groups", "description": "Apply tag and its default value to resource groups", "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71", "parameters": { "tagName": { "value": "[parameters('tagName')]" }, "tagValue": { "value": "[parameters('tagValue')]" } } } }Polecenie programu PowerShell
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Name 'policyTags' -ArtifactFile .\artifacts\policyTags.json
Dodaj dodatkowe przypisanie zasad dla tagu magazynu (ponownie używając
storageAccountType_ parameter) na poziomie subskrypcji. Ten dodatkowy artefakt przypisania zasad pokazuje, że parametr zdefiniowany w strategii może być używany przez więcej niż jeden artefakt. W tym przykładzie używasz poleceniastorageAccountType, aby ustawić tag dla grupy zasobów. Ta wartość dostarcza informacji o koncie magazynowym, które utworzysz w następnym kroku. W tym przykładzie użyto wbudowanej zasadyApply tag and its default value to resource groupso identyfikatorze GUID49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.Plik JSON — \artifacts\policyStorageTags.json
{ "kind": "policyAssignment", "properties": { "displayName": "Apply storage tag to resource group", "description": "Apply storage tag and the parameter also used by the template to resource groups", "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71", "parameters": { "tagName": { "value": "StorageType" }, "tagValue": { "value": "[parameters('storageAccountType')]" } } } }Polecenie programu PowerShell
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Name 'policyStorageTags' -ArtifactFile .\artifacts\policyStorageTags.json
Dodaj szablon w grupie zasobów. Element
TemplateFileszablonu ARM zawiera standardowy składnik JSON. Szablon również ponownie wykorzystuje parametry blueprintustorageAccountType,tagNameitagValue, przekazując każdy z nich do szablonu. Parametry planu są dostępne w szablonie przy użyciu parametruTemplateParameterFile, a wewnątrz kodu JSON szablonu ta para klucz-wartość jest używana do wstawiania wartości. Nazwy parametrów strategii i szablonu mogą być takie same.Plik szablonu ARM JSON - \artifacts\templateStorage.json
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageAccountTypeFromBP": { "type": "string", "metadata": { "description": "Storage Account type" } }, "tagNameFromBP": { "type": "string", "defaultValue": "NotSet", "metadata": { "description": "Tag name from blueprint" } }, "tagValueFromBP": { "type": "string", "defaultValue": "NotSet", "metadata": { "description": "Tag value from blueprint" } } }, "variables": { "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]" }, "resources": [{ "type": "Microsoft.Storage/storageAccounts", "name": "[variables('storageAccountName')]", "apiVersion": "2016-01-01", "tags": { "[parameters('tagNameFromBP')]": "[parameters('tagValueFromBP')]" }, "location": "[resourceGroup().location]", "sku": { "name": "[parameters('storageAccountTypeFromBP')]" }, "kind": "Storage", "properties": {} }], "outputs": { "storageAccountSku": { "type": "string", "value": "[variables('storageAccountName')]" } } }Plik parametrów szablonu ARM w formacie JSON - \artifacts\templateStorageParams.json
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "storageAccountTypeFromBP": { "value": "[parameters('storageAccountType')]" }, "tagNameFromBP": { "value": "[parameters('tagName')]" }, "tagValueFromBP": { "value": "[parameters('tagValue')]" } } }Polecenie programu PowerShell
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Type TemplateArtifact -Name 'templateStorage' -TemplateFile .\artifacts\templateStorage.json -TemplateParameterFile .\artifacts\templateStorageParams.json -ResourceGroupName storageRG
Dodaj przypisanie roli dla grupy zasobów. Podobnie jak w poprzednim wpisie dotyczącym przypisania roli, w poniższym przykładzie użyto identyfikatora definicji roli
Owneri przypisano do niego inny parametr niż w planie. W tym przykładzie użyto wbudowanej roliOwner, z identyfikatorem GUID8e3af657-a8ff-443c-a75c-2fe8c4bcb635.Plik JSON — \artifacts\roleOwner.json
{ "kind": "roleAssignment", "properties": { "resourceGroup": "storageRG", "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", "principalIds": "[parameters('owners')]" } }Polecenie programu PowerShell
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Name 'roleOwner' -ArtifactFile .\artifacts\roleOwner.json
Publikowanie strategii
Teraz, po dodaniu artefaktów do strategii, nadszedł czas, aby go opublikować. Opublikowanie powoduje udostępnienie planu do przypisania do subskrypcji.
# Use the reference to the new blueprint object from the previous steps
Publish-AzBlueprint -Blueprint $blueprint -Version '{BlueprintVersion}'
Wartość parametru {BlueprintVersion} to ciąg liter, cyfr i łączników (bez spacji ani innych znaków specjalnych). Maksymalna długość wynosi 20 znaków. Użyj czegoś unikatowego i informacyjnego, takiego jak v20180622-135541.
Przypisz schemat
Po opublikowaniu strategii przy użyciu programu PowerShell można ją przypisać do subskrypcji. Przypisz strategię utworzoną do jednej z subskrypcji w hierarchii grup zarządzania. Jeśli strategia została zapisana w subskrypcji, można ją przypisać tylko do tej subskrypcji. Parametr Blueprint określa schemat, który ma zostać przypisany. Aby podać parametry name, location, identity, lock i blueprint, użyj odpowiadających im parametrów programu PowerShell w poleceniu cmdlet New-AzBlueprintAssignment lub podaj je w pliku JSON parametru AssignmentFile.
Uruchom wdrażanie strategii, przypisując ją do subskrypcji. Ponieważ parametry
contributorsiownerswymagają tablicyobjectIdspodmiotów zabezpieczeń, którym ma zostać przypisane przypisanie roli, użyj interfejsu API Azure Active Directory Graph, aby zebraćobjectIdsdo użycia wAssignmentFiledla własnych użytkowników, grup lub jednostek usługi.Plik JSON — blueprintAssignment.json
{ "properties": { "blueprintId": "/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint", "resourceGroups": { "storageRG": { "name": "StorageAccount", "location": "eastus2" } }, "parameters": { "storageAccountType": { "value": "Standard_GRS" }, "tagName": { "value": "CostCenter" }, "tagValue": { "value": "ContosoIT" }, "contributors": { "value": [ "7be2f100-3af5-4c15-bcb7-27ee43784a1f", "38833b56-194d-420b-90ce-cff578296714" ] }, "owners": { "value": [ "44254d2b-a0c7-405f-959c-f829ee31c2e7", "316deb5f-7187-4512-9dd4-21e7798b0ef9" ] } } }, "identity": { "type": "systemAssigned" }, "location": "westus" }Polecenie programu PowerShell
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintAssignment -Blueprint $blueprint -Name 'assignMyBlueprint' -AssignmentFile .\blueprintAssignment.jsonTożsamość zarządzana przypisana przez użytkownika
W przypisaniu strategii można również użyć tożsamości zarządzanej przypisanej przez użytkownika. W tym przypadku część
identitypliku przypisania w formacie JSON zmienia się w następujący sposób. Zastąp znaczniki{tenantId},{subscriptionId},{yourRG}i{userIdentity}odpowiednio identyfikatorem dzierżawy, identyfikatorem subskrypcji, nazwą grupy zasobów i nazwą tożsamości zarządzanej przypisanej przez użytkownika."identity": { "type": "userAssigned", "tenantId": "{tenantId}", "userAssignedIdentities": { "/subscriptions/{subscriptionId}/resourceGroups/{yourRG}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userIdentity}": {} } },Tożsamość zarządzana przypisana przez użytkownika może znajdować się w dowolnej subskrypcji i grupie zasobów, do której użytkownik przypisujący strategię ma uprawnienia.
Ważne
Usługa Azure Blueprints nie zarządza tożsamością zarządzaną przypisaną przez użytkownika. Użytkownicy są odpowiedzialni za przypisanie odpowiednich ról i uprawnień, w przeciwnym razie przypisanie blueprintu nie powiedzie się.
Czyszczenie zasobów
Strategię można usunąć z subskrypcji. Usunięcie często przeprowadza się, gdy zasoby artefaktu przestają być potrzebne. Po usunięciu planu artefakty przypisane w ramach tego planu pozostają. Aby usunąć przypisanie Blueprint, użyj polecenia cmdlet Remove-AzBlueprintAssignment:
assignMyBlueprint
Remove-AzBlueprintAssignment -Name 'assignMyBlueprint'
Następne kroki
W tym przewodniku Szybki start utworzono, przypisano i usunięto strategię przy użyciu programu PowerShell. Aby dowiedzieć się więcej o usłudze Azure Blueprints, przejdź do artykułu dotyczącego cyklu życia usługi Azure Blueprints.