Share via


Quickstart: Een Azure-blauwdruk definiëren en toewijzen met de Azure CLI

Belangrijk

Op 11 juli 2026 worden blauwdrukken (preview) afgeschaft. Migreer uw bestaande blauwdrukdefinities en -toewijzingen naar sjabloonspecificaties en implementatiestacks. Blauwdrukartefacten moeten worden geconverteerd naar ARM JSON-sjablonen of Bicep-bestanden die worden gebruikt om implementatiestacks te definiëren. Zie voor meer informatie over het ontwerpen van een artefact als een ARM-resource:

In deze zelfstudie leert u hoe u Azure Blueprints gebruikt om algemene taken uit te voeren met betrekking tot het maken, publiceren en toewijzen van een blauwdruk binnen uw organisatie. Deze vaardigheid helpt u bij het definiëren van algemene patronen voor het ontwikkelen van herbruikbare en snel implementeerbare configuraties, op basis van ARM-sjablonen (Azure Resource Manager), beleid en beveiliging.

Vereisten

  • Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
  • Als u Azure Blueprints nog niet eerder hebt gebruikt, registreert u de resourceprovider via de Azure CLI bij az provider register --namespace Microsoft.Blueprint.

Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Button to launch Azure Cloud Shell.
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell gebruiken:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.

  3. Plak de code of opdracht in de Cloud Shell-sessie door Ctrl+Shift+V in Windows en Linux te selecteren of door Cmd+Shift+V te selecteren in macOS.

  4. Selecteer Enter om de code of opdracht uit te voeren.

De blauwdrukextensie toevoegen

Als u de Azure CLI wilt inschakelen voor het beheren van blauwdrukdefinities en -toewijzingen, moet u de extensie toevoegen. Deze extensie werkt overal waar u de Azure CLI kunt gebruiken. Dit omvat bash in Windows 10, Cloud Shell (zowel de zelfstandige versie als de versie in de portal), de Azure CLI Docker-installatiekopieën of een extensie die lokaal is geïnstalleerd.

  1. Controleer of de meest recente versie van Azure CLI is geïnstalleerd (minimaal 2.0.76). Als deze nog niet is geïnstalleerd, volgt u deze instructies op.

  2. Importeer de extensie in uw Azure CLI-omgeving met de volgende opdracht:

    # Add the Blueprint extension to the Azure CLI environment
    az extension add --name blueprint
    
  3. Controleer of de extensie is geïnstalleerd en of deze de verwachte versie heeft (ten minste 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
    

Een blauwdruk maken

De eerste stap bij het definiëren van een standaardpatroon voor naleving is om een blauwdruk samen te stellen uit de beschikbare resources. We gaan een blauwdruk maken met de naam MyBlueprint om rol- en beleidstoewijzingen voor het abonnement te configureren. Vervolgens voegt u een resourcegroep, een ARM-sjabloon en een roltoewijzing toe aan de resourcegroep.

Notitie

Wanneer u de Azure CLI gebruikt, wordt het blauwdrukobject eerst gemaakt. Voor elk artefact dat moet worden toegevoegd met parameters, definieert u de parameters vooraf op de eerste blauwdruk.

  1. Maak het eerste blauwdrukobject. De parameters parameter gebruikt een JSON-bestand dat alle parameters op blauwdrukniveau bevat. U stelt de parameters in tijdens de toewijzing en ze worden gebruikt door de artefacten die u in latere stappen toevoegt.

    • JSON-bestand - 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"
             }
         }
      }
      
    • Azure CLI-opdracht

      # 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
      

      Notitie

      Gebruik de bestandsnaam blueprint.json wanneer u de blauwdrukdefinities importeert. Deze bestandsnaam wordt gebruikt wanneer u az blueprint import aanroept.

      Het blauwdrukobject wordt standaard gemaakt in het standaardabonnement. Als u de beheergroep wilt opgeven, gebruikt u de parameter managementgroup. Als u het abonnement wilt opgeven, gebruikt u de parameter subscription.

  2. Voeg de resourcegroep voor de opslagartefacten toe aan de definitie.

    az blueprint resource-group add \
       --blueprint-name 'MyBlueprint' \
       --artifact-name 'storageRG' \
       --description 'Contains the resource template deployment and a role assignment.'
    
  3. Voeg een roltoewijzing toe aan het abonnement. In het volgende voorbeeld worden de principal-identiteiten aan de opgegeven rol geconfigureerd voor een parameter die is ingesteld tijdens de blauwdruktoewijzing. In dit voorbeeld wordt de Contributor ingebouwde rol gebruikt, met een GUID van 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. Voeg een beleidstoewijzing toe aan het abonnement. In dit voorbeeld wordt het Apply tag and its default value to resource groups ingebouwde beleid gebruikt, met een GUID van 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • JSON-bestand - artefacten\policyTags.json

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

      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
      

      Notitie

      Wanneer u op een Mac gebruikt az blueprint , vervangt u door \/ parameterwaarden die het pad bevatten. In dit geval wordt artifacts/policyTags.jsonde waarde voor parameters .

  5. Voeg nog een beleidstoewijzing toe voor de opslagtag (door opnieuw te gebruiken storageAccountType_ parameter) in het abonnement. Deze aanvullende beleidstoewijzingsartefact laat zien dat een in de blauwdruk gedefinieerde parameter door meer dan één artefact kan worden gebruikt. In het voorbeeld gebruikt u de storageAccountType opdracht om een tag in te stellen voor de resourcegroep. Deze waarde bevat informatie over het opslagaccount dat u in de volgende stap maakt. In dit voorbeeld wordt het Apply tag and its default value to resource groups ingebouwde beleid gebruikt, met een GUID van 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • JSON-bestand - artefacten\policyStorageTags.json

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

      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
      

      Notitie

      Wanneer u op een Mac gebruikt az blueprint , vervangt u door \/ parameterwaarden die het pad bevatten. In dit geval wordt artifacts/policyStorageTags.jsonde waarde voor parameters .

  6. Voeg een sjabloon toe onder de resourcegroep. De template parameter voor een ARM-sjabloon bevat de normale JSON-onderdelen van de sjabloon. De sjabloon hergebruikt ook de storageAccountTypeparameters en tagNametagValue blauwdrukparameters door elk door te geven aan de sjabloon. De blauwdrukparameters zijn beschikbaar voor de sjabloon met behulp van de parameter parametersen in de sjabloon-JSON die sleutel-waardepaar wordt gebruikt om de waarde in te voeren. De namen van de blauwdruk- en sjabloonparameter kunnen hetzelfde zijn.

    • JSON ARM-sjabloonbestand - artefacten\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')]"
              }
          }
      }
      
    • JSON ARM-sjabloonparameterbestand - artefacten\templateStorageParams.json

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

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

      Notitie

      Wanneer u op een Mac gebruikt az blueprint , vervangt u door \/ parameterwaarden die het pad bevatten. In dit geval wordt artifacts/templateStorage.jsonde waarde voor template , en parameters wordt artifacts/templateStorageParams.json.

  7. Voeg een roltoewijzing toe onder de resourcegroep. Net als bij de vorige roltoewijzingsvermelding gebruikt het volgende voorbeeld de definitie-id voor de Owner rol en biedt het een andere parameter dan de blauwdruk. In dit voorbeeld wordt de Owner ingebouwde rol gebruikt, met een GUID van 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'
    

Een blauwdruk publiceren

Nu u de artefacten aan de blauwdruk hebt toegevoegd, is het tijd om deze te publiceren. Publiceren maakt de blauwdruk beschikbaar om toe te wijzen aan een abonnement.

az blueprint publish --blueprint-name 'MyBlueprint' --version '{BlueprintVersion}'

De waarde voor {BlueprintVersion} is een tekenreeks met letters, cijfers en afbreekstreepjes (zonder spaties of andere speciale tekens). De maximumlengte is 20 tekens. Gebruik iets unieks en informatief, zoals v20200605-135541.

Een blauwdruk toewijzen

Nadat u een blauwdruk hebt gepubliceerd met behulp van de Azure CLI, kan deze worden toegewezen aan een abonnement. Wijs de blauwdruk die u hebt gemaakt toe aan een van de abonnementen in uw beheergroephiërarchie. Als de blauwdruk is opgeslagen in een abonnement, kan deze alleen aan dat abonnement worden toegewezen. De blueprint-name parameter geeft de blauwdruk op die moet worden toegewezen. Als u de nameparameters , locationen lockidentityblueprint parameters wilt opgeven, gebruikt u de overeenkomende Azure CLI-parameters in de az blueprint assignment create opdracht of geeft u deze op in het JSON-parameterbestand.

  1. Voer de blauwdrukimplementatie uit door deze toe te wijzen aan een abonnement. Omdat aan de contributors en owners parameters een matrix van objectIds de principals is vereist om de roltoewijzing te krijgen, gebruikt u Azure Active Directory Graph API om het objectIds te verzamelen voor gebruik in de parameters voor uw eigen gebruikers, groepen of service-principals.

    • JSON-bestand - 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"
             ]
         }
      }
      
    • Azure CLI-opdracht

      az blueprint assignment create \
         --name 'assignMyBlueprint' \
         --location 'westus' \
         --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \
         --parameters blueprintAssignment.json
      
    • Door de gebruiker toegewezen beheerde identiteit

      Een blauwdruktoewijzing kan ook gebruikmaken van een door een gebruiker toegewezen beheerde identiteit. In dit geval is de identity-type parameter ingesteld op UserAssigneden geeft de user-assigned-identities parameter de identiteit op. Vervang {userIdentity} door de naam van de door de gebruiker toegewezen beheerde identiteit.

      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
      

      De door de gebruiker toegewezen beheerde identiteit kan zich in elk abonnement en elke resourcegroep bevinden waaraan de gebruiker die de blauwdruk toewijst, machtigingen heeft.

      Belangrijk

      De door een gebruiker toegewezen beheerde identiteit wordt niet beheerd door Azure Blueprints. Gebruikers zijn verantwoordelijk voor het toewijzen van voldoende rollen en machtigingen, of de blauwdruktoewijzing mislukt.

Resources opschonen

U kunt een blauwdruk uit een abonnement verwijderen. Het verwijderen wordt vaak uitgevoerd als de artefactresources niet langer nodig zijn. Wanneer een blauwdruk wordt verwijderd, blijven de artefacten die als onderdeel van die blauwdruk zijn toegewezen, achter. Als u een blauwdruktoewijzing wilt verwijderen, gebruikt u de opdracht az blueprint assignment delete:

az blueprint assignment delete --name 'assignMyBlueprint'

Volgende stappen

In deze quickstart hebt u een blauwdruk gemaakt, toegewezen en verwijderd met de Azure CLI. Ga verder met het artikel over de levenscyclus van blauwdrukken voor meer informatie over Azure Blueprints.