Verschlüsseln Ihrer ruhenden Anwendungsdaten mithilfe von kundenseitig verwalteten Schlüsseln

Zum Verschlüsseln der Anwendungsdaten Ihrer Funktions-App im Ruhezustand sind ein Azure Storage-Konto und eine Azure Key Vault-Instanz erforderlich. Diese Dienste werden verwendet, wenn Sie die App aus einem Bereitstellungspaket ausführen.

  • Azure Storage ermöglicht die Verschlüsselung ruhender Daten. Sie können vom System bereitgestellte Schlüssel oder eigene, vom Kunden verwaltete Schlüssel verwenden. Dort werden Ihre Anwendungsdaten gespeichert, wenn sie nicht in einer Funktions-App in Azure ausgeführt werden.
  • Das Ausführen aus einem Bereitstellungspaket ist eine Bereitstellungsfunktion von App Service. Sie ermöglicht Ihnen, Ihre Websiteinhalte mithilfe einer SAS-URL (Shared Access Signature) über ein Azure Storage-Konto bereitzustellen.
  • Key Vault-Verweise sind ein Sicherheitsfeature von App Service. Es ermöglicht Ihnen, Geheimnisse zur Laufzeit als Anwendungseinstellungen zu importieren. Verwenden Sie dies zum Verschlüsseln der SAS-URL Ihres Azure Storage-Kontos.

Einrichten der Verschlüsselung ruhender Daten

Erstellen eines Azure-Speicherkontos

Erstellen Sie zunächst ein Azure Storage-Konto, und verschlüsseln Sie es mit kundenseitig verwalteten Schlüsseln. Sobald das Konto erstellt ist, laden Sie mit dem Azure Storage-Explorer die Paketdateien hoch.

Verwenden Sie als nächstes den Storage-Explorer, um eine SAS zu generieren.

Hinweis

Speichern Sie diese SAS-URL. Sie wird später verwendet, um zur Laufzeit sicheren Zugriff auf das Bereitstellungspaket zu aktivieren.

Konfigurieren der Ausführung aus einem Paket aus Ihrem Speicherkonto

Wenn Sie Ihre Datei in Blobspeicher hochgeladen haben und über eine SAS-URL für die Datei verfügen, können Sie die Anwendungseinstellung WEBSITE_RUN_FROM_PACKAGE auf die SAS-URL festlegen. Im folgenden Beispiel wird dazu die Azure-Befehlszeilenschnittstelle verwendet:

az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="<your-SAS-URL>"

Wenn Sie diese Anwendungseinstellung hinzufügen, wird Ihre Funktions-App neu gestartet. Nachdem die App neu gestartet wurde, navigieren Sie zu der App, und stellen Sie sicher, dass die App ordnungsgemäß mit dem Bereitstellungspaket gestartet wurde. Wenn die Anwendung nicht ordnungsgemäß gestartet wurde, nutzen Sie die Informationen zur Problembehandlung.

Verschlüsseln der Anwendungseinstellung mithilfe von Key Vault-Verweisen

Nun können Sie den Wert der Anwendungseinstellung WEBSITE_RUN_FROM_PACKAGE durch einen Key Vault-Verweis auf die SAS-codierte URL ersetzen. Dadurch wird die SAS-URL in Key Vault verschlüsselt, was eine zusätzliche Sicherheitsebene bietet.

  1. Erstellen Sie mit dem Befehl az keyvault create eine Key Vault-Instanz.

    az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus    
    
  2. Befolgen Sie diese Anweisungen, um Ihrer App Zugriff auf Ihren Schlüsseltresor zu gewähren:

  3. Fügen Sie mit dem Befehl az keyvault secret set in Ihrem Schlüsseltresor Ihrer externen URL ein Geheimnis hinzu:

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  4. Erstellen Sie mit dem Befehl az webapp config appsettings set die WEBSITE_RUN_FROM_PACKAGE-Anwendungseinstellung mit dem Wert als Key Vault-Verweis auf die externe URL:

    az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"    
    

    Die <secret-version> befindet sich in der Ausgabe des vorherigen az keyvault secret set-Befehls.

Wenn Sie diese Anwendungseinstellung aktualisieren, wird Ihre Funktions-App neu gestartet. Nachdem die App neu gestartet wurde, navigieren Sie zu der App, und stellen Sie sicher, dass die App ordnungsgemäß mit dem Key Vault-Verweis gestartet wurde.

Rotieren des Zugriffstokens

Sie sollten den SAS-Schlüssel Ihres Speicherkontos regelmäßig rotieren. Um sicherzustellen, dass die Funktions-App nicht versehentlich den Zugriff verliert, müssen Sie auch die SAS-URL in Key Vault aktualisieren.

  1. Rotieren Sie den SAS-Schlüssel, indem Sie im Azure-Portal zu Ihrem Speicherkonto navigieren. Wählen Sie unter Einstellungen>Zugriffsschlüssel das Symbol aus, um den SAS-Schlüssel zu rotieren.

  2. Kopieren Sie die neue SAS-URL, und legen Sie mit dem folgenden Befehl die aktualisierte SAS-URL in Ihrem Schlüsseltresor fest:

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  3. Aktualisieren Sie den Key Vault-Verweis in der Anwendungseinstellung auf die neue Geheimnisversion:

    az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"    
    

    Die <secret-version> befindet sich in der Ausgabe des vorherigen az keyvault secret set-Befehls.

Widerrufen des Datenzugriffs der Funktions-App

Es gibt zwei Methoden, den Zugriff der Funktions-App auf das Speicherkonto zu widerrufen.

Rotieren des SAS-Schlüssels für das Azure-Speicherkonto

Wenn der SAS-Schlüssel für das Speicherkonto rotiert wird, kann die Funktions-App nicht mehr auf das Speicherkonto zugreifen, wird jedoch weiterhin mit der zuletzt heruntergeladenen Version der Paketdatei ausgeführt. Starten Sie die Funktions-App neu, um die zuletzt heruntergeladene Version zu löschen.

Entfernen des Zugriffs der Funktions-App auf Key Vault

Sie können den Zugriff der Funktions-App auf die Websitedaten widerrufen, indem Sie den Zugriff der Funktions-App auf Key Vault deaktivieren. Entfernen Sie hierzu die Zugriffsrichtlinie für die Identität der Funktions-App. Dies ist dieselbe Identität, die Sie zuvor beim Konfigurieren von Key Vault-Verweisen erstellt haben.

Zusammenfassung

Ihre Anwendungsdateien sind jetzt im Ruhezustand in Ihrem Speicherkonto verschlüsselt. Wenn Ihre Funktions-App gestartet wird, ruft sie die SAS-URL aus Ihrem Schlüsseltresor ab. Zum Schluss lädt die Funktions-App die Anwendungsdateien aus dem Speicherkonto.

Wenn Sie den Zugriff auf Ihr Speicherkonto für die Funktions-App widerrufen müssen, können Sie entweder den Zugriff auf den Schlüsseltresor widerrufen oder die Speicherkontoschlüssel rotieren. Durch beide Vorgänge wird die SAS-URL ungültig.

Häufig gestellte Fragen

Fällt eine zusätzliche Gebühr für das Ausführen meiner Funktions-App aus dem Bereitstellungspaket an?

Nur die Kosten im Zusammenhang mit dem Azure Storage-Konto und ggf. Gebühren für ausgehenden Datenverkehr.

Wie wirkt sich die Ausführung des Bereitstellungspakets auf meine Funktions-App aus?

  • Wenn Sie Ihre App aus dem Bereitstellungspaket ausführen, wird wwwroot/ schreibgeschützt. Ihre App empfängt eine Fehlermeldung bei dem Versuch, in dieses Verzeichnis zu schreiben.
  • Das TAR- und das GZIP-Format werden nicht unterstützt.
  • Dieses Feature ist nicht mit lokalem Cache kompatibel.

Nächste Schritte