Udostępnij za pośrednictwem


Szybki start: definiowanie i przypisywanie strategii platformy Azure przy użyciu programu PowerShell

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:

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 nie jest jeszcze zainstalowany, postępuj zgodnie z instrukcjami w artykule Dodawanie modułu Az.Blueprint, aby zainstalować i zweryfikować moduł Az.Blueprint z Galeria 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

Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. 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. Zrzut ekranu przedstawiający przykład narzędzia Try It dla usługi Azure Cloud Shell.
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. Przycisk uruchamiania usługi Azure Cloud Shell.
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. Zrzut ekranu przedstawiający przycisk usługi Cloud Shell w witrynie Azure Portal

Aby użyć usługi Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.

  2. Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.

  3. Wklej kod lub polecenie do sesji usługi Cloud Shell, wybierając Ctrl+Shift V w systemach Windows i Linux lub wybierając pozycję Cmd+Shift++V w systemie macOS.

  4. 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 strategię o nazwie MyBlueprint , aby skonfigurować przypisania ról i zasad dla subskrypcji. Następnie dodasz grupę zasobów, szablon usługi ARM i przypisanie roli w grupie zasobów.

Uwaga

Podczas korzystania z programu PowerShell obiekt strategii jest tworzony jako pierwszy. Dla każdego artefaktu , który ma zostać dodany, który ma parametry, należy zdefiniować parametry z wyprzedzeniem w początkowej strategii.

  1. Utwórz obiekt strategii początkowej. Parametr BlueprintFile przyjmuje plik JSON zawierający właściwości strategii, wszystkie grupy zasobów do utworzenia i wszystkie parametry na poziomie strategii. Parametry są ustawiane podczas przypisywania i są używane przez artefakty dodawane 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.json
      

      Uwaga

      Użyj nazwy pliku blueprint.json podczas programowego tworzenia definicji strategii. Ta nazwa pliku jest używana podczas wywoływania metody Import-AzBlueprintWithArtifact.

      Obiekt strategii jest tworzony domyślnie w domyślnej subskrypcji. Aby określić grupę zarządzania, użyj parametru ManagementGroupId. Aby określić subskrypcję, użyj parametru SubscriptionId.

  2. Dodaj przypisanie roli w subskrypcji. Definiuje ArtifactFile rodzaj artefaktu, właściwości są wyrównane do identyfikatora definicji roli, a tożsamości główne są przekazywane jako tablica wartości. W poniższym przykładzie tożsamości podmiotów zabezpieczeń, którym udzielono określonej roli, są skonfigurowane do parametru ustawionego podczas przypisywania strategii. W tym przykładzie użyto wbudowanej Contributor roli z identyfikatorem GUID .b24988ac-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
      
  3. Dodaj przypisanie zasad w subskrypcji. Definiuje ArtifactFile rodzaj artefaktu, właściwości są wyrównane do definicji zasad lub inicjatywy, a przypisanie zasad jest skonfigurowane do używania zdefiniowanych parametrów strategii podczas przypisywania strategii. W tym przykładzie użyto wbudowanych Apply tag and its default value to resource groups zasad z identyfikatorem GUID .49c88fc8-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
      
  4. Dodaj kolejne przypisanie zasad dla tagu magazynu (przez ponowne użycie storageAccountType_ parameter) w 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żyj polecenia , storageAccountType aby ustawić tag w grupie zasobów. Ta wartość zawiera informacje o koncie magazynu utworzonym w następnym kroku. W tym przykładzie użyto wbudowanych Apply tag and its default value to resource groups zasad z identyfikatorem GUID .49c88fc8-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
      
  5. Dodaj szablon w grupie zasobów. Szablon TemplateFile usługi ARM zawiera normalny składnik JSON szablonu. Szablon używa storageAccountTyperównież parametrów strategii , tagNamei tagValue , przekazując je do szablonu. Parametry strategii są dostępne dla szablonu przy użyciu parametru TemplateParameterFile, a wewnątrz szablonu JSON, że para klucz-wartość jest używana do wstrzykiwania wartości. Nazwy parametrów strategii i szablonu mogą być takie same.

    • Plik szablonu usługi ARM w formacie 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 usługi 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
      
  6. Dodaj przypisanie roli w grupie zasobów. Podobnie jak w poprzednim wpisie przypisania roli, w poniższym przykładzie użyto identyfikatora definicji roli Owner i podano inny parametr niż strategia. W tym przykładzie użyto wbudowanej Owner roli z identyfikatorem GUID .8e3af657-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ć. Publikowanie udostępnia strategię przypisywania 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.

Przypisywanie strategii

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 strategię do przypisania. Aby podać nameparametry , , locationidentity, locki blueprint , użyj pasujących parametrów New-AzBlueprintAssignment programu PowerShell w poleceniu cmdlet lub podaj je w pliku JSON parametruAssignmentFile.

  1. Uruchom wdrażanie strategii, przypisując ją do subskrypcji. contributors Ponieważ parametry i owners wymagają tablicy objectIds podmiotów zabezpieczeń, które mają zostać przyznane przypisaniu roli, użyj interfejsu API programu Graph usługi Azure Active Directory, aby zebrać element objectIds do użycia we AssignmentFile własnych użytkownikach, grupach lub jednostkach 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.json
      
    • Toż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 identity część pliku przypisania JSON zmienia się w następujący sposób. Zastąp {tenantId}wartości , {subscriptionId}, {yourRG}i {userIdentity} identyfikatorem dzierżawy, identyfikatorem subskrypcji, nazwą grupy zasobów i odpowiednio 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 przypisywanie wystarczających ról i uprawnień lub przypisanie strategii zakończy się niepowodzeniem.

Czyszczenie zasobów

Strategię można usunąć z subskrypcji. Usunięcie często przeprowadza się, gdy zasoby artefaktu przestają być potrzebne. Po usunięciu strategii artefakty przypisane w jej ramach są pozostawiane. Aby usunąć przypisanie strategii, użyj Remove-AzBlueprintAssignment polecenia cmdlet :

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 cyklu życia strategii.