Início Rápido: Implantar um modelo de catálogo de serviços usando a CLI

O Azure Enclave é um serviço de rede em nuvem que oferece às organizações com dados altamente confidenciais a capacidade de implantar e gerenciar cargas de trabalho rapidamente em nuvens do Azure comerciais e isoladas (air-gapped) em escala. Neste guia de início rápido, você:

  • Implante um modelo do Catálogo de Serviços usando a CLI do Azure.

Note

Essa implantação de exemplo é apenas para fins de demonstração e não representa todas as práticas recomendadas para administração de rede, sistemas ou aplicativos.

Antes de começar

Implantar um modelo do catálogo de serviços

Os modelos do catálogo de serviços estão disponíveis publicamente aqui no Azure Público:https://veservicecatalogprod.z22.web.core.windows.net/inventory.xml

Baixe um modelo específico usando o nome encontrado no inventário acima (por exemplo, https://veservicecatalogprod.z22.web.core.windows.net/adminVM/deploy-adminVM-1.0.1.json)

  1. Liste os modelos disponíveis no catálogo de serviços:

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

    Nomes de conta de armazenamento por ambiente

    • Azure: veservicecatalogprod.z22.web.core.windows.net
    • Azure Governamental: veservicecatalogfairfax.z2.web.core.usgovcloudapi.net
    • Azure Segredo: veservicecatalogussec.z1.web.core.<SecretDomain>
    • Azure Top Secret: veservicecatalogusnat.z2.web.core.<TopSecretDomain>
  2. Baixar cada modelo Continuando o script da etapa anterior

    # download all templates
    $urls | ForEach-Object {
        $url = $_.InnerText
        $fileName = Split-Path -Leaf $url
        Invoke-WebRequest -Uri $url -OutFile $fileName
    }
    
  3. Abra o modelo e determine para quais parâmetros você precisa fornecer valores. Neste exemplo, usamos "storageAccount/deploy-storage-account-1.0.0.json"

    Observe quais parâmetros são necessários e quais parâmetros têm valores padrão.

    Crie um novo arquivo params.json para fornecer os 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. Obtenha os recursos do enclave para fornecer os seguintes valores dos parâmetros

    • storageAccountName
    • virtualNetworkName
    • networkResourceGroupName
    • privateDnsZoneResourceGroupName
    • keyVaultName
    • keyVaultResourceGroupName
    • ID do objeto de identidade atribuída pelo usuário
    az rest --method get --uri "<enclave-resource-id>?api-version=2026-03-01-preview"
    

    Para mais operações e esquemas de API, veja a referência da API do Azure Enclave e a fonte e especificações da API do Azure Enclave. Você ainda precisará buscar os valores privateLinkSubnetName, keyName, userAssignedIdentityObject

  5. Liste as sub-redes na rede virtual (privateLinkSubnetName)

    az network vnet subnet list --resource-group <resource-group-name> --vnet-name <vnet-name> --query "[].name"
    
  6. Obter o nome da chave CMK (keyName)

    az keyvault key list --vault-name <keyvault-name> --query "[].name"
    
  7. Obter a localização de userAssignedIdentityObject (userAssignedIdentityObject.location)

    az resource show --ids <user-assigned-identity-resource-id> --query location
    
  8. Obter o nome da assinatura

    az account show --subscription <subscription-id> --query name
    
  9. Implantar o modelo

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

    Esse script destina-se à implantação de um modelo do catálogo de serviços

    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>
    

Excluir a implantação

Se você não pretende manter esses recursos, remova os recursos desnecessários para evitar cobranças do Azure. Se nenhuma outra implantação existir no grupo de recursos, todo o grupo de recursos poderá ser excluído.