Quickstart: Een servicecatalogussjabloon implementeren met behulp van de CLI

Azure Enclave is een cloudnetwerkservice waarmee organisaties met zeer gevoelige gegevens workloads snel op grote schaal kunnen uitrollen en beheren in commerciële en air-gapped Azure-clouds. In deze quickstart gaat u als volgt te werk:

  • Implementeer een servicecatalogussjabloon uit de servicecatalogus met behulp van de Azure CLI.

Note

Deze voorbeeldimplementatie is alleen bedoeld voor demodoeleinden en vertegenwoordigt niet alle aanbevolen procedures voor netwerk-, systemen- of toepassingsbeheer.

Voordat u begint

Een sjabloon implementeren vanuit de servicecatalogus

De servicecatalogussjablonen zijn hier openbaar beschikbaar in Azure Openbaar:https://veservicecatalogprod.z22.web.core.windows.net/inventory.xml

Een specifieke sjabloon downloaden met behulp van de naam die in de bovenstaande inventaris is gevonden (bijvoorbeeld https://veservicecatalogprod.z22.web.core.windows.net/adminVM/deploy-adminVM-1.0.1.json)

  1. Geef de beschikbare sjablonen in de servicecatalogus weer:

    # 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 van opslagaccounts per omgeving

    • 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. Download elk sjabloon dat verdergaat met het script uit de vorige stap

    # download all templates
    $urls | ForEach-Object {
        $url = $_.InnerText
        $fileName = Split-Path -Leaf $url
        Invoke-WebRequest -Uri $url -OutFile $fileName
    }
    
  3. Open de sjabloon en bepaal voor welke parameters u waarden moet opgeven. In dit voorbeeld gebruiken we 'storageAccount/deploy-storage-account-1.0.0.json'

    Let op welke parameters vereist zijn en welke parameters standaardwaarden hebben.

    Maak een nieuw params.json-bestand om de parameterwaarden op te geven:

    {
        "$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. Haal de enclaveresources op om de volgende parameterwaarden op te geven

    • storageAccountName
    • virtueelNetwerkNaam
    • networkResourceGroupName
    • privateDnsZoneResourceGroupName
    • keyVaultName
    • keyVaultResourceGroupName
    • Id van userAssignedIdentityObject
    az rest --method get --uri "<enclave-resource-id>?api-version=2026-03-01-preview"
    

    Voor meer API-operaties en schema's, zie de Azure Enclave API-referentie en de broncode en specificaties van Azure Enclave API. U moet nog steeds waarden ophalen privateLinkSubnetName, keyName, userAssignedIdentityObject

  5. De subnetten in het virtuele netwerk weergeven (privateLinkSubnetName)

    az network vnet subnet list --resource-group <resource-group-name> --vnet-name <vnet-name> --query "[].name"
    
  6. CMK-sleutelnaam ophalen (keyName)

    az keyvault key list --vault-name <keyvault-name> --query "[].name"
    
  7. De locatie van userAssignedIdentityObject ophalen (userAssignedIdentityObject.location)

    az resource show --ids <user-assigned-identity-resource-id> --query location
    
  8. De abonnementsnaam ophalen

    az account show --subscription <subscription-id> --query name
    
  9. De sjabloon implementeren

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

    Dit script is bedoeld voor het implementeren van een sjabloon uit de servicecatalogus

    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=2026-03-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>
    

De implementatie verwijderen

Als u niet van plan bent om deze resources te bewaren, moet u onnodige resources opschonen om Azure kosten te voorkomen. Als er geen andere implementaties in de resourcegroep aanwezig zijn, kan de hele resourcegroep worden verwijderd.