Inicio rápido: Implementación de una plantilla de catálogo de servicios mediante la CLI

Azure Enclave es un servicio de redes en la nube que permite a las organizaciones con datos altamente confidenciales implementar y administrar rápidamente cargas de trabajo a gran escala en nubes de Azure comerciales y aisladas. En esta guía de inicio rápido, aprenderá a:

  • Implemente una plantilla de catálogo de servicios desde el catálogo de servicios mediante el CLI de Azure.

Nota:

Esta implementación de ejemplo es solo para fines de demostración y no representa todos los procedimientos recomendados para la administración de redes, sistemas o aplicaciones.

Antes de empezar

Implementación de una plantilla desde el catálogo de servicios

Las plantillas de catálogo de servicios están disponibles públicamente aquí en Azure Público:https://veservicecatalogprod.z22.web.core.windows.net/inventory.xml

Descargue una plantilla específica con el nombre que se encuentra en el inventario anterior (por ejemplo, https://veservicecatalogprod.z22.web.core.windows.net/adminVM/deploy-adminVM-1.0.1.json).

  1. Enumere las plantillas disponibles en el catálogo de servicios:

    # 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 }
    

    Nombres de cuenta de almacenamiento por entorno

    • Azure: veservicecatalogprod.z22.web.core.windows.net
    • Azure Government: veservicecatalogfairfax.z2.web.core.usgovcloudapi.net
    • Secreto de Azure: veservicecatalogussec.z1.web.core.<SecretDomain>
    • Azure Top Secret: veservicecatalogusnat.z2.web.core.<TopSecretDomain>
  2. Descarga cada plantilla Continuando con el script del paso anterior

    # download all templates
    $urls | ForEach-Object {
        $url = $_.InnerText
        $fileName = Split-Path -Leaf $url
        Invoke-WebRequest -Uri $url -OutFile $fileName
    }
    
  3. Abra la plantilla y determine los parámetros para los que debe proporcionar valores. En este ejemplo, se usa "storageAccount/deploy-storage-account-1.0.0.json"

    Tenga en cuenta qué parámetros son necesarios y qué parámetros tienen valores predeterminados.

    Cree un nuevo archivo params.json para proporcionar los valores de parámetro:

    {
        "$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. Obtén los recursos del enclave para obtener los siguientes valores de los parámetros

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

    Para más operaciones y esquemas de API, consulta la referencia de la API de Azure Enclave y el código fuente y especificaciones de la API de Azure Enclave. Aún tendrás que obtener los valores de privateLinkSubnetName, keyName y userAssignedIdentityObject.

  5. Enumeración de las subredes de la red virtual (privateLinkSubnetName)

    az network vnet subnet list --resource-group <resource-group-name> --vnet-name <vnet-name> --query "[].name"
    
  6. Obtener el nombre de clave de CMK (keyName)

    az keyvault key list --vault-name <keyvault-name> --query "[].name"
    
  7. Obtener la ubicación de userAssignedIdentityObject (userAssignedIdentityObject.location)

    az resource show --ids <user-assigned-identity-resource-id> --query location
    
  8. Obtener el nombre de la suscripción

    az account show --subscription <subscription-id> --query name
    
  9. Implementación de la plantilla

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

    Este script es para implementar una plantilla desde el catálogo de servicios.

    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>
    

Eliminar la implementación

Si no planea mantener estos recursos, elimine los recursos innecesarios para evitar cargos de Azure. Si no existen otras implementaciones en el grupo de recursos, se puede eliminar todo el grupo de recursos.