Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig
Azure Blueprints (Vorschau) wird am 31. Januar 2027 eingestellt, mit einer phasenweisen Einstellung ab dem 31. Juli 2026. Migrieren Sie Ihre vorhandenen Blueprintdefinitionen und Zuweisungen zu Deployment Stacks (empfohlen) und Template Specs. Blueprintartefakte werden in ARM-JSON-Vorlagen oder Bicep Dateien konvertiert, die zum Definieren von Bereitstellungsstapeln verwendet werden. Den vollständigen, in Phasen unterteilten Zeitplan, die Auswirkungen sowie häufig gestellte Fragen finden Sie unter Einstellung von Azure Blueprints oder unter https://aka.ms/AzureBlueprintsRetirement. Informationen zum Erstellen eines Artefakts als ARM-Ressource finden Sie unter:
In diesem Tutorial erfahren Sie, wie Sie mithilfe von Azure Blueprints einige allgemeine Aufgaben im Zusammenhang mit der organisationsweiten Erstellung, Veröffentlichung und Zuweisung einer Blaupause durchführen. Mit dieser Fertigkeit können Sie allgemeine Muster definieren, um wiederverwendbare und schnell bereitstellbare Konfigurationen zu entwickeln, die auf ARM-Vorlagen (Azure Resource Manager), Richtlinien und Sicherheit basieren.
Voraussetzungen
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Falls das Modul AZ.Blueprint nicht bereits installiert ist, befolgen Sie die Anweisungen unter Hinzufügen des Moduls „AZ.Blueprint“, um das Modul aus dem PowerShell-Katalog zu installieren und zu überprüfen.
- Registrieren Sie den Ressourcenanbieter über Azure PowerShell mit
Register-AzResourceProvider -ProviderNamespace Microsoft.Blueprint, falls Sie Azure Blueprints noch nicht verwendet haben.
Azure Cloud Shell
Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
Starten von Azure Cloud Shell:
| Option | Beispiel/Link |
|---|---|
| Wählen Sie rechts oben in einem Code- oder Befehlsblock die Option Ausprobieren aus. Durch die Auswahl von Ausprobieren wird der Code oder Befehl nicht automatisch in Cloud Shell kopiert. |
|
| Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. |
|
| Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. |
|
So verwenden Sie Azure Cloud Shell:
Starten Sie Cloud Shell.
Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.
Fügen Sie den Code oder Befehl mit STRG+UMSCHALT+V unter Windows und Linux oder CMD+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.
Drücken Sie die EINGABETASTE, um den Code oder Befehl auszuführen.
Erstellen Sie einen Entwurf
Der erste Schritt bei der Definition eines Standardmusters für die Compliance besteht darin, aus den verfügbaren Ressourcen eine Vorlage zu erstellen. Lassen Sie uns nun ein Blueprint namens MyBlueprint erstellen, um Rollen- und Richtlinienzuweisungen für das Abonnement zu konfigurieren. Anschließend fügen Sie eine Ressourcengruppe, eine ARM-Vorlage und eine Rollenzuweisung für die Ressourcengruppe hinzu.
Hinweis
Bei Verwendung von PowerShell wird als Erstes das Objekt blueprint erstellt. Für jedes hinzuzufügende Artefakt mit Parametern definieren Sie die Parameter vorab im ursprünglichen Blueprint.
Erstellen Sie das anfängliche blueprint-Objekt. Der Parameter
BlueprintFileübernimmt eine JSON-Datei, die Eigenschaften des Blueprints, alle zu erstellenden Ressourcengruppen und sämtliche Parameter auf Blueprint-Ebene enthält. Sie legen die Parameter während der Zuweisung fest, woraufhin sie von den Artefakten verwendet werden, die Sie in späteren Schritten hinzufügen.JSON-Datei: 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." } } } }PowerShell-Befehl
# 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.jsonHinweis
Verwenden Sie den Dateinamen blueprint.json, wenn Sie Ihre Blaupausendefinitionen programmgesteuert erstellen. Dieser Dateiname wird verwendet, wenn Sie
Import-AzBlueprintWithArtifactaufrufen.Das Blueprint-Objekt wird standardmäßig in der Standardsubskription erstellt. Um die Verwaltungsgruppe anzugeben, verwenden Sie den Parameter
ManagementGroupId. Um das Abonnement anzugeben, verwenden Sie den ParameterSubscriptionId.
Fügen Sie eine Rollenzuweisung im Abonnement hinzu. Der
ArtifactFiledefiniert die Art des Artefakts. Die Eigenschaften orientieren sich am Rollendefinitionsbezeichner, und die Prinzipalbezeichner werden als Array von Werten übergeben. Im folgenden Beispiel ist für die Prinzipalbezeichner, denen die angegebene Rolle zugewiesen wird, ein Parameter konfiguriert, der bei der Blaupausenzuweisung festgelegt wird. In diesem Beispiel wird die integrierte RolleContributormit der GUIDb24988ac-6180-42a0-ab88-20f7382dd24cverwendet.JSON-Datei: \artifacts\roleContributor.json
{ "kind": "roleAssignment", "properties": { "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", "principalIds": "[parameters('contributors')]" } }PowerShell-Befehl
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Name 'roleContributor' -ArtifactFile .\artifacts\roleContributor.json
Fügen Sie eine Richtlinienzuweisung im Abonnement hinzu. Das
ArtifactFiledefiniert die Art des Artefakts, die Eigenschaften sind auf eine Richtlinien- oder Initiativdefinition abgestimmt, und die Richtlinienzuordnung ist so konfiguriert, dass die definierten Blueprint-Parameter bei der Blueprint-Zuweisung verwendet werden. In diesem Beispiel wird die integrierte RichtlinieApply tag and its default value to resource groupsmit der GUID49c88fc8-6fd1-46fd-a676-f12d1d3a4c71verwendet.JSON-Datei: \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')]" } } } }PowerShell-Befehl
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Name 'policyTags' -ArtifactFile .\artifacts\policyTags.json
Fügen Sie eine weitere Richtlinienzuweisung für das Storage-Tag (unter Wiederverwendung des Parameters
storageAccountType_ parameter) für das Abonnement hinzu. Dieses zusätzliche Artefakt der Richtlinienzuweisung veranschaulicht, dass ein für die Blaupause definierter Parameter von mehreren Artefakten verwendet werden kann. In dem Beispiel verwenden SiestorageAccountType, um ein Tag für die Ressourcengruppe festzulegen. Dieser Wert stellt Informationen zu dem Speicherkonto bereit, das Sie im nächsten Schritt erstellen werden. In diesem Beispiel wird die integrierte RichtlinieApply tag and its default value to resource groupsmit der GUID49c88fc8-6fd1-46fd-a676-f12d1d3a4c71verwendet.JSON-Datei: \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')]" } } } }PowerShell-Befehl
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Name 'policyStorageTags' -ArtifactFile .\artifacts\policyStorageTags.json
Fügen Sie unter der Ressourcengruppe eine Vorlage hinzu.
TemplateFilefür eine ARM-Vorlage enthält die normale JSON-Komponente der Vorlage. Die Vorlage verwendet außerdem die Blueprint-ParameterstorageAccountType,tagNameundtagValuewieder, indem sie einzeln an die Vorlage übergeben werden. Die Blueprint-Parameter stehen der Vorlage über den ParameterTemplateParameterFilezur Verfügung, und im JSON der Vorlage wird dieses Schlüssel-Wert-Paar verwendet, um den Wert einzufügen. Die Namen des Blaupausen- und des Vorlagenparameters können identisch sein.JSON-ARM-Vorlagendatei: \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')]" } } }JSON-ARM-Vorlagenparameterdatei: \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')]" } } }PowerShell-Befehl
# 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
Fügen Sie eine Rollenzuweisung unter der Ressourcengruppe hinzu. Ähnlich wie beim vorherigen Rollenzuweisungseintrag wird im folgenden Beispiel der Definitionsbezeichner für die Rolle
Ownerverwendet und dafür ein anderer Parameter aus der Blaupause angegeben. In diesem Beispiel wird die integrierte RolleOwnermit der GUID8e3af657-a8ff-443c-a75c-2fe8c4bcb635verwendet.JSON-Datei: \artifacts\roleOwner.json
{ "kind": "roleAssignment", "properties": { "resourceGroup": "storageRG", "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", "principalIds": "[parameters('owners')]" } }PowerShell-Befehl
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintArtifact -Blueprint $blueprint -Name 'roleOwner' -ArtifactFile .\artifacts\roleOwner.json
Blueprint veröffentlichen
Nachdem Sie die Artefakte zur Blaupause hinzugefügt haben, kann diese veröffentlicht werden. Durch die Veröffentlichung kann die Blaupause einem Abonnement zugewiesen werden.
# Use the reference to the new blueprint object from the previous steps
Publish-AzBlueprint -Blueprint $blueprint -Version '{BlueprintVersion}'
Der Wert für {BlueprintVersion} ist eine Zeichenfolge mit Buchstaben, Zahlen und Bindestrichen (ohne Leerzeichen oder Sonderzeichen). Die maximale Länge beträgt 20 Zeichen. Verwenden Sie einen eindeutigen und aussagekräftigen Wert, z. B. v20180622-135541.
Zuweisen einer Blaupause
Nach dem Veröffentlichen einer Blaupause mit PowerShell kann sie einem Abonnement zugewiesen werden. Weisen Sie die von Ihnen erstellte Blaupause einem der Abonnements unter Ihrer Verwaltungsgruppenhierarchie zu. Wenn der Blueprint in einer Subscription gespeichert ist, kann er nur dieser Subscription zugewiesen werden. Der Parameter Blueprint gibt den zuzuweisenden Blueprint an. Verwenden Sie zum Angeben der Parameter name, location, identity, lock und blueprint die entsprechenden PowerShell-Parameter für das New-AzBlueprintAssignment-Cmdlet, oder geben Sie sie in der JSON-Datei des AssignmentFile-Parameters an.
Führen Sie die Blueprint-Bereitstellung durch, indem Sie sie einem Abonnement zuweisen. Da für die Parameter
contributorsundownersein Array vonobjectIdsder Prinzipale, denen die Rollenzuweisung erteilt werden soll, erforderlich ist, verwenden Sie die Azure Active Directory Graph-API zum Sammeln derobjectIdszur Verwendung in denAssignmentFilefür Ihre eigenen Benutzer, Gruppen oder Dienstprinzipale.JSON-Datei: 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" }PowerShell-Befehl
# Use the reference to the new blueprint object from the previous steps New-AzBlueprintAssignment -Blueprint $blueprint -Name 'assignMyBlueprint' -AssignmentFile .\blueprintAssignment.jsonBenutzerseitig zugewiesene verwaltete Identität
Eine Blueprintzuweisung kann auch eine benutzerzugewiesene verwaltete Identität verwenden. In diesem Fall ändert sich der
identity-Teil der JSON-Zuweisungsdatei wie folgt. Ersetzen Sie{tenantId},{subscriptionId},{yourRG}und{userIdentity}durch Ihre Mandanten-ID, Ihre Abonnement-ID, den Namen Ihrer Ressourcengruppe bzw. den Namen Ihrer benutzerseitig zugewiesenen verwalteten Identität."identity": { "type": "userAssigned", "tenantId": "{tenantId}", "userAssignedIdentities": { "/subscriptions/{subscriptionId}/resourceGroups/{yourRG}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userIdentity}": {} } },Die benutzerseitig zugewiesene verwaltete Identität kann sich in einem beliebigen Abonnement oder in einer beliebigen Ressourcengruppe befinden, für das bzw. die der Benutzer, der die Blaupause zuweist, über Berechtigungen verfügt.
Wichtig
Die benutzerseitig zugewiesene verwaltete Identität wird nicht von Azure Blueprints verwaltet. Benutzer sind dafür verantwortlich, ausreichende Rollen und Berechtigungen zuzuweisen, andernfalls schlägt die Blueprintzuweisung fehl.
Bereinigen von Ressourcen
Sie können einen Blueprint aus einem Abonnement entfernen. Dieser Schritt wird häufig ausgeführt, wenn die Artefaktressourcen nicht mehr benötigt werden. Wenn eine Blaupause entfernt wird, werden die als Teil der Blaupause zugewiesenen Artefakte beibehalten. Verwenden Sie zum Entfernen einer Blaupausenzuweisung das Cmdlet Remove-AzBlueprintAssignment:
assignMyBlueprint
Remove-AzBlueprintAssignment -Name 'assignMyBlueprint'
Nächste Schritte
In diesem Schnellstart haben Sie mit PowerShell einen Blueprint erstellt, zugewiesen und entfernt. Weitere Informationen zu Azure Blueprints finden Sie im Artikel zum Blueprint-Lebenszyklus.