Schnellstart: Bereitstellen einer Dienstkatalogvorlage mithilfe der CLI

Azure Enclave ist ein Cloud-Netzwerkdienst, der es Organisationen mit hochsensiblen Daten ermöglicht, Workloads in kommerziellen und isolierten Azure-Clouds schnell und in großem Maßstab bereitzustellen und zu verwalten. In dieser Schnellstartanleitung führen Sie die folgenden Schritte aus:

  • Stellen Sie mithilfe des Azure CLI eine Dienstkatalogvorlage aus dem Dienstkatalog bereit.

Note

Diese Beispielbereitstellung dient nur zu Demozwecken und stellt nicht alle bewährten Methoden für die Verwaltung von Netzwerken, Systemen oder Anwendungen dar.

Bevor Sie anfangen

Bereitstellen einer Vorlage aus dem Dienstkatalog

Die Dienstkatalogvorlagen sind hier in Azure Öffentlich öffentlich verfügbar:https://veservicecatalogprod.z22.web.core.windows.net/inventory.xml

Laden Sie eine bestimmte Vorlage anhand des oben im Inventar aufgeführten Namens herunter (z. B. https://veservicecatalogprod.z22.web.core.windows.net/adminVM/deploy-adminVM-1.0.1.json)

  1. Auflisten der verfügbaren Vorlagen im Dienstkatalog:

    # Download the XML file
    $xmlUrl = "https://veservicecatalogprod.z22.web.core.windows.net/inventory.xml"
    $xmlContent = Invoke-WebRequest -Uri $xmlUrl -UseBasicParsing
    
    # Load the XML content
    [xml]$xml = $xmlContent.Content
    
    # Extract URLs from the XML file
    $urls = $xml.SelectNodes("//EnumerationResults/Blobs/Blob/Url")
    
    # # List the URLs
    $urls | ForEach-Object { $_.InnerText }
    

    Namen von Speicherkonten nach Umgebung

    • Azure: veservicecatalogprod.z22.web.core.windows.net
    • Azure Government: veservicecatalogfairfax.z2.web.core.usgovcloudapi.net
    • Azure Secret: veservicecatalogussec.z1.web.core.<SecretDomain>
    • Azure Top Secret: veservicecatalogusnat.z2.web.core.<TopSecretDomain>
  2. Laden Sie jede Vorlage herunter, die das Skript aus dem vorherigen Schritt fortsetzt.

    # download all templates
    $urls | ForEach-Object {
        $url = $_.InnerText
        $fileName = Split-Path -Leaf $url
        Invoke-WebRequest -Uri $url -OutFile $fileName
    }
    
  3. Öffnen Sie die Vorlage, und bestimmen Sie, für welche Parameter Sie Werte angeben müssen. In diesem Beispiel verwenden wir "storageAccount/deploy-storage-account-1.0.0.json"

    Beachten Sie, welche Parameter erforderlich sind und welche Parameter Standardwerte aufweisen.

    Erstellen Sie eine neue params.json Datei, um die Parameterwerte bereitzustellen:

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "storageAccountName": {
                "value": ""
            },
            "virtualNetworkName": {
                "value": ""
            },
            "networkResourceGroupName": {
                "value": ""
            },
            "privateLinkSubnetName": {
                "value": ""
            },
            "privateDnsZoneResourceGroupName": {
                "value": ""
            },
            "keyVaultName": {
                "value": ""
            },
            "keyName": {
                "value": ""
            },
            "keyVaultResourceGroupName": {
                "value": ""
            },
            "userAssignedIdentityObject": {
                "value": {
                    "name":"",
                    "id":"",
                    "location":"",
                    "subscriptionName":""
                }
            }
        }
    }
    
  4. Rufen Sie die Ressourcen der Enklave ab, um die folgenden Parameterwerte anzugeben.

    • storageAccountName
    • virtualNetworkName
    • networkResourceGroupName
    • privateDnsZoneResourceGroupName
    • keyVaultName
    • keyVaultResourceGroupName
    • ID von userAssignedIdentityObject
    az rest --method get --uri "<enclave-resource-id>?api-version=2024-01-01-preview"
    

    Sie müssen weiterhin werte privateLinkSubnetName, keyName, userAssignedIdentityObject abrufen.

  5. Subnetze im virtuellen Netzwerk (privateLinkSubnetName) auflisten

    az network vnet subnet list --resource-group <resource-group-name> --vnet-name <vnet-name> --query "[].name"
    
  6. CMK-Schlüsselname abrufen (keyName)

    az keyvault key list --vault-name <keyvault-name> --query "[].name"
    
  7. Den Standort von userAssignedIdentityObject abrufen (userAssignedIdentityObject.location)

    az resource show --ids <user-assigned-identity-resource-id> --query location
    
  8. Den Abonnementnamen abrufen

    az account show --subscription <subscription-id> --query name
    
  9. Implementieren der Vorlage

    az deployment group create --resource-group <resource-group-name> --template-file ./<template-downloaded-name> --parameters ./<parameter-file-name>
    

    Dieses Skript dient zum Bereitstellen einer Vorlage aus dem Dienstkatalog.

    az storage blob list --account-name <storage-account-name> --container-name servicecatalog --query '[].{Name:name}'
    
    az storage blob download --account-name <storag-eaccount-name> --container-name servicecatalog --name <template-to-download-name> --file ./<template-downloaded-name>
    
    az rest --method get --uri "<enclave-resource-id>?api-version=2024-01-01-preview"
    
    az network vnet subnet list --resource-group <resource-group-name> --vnet-name <vnet-name> --query "[].name"
    
    az keyvault key list --vault-name <keyvault-name> --query "[].name"
    
    az resource show --ids <user-assigned-identity-resource-id> --query location
    
    az account show --subscription <subscription-id> --query name
    
    az deployment group create --resource-group <resource-group-name> --template-file ./<template-downloaded-name> --parameters ./<parameter-file-name>
    

Löschen der Bereitstellung

Wenn Sie nicht planen, diese Ressourcen beizubehalten, bereinigen Sie unnötige Ressourcen, um Azure Gebühren zu vermeiden. Wenn in der Ressourcengruppe keine anderen Bereitstellungen vorhanden sind, kann die gesamte Ressourcengruppe gelöscht werden.