クイック スタート: CLI を使用してサービス カタログ テンプレートをデプロイする

Azure エンクレーブは、機密性の高いデータを組織に提供するクラウド ネットワーク サービスであり、商用クラウドやエアギャップされたAzure クラウド全体にワークロードをすばやくデプロイして管理する機能を大規模に提供します。 このクイック スタートでは、次の操作を行います。

  • Azure CLIを使用して、サービス カタログからサービス カタログ テンプレートをデプロイします。

Note

このサンプルデプロイはデモ目的のものであり、ネットワーク、システム、またはアプリケーションの管理に関するすべてのベスト プラクティスを表すわけではありません。

始める前の準備

サービス カタログからテンプレートをデプロイする

サービス カタログ テンプレートは、Azure Public で一般公開されています。https://veservicecatalogprod.z22.web.core.windows.net/inventory.xml

上記のインベントリにある名前を使用して、特定のテンプレートをダウンロードします (例: https://veservicecatalogprod.z22.web.core.windows.net/adminVM/deploy-adminVM-1.0.1.json)

  1. サービス カタログで使用可能なテンプレートを一覧表示します。

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

    環境別のストレージ アカウント名

    • Azure:veservicecatalogprod.z22.web.core.windows.net
    • Azure Government: veservicecatalogfairfax.z2.web.core.usgovcloudapi.net
    • Azure シークレット: veservicecatalogussec.z1.web.core。<SecretDomain>
    • Azureトップシークレット: veservicecatalogusnat.z2.web.core.<TopSecretDomain>
  2. 各テンプレートをダウンロードする 前の手順のスクリプトを続行する

    # download all templates
    $urls | ForEach-Object {
        $url = $_.InnerText
        $fileName = Split-Path -Leaf $url
        Invoke-WebRequest -Uri $url -OutFile $fileName
    }
    
  3. テンプレートを開き、値を指定する必要があるパラメーターを決定します。 この例では、"storageAccount/deploy-storage-account-1.0.0.json" を使用します

    必須のパラメーターと、既定値を持つパラメーターに注意してください。

    パラメーター値を指定する新しい params.json ファイルを作成します。

    {
        "$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. エンクレーブ リソースをフェッチして、次のパラメーター値を指定します。

    • storageAccountName
    • バーチャルネットワーク名
    • ネットワーク リソース グループ名
    • privateDnsZoneResourceGroupName
    • keyVaultName
    • keyVaultResourceGroupName
    • userAssignedIdentityObject の ID
    az rest --method get --uri "<enclave-resource-id>?api-version=2026-03-01-preview"
    

    さらに多くのAPI操作やスキーマについては、Azure Enclave APIリファレンスおよびAzure Enclave APIのソースと仕様をご覧ください。 引き続き privateLinkSubnetName、keyName、userAssignedIdentityObject の値をフェッチする必要があります

  5. 仮想ネットワーク内のサブネットを一覧表示する (privateLinkSubnetName)

    az network vnet subnet list --resource-group <resource-group-name> --vnet-name <vnet-name> --query "[].name"
    
  6. CMK キー名の取得 (keyName)

    az keyvault key list --vault-name <keyvault-name> --query "[].name"
    
  7. userAssignedIdentityObject の場所を取得します (userAssignedIdentityObject.location)

    az resource show --ids <user-assigned-identity-resource-id> --query location
    
  8. サブスクリプション名を取得する

    az account show --subscription <subscription-id> --query name
    
  9. テンプレートをデプロイする

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

    このスクリプトは、サービス カタログからテンプレートをデプロイするためのスクリプトです。

    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>
    

デプロイメントを削除する

これらのリソースを保持する予定がない場合は、不要なリソースをクリーンアップして、Azure料金を回避します。 リソース グループに他のデプロイが存在しない場合は、リソース グループ全体を削除できます。