Szybki start: definiowanie i przypisywanie strategii platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

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 wcześniej nie użyto usługi Azure Blueprints, zarejestruj dostawcę zasobów za pomocą interfejsu wiersza polecenia platformy Azure za pomocą polecenia az provider register --namespace 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. 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 Cloud Shell, naciskając Ctrl+Shift+V w systemach Windows i Linux lub Cmd+Shift+V w systemie macOS.

  4. Wybierz Enter, aby uruchomić kod lub polecenie.

Dodawanie rozszerzenia strategii

Aby umożliwić interfejsowi wiersza polecenia platformy Azure zarządzanie definicjami i przypisaniami strategii, należy dodać rozszerzenie. To rozszerzenie działa wszędzie tam, gdzie można użyć interfejsu wiersza polecenia platformy Azure. Obejmuje to powłokę bash w systemie Windows 10, Cloud Shell (zarówno w wersji autonomicznej, jak i w portalu), obraz Docker interfejsu wiersza polecenia platformy Azure lub rozszerzenie zainstalowane lokalnie.

  1. Sprawdź, czy zainstalowano najnowszy interfejs wiersza polecenia platformy Azure (co najmniej 2.0.76). Jeśli jeszcze go nie zainstalowano, postępuj zgodnie z tymi instrukcjami.

  2. W wybranym środowisku interfejsu wiersza polecenia platformy Azure zaimportuj rozszerzenie za pomocą następującego polecenia:

    # Add the Blueprint extension to the Azure CLI environment
    az extension add --name blueprint
    
  3. Sprawdź, czy rozszerzenie zostało zainstalowane i czy jest to oczekiwana wersja (co najmniej 0.1.0):

    # Check the extension list (note that you might have other extensions installed)
    az extension list
    
    # Run help for extension options
    az blueprint -h
    

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 interfejsu wiersza polecenia platformy Azure najpierw jest tworzony obiekt blueprint. Dla każdego artefaktu, który ma zostać dodany i ma parametry, należy z wyprzedzeniem zdefiniować te parametry w początkowym planie.

  1. Utwórz początkowy obiekt schematu. Parametr parameters przyjmuje plik JSON zawierający wszystkie parametry poziomu strategii. Parametry ustawiasz podczas przypisywania i są one używane przez artefakty, które dodasz w kolejnych krokach.

    • Plik JSON — blueprintparms.json

      {
         "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"
             }
         }
      }
      
    • Polecenie Azure CLI

      # Login first with az login if not using Cloud Shell
      
      # Create the blueprint object
      az blueprint create \
         --name 'MyBlueprint' \
         --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.' \
         --parameters blueprintparms.json
      

      Uwaga

      Użyj nazwy pliku blueprint.json podczas importowania definicji strategii. Ta nazwa pliku jest używana podczas wywoływania polecenia az blueprint import.

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

  2. Dodaj grupę zasobów dla artefaktów magazynu do definicji.

    az blueprint resource-group add \
       --blueprint-name 'MyBlueprint' \
       --artifact-name 'storageRG' \
       --description 'Contains the resource template deployment and a role assignment.'
    
  3. Dodaj przypisanie roli na poziomie subskrypcji. 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 roli Contributor, z identyfikatorem GUID b24988ac-6180-42a0-ab88-20f7382dd24c.

    az blueprint artifact role create \
       --blueprint-name 'MyBlueprint' \
       --artifact-name 'roleContributor' \
       --role-definition-id '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' \
       --principal-ids "[parameters('contributors')]"
    
  4. Dodaj przypisanie zasad na poziomie subskrypcji. W tym przykładzie użyto wbudowanej zasady Apply tag and its default value to resource groups o identyfikatorze GUID 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • Plik JSON — artifacts\policyTags.json

      {
         "tagName": {
            "value": "[parameters('tagName')]"
         },
         "tagValue": {
            "value": "[parameters('tagValue')]"
         }
      }
      
    • Polecenie Azure CLI

      az blueprint artifact policy create \
         --blueprint-name 'MyBlueprint' \
         --artifact-name 'policyTags' \
         --policy-definition-id '/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71' \
         --display-name 'Apply tag and its default value to resource groups' \
         --description 'Apply tag and its default value to resource groups' \
         --parameters artifacts\policyTags.json
      

      Uwaga

      Gdy używasz az blueprint na Macu, zastąp \ elementem / w wartościach parametrów zawierających ścieżkę. W tym przypadku wartość parametru parameters ma wartość artifacts/policyTags.json.

  5. 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 polecenia storageAccountType, 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 zasady Apply tag and its default value to resource groups o identyfikatorze GUID 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • Plik JSON — artifacts\policyStorageTags.json

      {
         "tagName": {
            "value": "StorageType"
         },
         "tagValue": {
            "value": "[parameters('storageAccountType')]"
         }
      }
      
    • Polecenie Azure CLI

      az blueprint artifact policy create \
         --blueprint-name 'MyBlueprint' \
         --artifact-name 'policyStorageTags' \
         --policy-definition-id '/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71' \
         --display-name 'Apply storage tag to resource group' \
         --description 'Apply storage tag and the parameter also used by the template to resource groups' \
         --parameters artifacts\policyStorageTags.json
      

      Uwaga

      Gdy używasz az blueprint na komputerze Mac, zastąp \ elementem / w wartościach parametrów, które zawierają ścieżkę. W tym przypadku wartość parametru parameters ma wartość artifacts/policyStorageTags.json.

  6. Dodaj szablon w grupie zasobów. Parametr template dla szablonu ARM zawiera standardowe składniki JSON szablonu. Szablon również ponownie wykorzystuje parametry blueprintu storageAccountType, tagName i tagValue, przekazując każdy z nich do szablonu. Parametry planu są dostępne w szablonie przy użyciu parametru parameters, 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 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 ARM w formacie JSON — artifacts\templateStorageParams.json

      {
         "storageAccountTypeFromBP": {
            "value": "[parameters('storageAccountType')]"
         },
         "tagNameFromBP": {
            "value": "[parameters('tagName')]"
         },
         "tagValueFromBP": {
            "value": "[parameters('tagValue')]"
         }
      }
      
    • Polecenie Azure CLI

      az blueprint artifact template create \
         --blueprint-name 'MyBlueprint' \
         --artifact-name 'templateStorage' \
         --template artifacts\templateStorage.json \
         --parameters artifacts\templateStorageParams.json \
         --resource-group-art 'storageRG'
      

      Uwaga

      Gdy używasz az blueprint na komputerze Mac, zastąp \ elementem / w wartościach parametrów zawierających ścieżkę. W takim przypadku wartość dla template staje się artifacts/templateStorage.json, a parameters staje się artifacts/templateStorageParams.json.

  7. 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 Owner i przypisano do niego inny parametr niż w planie. W tym przykładzie użyto wbudowanej roli Owner, z identyfikatorem GUID 8e3af657-a8ff-443c-a75c-2fe8c4bcb635.

    az blueprint artifact role create \
       --blueprint-name 'MyBlueprint' \
       --artifact-name 'roleOwner' \
       --role-definition-id '/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635' \
       --principal-ids "[parameters('owners')]" \
       --resource-group-art 'storageRG'
    

Publikowanie strategii

Teraz, po dodaniu artefaktów do strategii, nadszedł czas, aby go opublikować. Opublikowanie powoduje udostępnienie planu do przypisania do subskrypcji.

az blueprint publish --blueprint-name 'MyBlueprint' --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 v20200605-135541.

Przypisz schemat

Po opublikowaniu strategii przy użyciu interfejsu wiersza polecenia platformy Azure można przypisać ją 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-name określa schemat, który ma zostać przypisany. Aby podać parametry name, location, identity, lock i blueprint, użyj odpowiadających im parametrów interfejsu wiersza polecenia platformy Azure w poleceniu az blueprint assignment create lub podaj je w pliku JSON parameters.

  1. Uruchom wdrażanie strategii, przypisując ją do subskrypcji. Ponieważ parametry contributors i owners wymagają tablicy objectIds podmiotów zabezpieczeń, którym ma zostać przypisane przypisanie roli, użyj interfejsu API Azure Active Directory Graph, aby zebrać objectIds do użycia w parameters dla własnych użytkowników, grup lub jednostek usługi.

    • Plik JSON — blueprintAssignment.json

      {
         "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"
             ]
         }
      }
      
    • Polecenie Azure CLI

      az blueprint assignment create \
         --name 'assignMyBlueprint' \
         --location 'westus' \
         --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \
         --parameters 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 parametr identity-type jest ustawiony na UserAssigned, a parametr user-assigned-identities określa tożsamość. Zastąp element {userIdentity} nazwą tożsamości zarządzanej przypisanej przez użytkownika.

      az blueprint assignment create \
         --name 'assignMyBlueprint' \
         --location 'westus' \
         --identity-type UserAssigned \
         --user-assigned-identities {userIdentity} \
         --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \
         --parameters blueprintAssignment.json
      

      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 schematu, użyj polecenia az blueprint assignment delete:

az blueprint assignment delete --name 'assignMyBlueprint'

Następne kroki

W tym przewodniku Szybki start utworzysz, przypiszesz i usuniesz plan za pomocą interfejsu wiersza polecenia platformy Azure. Aby dowiedzieć się więcej o usłudze Azure Blueprints, przejdź do artykułu dotyczącego cyklu życia usługi Azure Blueprints.