Verschlüsseln von Bereitstellungsdaten

Wenn Sie ACI-Ressourcen (Azure Container Instances) in der Cloud ausführen, sammelt und speichert der ACI-Dienst Daten im Zusammenhang mit Ihren Containern. ACI verschlüsselt diese Daten automatisch, wenn sie in der Cloud gespeichert werden. Diese Verschlüsselung schützt Ihre Daten und unterstützt Sie bei der Einhaltung der Sicherheits- und Complianceanforderungen Ihrer Organisation. ACI ermöglicht zudem die Verschlüsselung dieser Daten mit Ihrem eigenen Schlüssel. Dadurch haben Sie mehr Kontrolle über die Daten im Zusammenhang mit Ihren ACI-Bereitstellungen.

ACI-Datenverschlüsselung

Daten in ACI werden mittels 256-Bit-AES-Verschlüsselung ver- und entschlüsselt. Die Verschlüsselung ist für alle ACI-Bereitstellungen aktiviert, und Sie müssen Ihre Bereitstellung oder Container nicht ändern, um die Verschlüsselung zu nutzen. Dies schließt Metadaten zur Bereitstellung, Umgebungsvariablen, die Übergabe von Schlüsseln an Ihre Container sowie Protokolle ein, die auch nach Beendigung Ihrer Container beibehalten werden, um sie weiterhin anzeigen zu können. Die Verschlüsselung hat keine Auswirkungen auf die Leistung Ihrer Containergruppe, und es fallen keine weiteren Kosten für die Verschlüsselung an.

Sie können entweder von Microsoft verwaltete Schlüssel für die Verschlüsselung Ihrer Containerdaten nutzen oder die Verschlüsselung mit Ihren eigenen Schlüsseln verwalten. In der folgenden Tabelle werden diese beiden Optionen miteinander verglichen:

Von Microsoft verwaltete Schlüssel Vom Kunden verwaltete Schlüssel
Verschlüsselungs-/Entschlüsselungsvorgänge Azure Azure
Schlüsselspeicher Microsoft-Schlüsselspeicher Azure-Schlüsseltresor
Verantwortlich für die Schlüsselrotation Microsoft Kunde
Schlüsselzugriff Nur Microsoft Microsoft, Kunde

Dieser Artikel beschreibt zwei Verfahren zur Verschlüsselung von Daten mit einem kundenseitig verwalteten Schlüssel:

  • Verschlüsseln von Daten mit einem kundenseitig verwalteten Schlüssel, der in einer Azure Key Vault-Standardinstanz gespeichert ist
  • Verschlüsseln Sie Daten mit einem kundenseitig verwalteten Schlüssel, der in einer netzwerkgeschützten Azure Key Vault-Instanz mit aktivierten vertrauenswürdigen Diensten gespeichert ist.

Verschlüsseln von Daten mit einem kundenseitig verwalteten Schlüssel, der in einer Azure Key Vault-Standardinstanz gespeichert ist

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

Erstellen eines Dienstprinzipals für ACI

Als Erstes muss dafür gesorgt werden, dass Ihr Azure-Mandant über einen zugewiesenen Dienstprinzipal verfügt, um dem Azure Container Instances-Dienst Berechtigungen zu gewähren.

Wichtig

Um den folgenden Befehl auszuführen und erfolgreich einen Dienstprinzipal zu erstellen, vergewissern Sie sich, dass Sie über die Berechtigungen zum Erstellen von Dienstprinzipalen in Ihrem Mandanten verfügen.

Mit dem folgenden CLI-Befehl wird der ACI-Dienstprinzipal in Ihrer Azure-Umgebung eingerichtet:

az ad sp create --id 6bb8e274-af5d-4df2-98a3-4fd78b4cafd9

Die Ausgabe des Befehls sollte ein Dienstprinzipal sein, der mit Folgendem eingerichtet wurde: "displayName": "Azure Container Instance Service."

Falls Sie den Dienstprinzipal nicht erfolgreich erstellen können:

  • Vergewissern Sie sich, dass Sie über die dafür erforderlichen Berechtigungen in Ihrem Mandanten verfügen.
  • Überprüfen Sie, ob bereits ein Dienstprinzipal in Ihrem Mandanten für die Bereitstellung in ACI vorhanden ist. Dies können Sie tun, indem Sie az ad sp show --id 6bb8e274-af5d-4df2-98a3-4fd78b4cafd9 ausführen und stattdessen diesen Dienstprinzipal verwenden.

Erstellen einer Key Vault-Ressource

Sie können eine Azure Key Vault-Instanz im Azure-Portal, mit der Azure-Befehlszeilenschnittstelle oder mit Azure PowerShell erstellen.

Berücksichtigen Sie bei den Eigenschaften Ihres Schlüsseltresors die folgenden Richtlinien:

  • Name: Es ist ein eindeutiger Name erforderlich.
  • Abonnement: Wählen Sie ein Abonnement aus.
  • Wählen Sie unter „Ressourcengruppe“ entweder eine bereits vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue Ressourcengruppe, und geben Sie einen Ressourcengruppennamen ein.
  • Wählen Sie im Pulldownmenü „Standort“ einen Standort aus.
  • Bei den anderen Optionen können Sie entweder die Standardeinstellungen übernehmen oder sie gemäß Ihren individuellen Anforderungen festlegen.

Wichtig

Wenn Sie kundenseitig verwaltete Schlüssel zum Verschlüsseln einer ACI-Bereitstellungsvorlage verwenden, empfiehlt es sich, für den Schlüsseltresor die Eigenschaften „Soft Delete“ (Vorläufig löschen) und „Do Not Purge“ (Nicht bereinigen) festzulegen. Diese Eigenschaften sind standardmäßig nicht aktiviert, können aber entweder mithilfe von PowerShell oder per Azure CLI für einen neuen oder vorhandenen Schlüsseltresor aktiviert werden.

Generieren eines neuen Schlüssels

Navigieren Sie nach der Erstellung Ihres Schlüsseltresors zur entsprechenden Ressource im Azure-Portal. Wählen Sie im linken Navigationsmenü des Ressourcenblatts unter „Einstellungen“ die Option Schlüssel aus. Wählen Sie in der Ansicht für „Schlüssel“ die Option „Generieren/importieren“ aus, um einen neuen Schlüssel zu generieren. Verwenden Sie einen beliebigen eindeutigen Namen für diesen Schlüssel, und legen Sie die gewünschten Einstellungen fest.

Generieren eines neuen Schlüssels

Festlegen der Zugriffsrichtlinie

Erstellen Sie eine neue Zugriffsrichtlinie, um dem ACI-Dienst den Zugriff auf Ihren Schlüssel zu ermöglichen.

  • Wählen Sie nach Abschluss der Schlüsselgenerierung auf dem Ressourcenblatt Ihres Schlüsseltresors unter „Einstellungen“ die Option Zugriffsrichtlinien aus.
  • Wählen Sie auf der Seite „Zugriffsrichtlinien“ für Ihren Schlüsseltresor die Option Zugriffsrichtlinie hinzufügen aus.
  • Schließen Sie unter Schlüsselberechtigungen die Berechtigungen Abrufen und Schlüssel entpacken ein. Festlegen der Schlüsselberechtigungen
  • Wählen Sie unter Prinzipal auswählen die Option Azure Container Instance Service aus.
  • Wählen Sie unten Hinzufügen aus.

Die Zugriffsrichtlinie sollte nun in den Zugriffsrichtlinien Ihres Schlüsseltresors angezeigt werden.

Neue Zugriffsrichtlinie

Ändern Ihrer JSON-Bereitstellungsvorlage

Wichtig

Das Verschlüsseln von Bereitstellungsdaten mit einem kundenseitig verwalteten Schlüssel ist in der neuesten API-Version (2019-12-01) verfügbar, deren Rollout momentan durchgeführt wird. Geben Sie diese API-Version in Ihrer Bereitstellungsvorlage an. Sollten dabei Probleme auftreten, wenden Sie sich an den Azure-Support.

Fügen Sie Ihrer ACI-Bereitstellungsvorlage nach dem Einrichten des Schlüsseltresorschlüssels und der Zugriffsrichtlinie die folgenden Eigenschaften hinzu. Weitere Informationen zum Bereitstellen von ACI-Ressourcen mit einer Vorlage finden Sie im Tutorial: Bereitstellen einer Gruppe mit mehreren Containern über eine Resource Manager-Vorlage.

  • Legen Sie unter resourcesapiVersion auf 2019-12-01 fest.
  • Fügen Sie im Abschnitt mit den Containergruppeneigenschaften der Bereitstellungsvorlage eine encryptionProperties mit folgenden Werten hinzu:
    • vaultBaseUrl: Der DNS-Name Ihres Schlüsseltresors. Diesen finden Sie auf dem Übersichtsblatt der Schlüsseltresorressource im Portal.
    • keyName: Der Name des zuvor generierten Schlüssels.
    • keyVersion: Die aktuelle Version des Schlüssels. Dieses Feld finden Sie, indem Sie direkt den Schlüssel auswählen (im Abschnitt „Einstellungen“ Ihrer Schlüsseltresorressource unter „Schlüssel“).
  • Fügen Sie unter den Eigenschaften der Containergruppe eine sku-Eigenschaft mit dem Wert Standard hinzu. Die sku-Eigenschaft ist in API-Version 2019-12-01 erforderlich.

Der folgende Vorlagenausschnitt zeigt diese zusätzlichen Eigenschaften zum Verschlüsseln von Bereitstellungsdaten:

[...]
"resources": [
    {
        "name": "[parameters('containerGroupName')]",
        "type": "Microsoft.ContainerInstance/containerGroups",
        "apiVersion": "2019-12-01",
        "location": "[resourceGroup().location]",    
        "properties": {
            "encryptionProperties": {
                "vaultBaseUrl": "https://example.vault.azure.net",
                "keyName": "acikey",
                "keyVersion": "xxxxxxxxxxxxxxxx"
            },
            "sku": "Standard",
            "containers": {
                [...]
            }
        }
    }
]

Im Folgenden finden Sie eine vollständige Vorlage, angepasst auf Grundlage der Vorlage im Tutorial: Bereitstellen einer Gruppe mit mehreren Containern über eine Resource Manager-Vorlage.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "containerGroupName": {
      "type": "string",
      "defaultValue": "myContainerGroup",
      "metadata": {
        "description": "Container Group name."
      }
    }
  },
  "variables": {
    "container1name": "aci-tutorial-app",
    "container1image": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
    "container2name": "aci-tutorial-sidecar",
    "container2image": "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar"
  },
  "resources": [
    {
      "name": "[parameters('containerGroupName')]",
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2019-12-01",
      "location": "[resourceGroup().location]",
      "properties": {
        "encryptionProperties": {
            "vaultBaseUrl": "https://example.vault.azure.net",
            "keyName": "acikey",
            "keyVersion": "xxxxxxxxxxxxxxxx"
        },
        "sku": "Standard",  
        "containers": [
          {
            "name": "[variables('container1name')]",
            "properties": {
              "image": "[variables('container1image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              },
              "ports": [
                {
                  "port": 80
                },
                {
                  "port": 8080
                }
              ]
            }
          },
          {
            "name": "[variables('container2name')]",
            "properties": {
              "image": "[variables('container2image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              }
            }
          }
        ],
        "osType": "Linux",
        "ipAddress": {
          "type": "Public",
          "ports": [
            {
              "protocol": "tcp",
              "port": "80"
            },
            {
                "protocol": "tcp",
                "port": "8080"
            }
          ]
        }
      }
    }
  ],
  "outputs": {
    "containerIPv4Address": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups/', parameters('containerGroupName'))).ipAddress.ip]"
    }
  }
}

Bereitstellen Ihrer Ressourcen

Wenn Sie die Vorlagendatei auf Ihrem Desktop erstellt und bearbeitet haben, können Sie sie in Ihr Cloud Shell-Verzeichnis hochladen, indem Sie sie dorthin ziehen.

Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe.

az group create --name myResourceGroup --location eastus

Stellen Sie die Vorlage mit dem Befehl az deployment group create bereit.

az deployment group create --resource-group myResourceGroup --template-file deployment-template.json

Innerhalb weniger Sekunden sollten Sie eine erste Antwort von Azure erhalten. Nach Abschluss der Bereitstellung werden alle bereitstellungsbezogenen Daten, die vom ACI-Dienst gespeichert werden, mit dem bereitgestellten Schlüssel verschlüsselt.

Verschlüsseln von Daten mit einem kundenseitig verwalteten Schlüssel in einer netzwerkgeschützten Azure Key Vault-Instanz mit aktivierten vertrauenswürdigen Diensten

Erstellen einer Key Vault-Ressource

Sie können eine Azure Key Vault-Instanz im Azure-Portal, mit der Azure-Befehlszeilenschnittstelle oder mit Azure PowerShell erstellen. Wenden Sie zunächst keine Netzwerkbeschränkungen an, damit wir dem Tresor die erforderlichen Schlüssel hinzufügen können. In den folgenden Schritten fügen wir Netzwerkeinschränkungen hin und aktivieren vertrauenswürdige Dienste.

Berücksichtigen Sie bei den Eigenschaften Ihres Schlüsseltresors die folgenden Richtlinien:

  • Name: Es ist ein eindeutiger Name erforderlich.
  • Abonnement: Wählen Sie ein Abonnement aus.
  • Wählen Sie unter „Ressourcengruppe“ entweder eine bereits vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue Ressourcengruppe, und geben Sie einen Ressourcengruppennamen ein.
  • Wählen Sie im Pulldownmenü „Standort“ einen Standort aus.
  • Bei den anderen Optionen können Sie entweder die Standardeinstellungen übernehmen oder sie gemäß Ihren individuellen Anforderungen festlegen.

Wichtig

Wenn Sie kundenseitig verwaltete Schlüssel zum Verschlüsseln einer ACI-Bereitstellungsvorlage verwenden, empfiehlt es sich, für den Schlüsseltresor die Eigenschaften „Soft Delete“ (Vorläufig löschen) und „Do Not Purge“ (Nicht bereinigen) festzulegen. Diese Eigenschaften sind standardmäßig nicht aktiviert, können aber entweder mithilfe von PowerShell oder per Azure CLI für einen neuen oder vorhandenen Schlüsseltresor aktiviert werden.

Generieren eines neuen Schlüssels

Navigieren Sie nach der Erstellung Ihres Schlüsseltresors zur entsprechenden Ressource im Azure-Portal. Wählen Sie im linken Navigationsmenü des Ressourcenblatts unter „Einstellungen“ die Option Schlüssel aus. Wählen Sie in der Ansicht für „Schlüssel“ die Option „Generieren/importieren“ aus, um einen neuen Schlüssel zu generieren. Verwenden Sie einen beliebigen eindeutigen Namen für diesen Schlüssel, und legen Sie die gewünschten Einstellungen fest. Achten Sie darauf, den Namen und die Version des Schlüssels für die nachfolgenden Schritte zu speichern.

Screenshot der Einstellungen für die Schlüsselerstellung, PNG

Erstellen einer benutzerseitig zugewiesenen verwalteten Identität für Ihre Containergruppe

Erstellen Sie mit dem Befehl az identity create eine Identität in Ihrem Abonnement. Sie können die gleiche Ressourcengruppe verwenden, die Sie zum Erstellen der Key Vault-Instanz verwendet haben, oder eine andere Ressourcengruppe auswählen.

az identity create \
  --resource-group myResourceGroup \
  --name myACIId

Um die Identität in den folgenden Schritten verwenden zu können, speichern Sie mit dem Befehl az identity show die Dienstprinzipal-ID der Identität und die Ressourcen-ID in Variablen.

# Get service principal ID of the user-assigned identity
spID=$(az identity show \
  --resource-group myResourceGroup \
  --name myACIId \
  --query principalId --output tsv)

Festlegen der Zugriffsrichtlinie

Erstellen Sie eine neue Zugriffsrichtlinie, die es der benutzerseitig zugewiesenen Identität erlaubt, auf Ihren Schlüssel zuzugreifen und dessen Umschließung für die Verschlüsselung aufzuheben.

az keyvault set-policy \
    --name mykeyvault \
    --resource-group myResourceGroup \
    --object-id $spID \
    --key-permissions get unwrapKey

Ändern der Netzwerkberechtigungen von Azure Key Vault

Mit den folgenden Befehlen werden eine Azure Firewall für Azure Key Vault eingerichtet und vertrauenswürdige Azure-Dienste zugelassen, z. B. ACI-Zugriff.

az keyvault update \
    --name mykeyvault \
    --resource-group myResourceGroup \
    --default-action Deny
az keyvault update \
    --name mykeyvault \
    --resource-group myResourceGroup \
    --bypass AzureServices

Ändern Ihrer JSON-Bereitstellungsvorlage

Wichtig

Die Verschlüsselung von Bereitstellungsdaten mit einem kundenseitig verwalteten Schlüssel ist ab der API-Version 2022-09-01 verfügbar. Die API-Version 2022-09-01 ist nur über ARM oder REST verfügbar. Sollten dabei Probleme auftreten, wenden Sie sich an den Azure-Support. Fügen Sie Ihrer ACI-Bereitstellungsvorlage nach dem Einrichten des Schlüsseltresorschlüssels und der Zugriffsrichtlinie die folgenden Eigenschaften hinzu. Weitere Informationen zum Bereitstellen von ACI-Ressourcen mit einer Vorlage finden Sie im Tutorial: Bereitstellen einer Gruppe mit mehreren Containern über eine Resource Manager-Vorlage.

  • Legen Sie unter resourcesapiVersion auf 2022-09-01 fest.
  • Fügen Sie im Abschnitt mit den Containergruppeneigenschaften der Bereitstellungsvorlage eine encryptionProperties mit folgenden Werten hinzu:
    • vaultBaseUrl: Der DNS-Name Ihres Schlüsseltresors. Diese Eigenschaft finden Sie auf dem Übersichtsblatt der Schlüsseltresorressource im Portal.
    • keyName: Der Name des zuvor generierten Schlüssels.
    • keyVersion: Die aktuelle Version des Schlüssels. Diese Eigenschaft finden Sie, indem Sie direkt auf den Schlüssel klicken (im Abschnitt „Einstellungen“ Ihrer Schlüsseltresorressource unter „Schlüssel“).
    • identity: Diese Eigenschaft ist der Ressourcen-URI der zuvor erstellten Instanz der verwalteten Identität.
  • Fügen Sie unter den Eigenschaften der Containergruppe eine sku-Eigenschaft mit dem Wert Standard hinzu. Die sku-Eigenschaft ist in API-Version 2022-09-01 erforderlich.
  • Fügen Sie unter „Ressourcen“ das für die Verwendung der verwalteten Identität mit ACI erforderliche identity-Objekt hinzu, das die folgenden Werte enthält:
    • type: Der Typ der verwendeten Identität (benutzer- oder systemseitig zugewiesen). In diesem Fall wird „UserAssigned“ festgelegt.
    • userAssignedIdentities: Der Ressourcen-URI (resourceURI) der gleichen benutzerseitig zugewiesenen Identität, die im encryptionProperties-Objekt verwendet wird.

Der folgende Vorlagenausschnitt zeigt diese zusätzlichen Eigenschaften zum Verschlüsseln von Bereitstellungsdaten:

[...]
"resources": [
    {
        "name": "[parameters('containerGroupName')]",
        "type": "Microsoft.ContainerInstance/containerGroups",
        "apiVersion": "2019-12-01",
        "location": "[resourceGroup().location]",    
        "identity": {
         "type": "UserAssigned",
         "userAssignedIdentities": {
           "/subscriptions/XXXXXXXXXXXXXXXXXXXXXX/resourcegroups/XXXXXXXXXXXXXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId": {}
         }
        },
        "properties": {
            "encryptionProperties": {
                "vaultBaseUrl": "https://example.vault.azure.net",
                "keyName": "acikey",
                "keyVersion": "xxxxxxxxxxxxxxxx",
                "identity": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXX/resourcegroups/XXXXXXXXXXXXXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId"
            },
            "sku": "Standard",
            "containers": {
                [...]
            }
        }
    }
]

Im Folgenden finden Sie eine vollständige Vorlage, angepasst auf Grundlage der Vorlage im Tutorial: Bereitstellen einer Gruppe mit mehreren Containern über eine Resource Manager-Vorlage.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "containerGroupName": {
      "type": "string",
      "defaultValue": "myContainerGroup",
      "metadata": {
        "description": "Container Group name."
      }
    }
  },
  "variables": {
    "container1name": "aci-tutorial-app",
    "container1image": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
    "container2name": "aci-tutorial-sidecar",
    "container2image": "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar"
  },
  "resources": [
    {
      "name": "[parameters('containerGroupName')]",
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2022-09-01",
      "location": "[resourceGroup().location]",
      "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/XXXXXXXXXXXXXXXXXXXXXX/resourcegroups/XXXXXXXXXXXXXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId": {}
        }
      },
      "properties": {
        "encryptionProperties": {
          "vaultBaseUrl": "https://example.vault.azure.net",
          "keyName": "acikey",
          "keyVersion": "xxxxxxxxxxxxxxxx",
          "identity": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXX/resourcegroups/XXXXXXXXXXXXXXXXXXXXXX/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myACIId"
        },
        "sku": "Standard",
        "containers": [
          {
            "name": "[variables('container1name')]",
            "properties": {
              "image": "[variables('container1image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              },
              "ports": [
                {
                  "port": 80
                },
                {
                  "port": 8080
                }
              ]
            }
          },
          {
            "name": "[variables('container2name')]",
            "properties": {
              "image": "[variables('container2image')]",
              "resources": {
                "requests": {
                  "cpu": 1,
                  "memoryInGb": 1.5
                }
              }
            }
          }
        ],
        "osType": "Linux",
        "ipAddress": {
          "type": "Public",
          "ports": [
            {
              "protocol": "tcp",
              "port": "80"
            },
            {
              "protocol": "tcp",
              "port": "8080"
            }
          ]
        }
      }
    }
  ],
  "outputs": {
    "containerIPv4Address": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups/', parameters('containerGroupName'))).ipAddress.ip]"
    }
  }
}

Bereitstellen Ihrer Ressourcen

Wenn Sie die Vorlagendatei auf Ihrem Desktop erstellt und bearbeitet haben, können Sie sie in Ihr Cloud Shell-Verzeichnis hochladen, indem Sie sie dorthin ziehen.

Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe.

az group create --name myResourceGroup --location eastus

Stellen Sie die Vorlage mit dem Befehl az deployment group create bereit.

az deployment group create --resource-group myResourceGroup --template-file deployment-template.json

Innerhalb weniger Sekunden sollten Sie eine erste Antwort von Azure erhalten. Nach Abschluss der Bereitstellung werden alle bereitstellungsbezogenen Daten, die vom ACI-Dienst gespeichert werden, mit dem bereitgestellten Schlüssel verschlüsselt.