Freigeben über


Verwenden von kundenseitig verwalteten Schlüsseln zum Verschlüsseln Ihrer App Configuration-Daten

Azure App Configuration verschlüsselt vertrauliche ruhende Informationen. Die Verwendung von vom Kunden verwalteten Schlüsseln bietet einen verbesserten Datenschutz, indem Sie mehr Kontrolle über Ihre Verschlüsselungsschlüssel erhalten. Wenn Sie die Verschlüsselung mit verwaltetem Schlüssel verwenden, werden alle vertraulichen Informationen in der App-Konfiguration mit einem von Ihnen bereitgestellten Azure Key Vault-Schlüssel verschlüsselt. Daher können Sie den Verschlüsselungsschlüssel bei Bedarf drehen. Sie können den Zugriff Ihres App Configuration-Speichers auf vertrauliche Informationen auch aufheben, indem Sie dem Speicher den Zugriff auf den Schlüssel entziehen.

Übersicht

Die App-Konfiguration verschlüsselt ruhende vertrauliche Informationen mithilfe eines von Microsoft bereitgestellten 256-Bit-Verschlüsselungsschlüssels (Advanced Encryption Standard, AES). Jeder App-Konfigurationsspeicher verfügt über einen eigenen Verschlüsselungsschlüssel, der vom Dienst verwaltet und zum Verschlüsseln vertraulicher Informationen verwendet wird. Vertrauliche Informationen umfassen die Werte, die sich in Schlüssel-Wert-Paaren befinden.

Wenn Sie einen vom Kunden verwalteten Schlüssel in der App-Konfiguration verwenden, werden die folgenden Ereignisse ausgeführt:

  • Die App-Konfiguration verwendet eine verwaltete Identität, die dem App-Konfigurationsspeicher zugewiesen ist, um sich mit Microsoft Entra-ID zu authentifizieren.
  • Die verwaltete Identität ruft Key Vault auf und umschließt den Verschlüsselungsschlüssel des App-Konfigurationsspeichers.
  • Der umschlossene Verschlüsselungsschlüssel wird gespeichert.
  • Der entschlüsselte Verschlüsselungsschlüssel wird in der App-Konfiguration für eine Stunde zwischengespeichert.
  • App Configuration aktualisiert stündlich die nicht umschlossene Version des Verschlüsselungsschlüssels des App Configuration-Speichers.

Durch dieses Verfahren wird die Verfügbarkeit unter normalen Betriebsbedingungen sichergestellt.

Wichtig

Wenn eine der folgenden Bedingungen erfüllt ist, können vertrauliche Informationen, die im App-Konfigurationsspeicher gespeichert sind, nicht entschlüsselt werden:

  • Die dem App-Konfigurationsspeicher zugewiesene Identität ist nicht mehr berechtigt, den Verschlüsselungsschlüssel des Stores zu entschlüsseln.
  • Der verwaltete Schlüssel wird endgültig gelöscht.
  • Die verwaltete Schlüsselversion, die verwendet wird, läuft ab.

Sie können die Funktion "Vorläufiges Löschen " im Key Vault verwenden, um die Wahrscheinlichkeit zu verringern, dass Der Verschlüsselungsschlüssel versehentlich gelöscht wird. Um die Möglichkeit des Ablaufs des zugrunde liegenden verwalteten Schlüssels zu verringern, können Sie die Schlüsselversion weglassen, wenn Sie die Verschlüsselung mit verwaltetem Schlüssel konfigurieren und die automatische Schlüsselrotation im Key Vault einrichten. Weitere Informationen finden Sie unter "Schlüsseldrehung" weiter unten in diesem Artikel.

Requirements (Anforderungen)

Die folgenden Komponenten sind erforderlich, um die vom Kunden verwaltete Schlüsselfunktion für die App-Konfiguration erfolgreich zu aktivieren. In diesem Artikel erfahren Sie, wie Sie diese Komponenten einrichten.

  • Ein Konfigurationsspeicher für Standard- oder Premium-Apps.
  • Eine Instanz von Key Vault, für die die Features für weiches Löschen und Löschungsschutz aktiviert sind.
  • Ein Schlüssel im Schlüsseltresor, der die folgenden Anforderungen erfüllt:
    • Es verwendet Rivest-Shamir-Adleman (RSA)-Verschlüsselung oder RSA-Verschlüsselung, die ein Hardwaresicherheitsmodul (RSA-HSM) verwendet.
    • Es ist nicht abgelaufen.
    • Sie ist aktiviert.
    • Es verfügt über aktivierte Funktionen zum Verpacken und Entpacken.

Nachdem Sie in diesem Artikel gezeigt haben, wie Sie diese Ressourcen konfigurieren, werden Sie durch die folgenden Schritte weitergeleitet, damit Ihr App-Konfigurationsspeicher den Key Vault-Schlüssel verwenden kann:

  1. Weisen Sie dem App-Konfigurationsspeicher eine verwaltete Identität zu.
  2. Erteilen Sie Berechtigungen für die Identität, damit sie auf den Key Vault Schlüssel zugreifen kann.
    • Weisen Sie bei Schlüsseltresorn, die die rollenbasierte Zugriffssteuerung von Azure (Azure RBAC) verwenden, die Identität der Rolle Schlüsseltresor-Kryptodienstverschlüsselungsbenutzer im Zielschlüsseltresor zu.
    • Erteilen Sie für Schlüsseltresore, die Zugriffsrichtlinienautorisierung einsetzen, der Identität der GET-, WRAP- und UNWRAP-Berechtigungen in der Zugriffsrichtlinie des Zielschlüsseltresors.

Aktivieren der vom Kunden verwalteten Schlüsselverschlüsselung

Um die vom Kunden verwaltete Schlüsselverschlüsselung zu verwenden, führen Sie die Schritte in den folgenden Abschnitten aus.

Erstellen von Ressourcen

  1. Erstellen Sie einen App-Konfigurationsspeicher auf der Stufe "Standard" oder "Premium", wenn Sie über keinen verfügen. Anweisungen finden Sie in der Schnellstartanleitung: Erstellen eines Azure App-Konfigurationsspeichers.

  2. Führen Sie den folgenden Azure CLI-Befehl aus, um eine Instanz von Key Vault zu erstellen, die den Löschschutz aktiviert hat. Vorläufiges Löschen ist standardmäßig aktiviert. Ersetzen Sie <vault-name> und <resource-group-name> durch Ihre eigenen eindeutigen Werte.

    az keyvault create --name <vault-name> --resource-group <resource-group-name> --enable-purge-protection
    

    Die Ausgabe dieses Befehls listet die Ressourcen-ID. id. des Schlüsseltresors auf. Beachten Sie den Wert, der das folgende Format aufweist:

    /subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<vault-name>

  3. Verwenden Sie die Azure CLI, um sich selbst den Zugriff auf Ihren Schlüsseltresor zuzuweisen, den Sie zum Erstellen eines Schlüssels benötigen. Der befehl, den Sie verwenden, hängt vom Autorisierungssystem ab, das Ihr Schlüsseltresor verwendet. Es stehen zwei Modelle zur Verfügung:

    • Das Azure RBAC-Modell
    • Das Zugriffsrichtlinienmodell

    Für beide Modelle benötigen Sie die Benutzerobjekt-ID, um den Befehl auszuführen. Sie können Ihre Benutzerobjekt-ID mithilfe einer der folgenden Methoden finden:

    • Verwenden Sie den az ad user show --id <user-principal-name> Befehl in der Azure CLI, wobei <user-principal-name> ihr Benutzerprinzipalname (USER Principal Name, UPN) ist.

    • Verwenden Sie das Azure-Portal:

      1. Wählen Sie Microsoft Entra-ID und dann "Benutzer> aus.
      2. Geben Sie Ihren Namen in das Suchfeld ein, und wählen Sie dann Ihren Benutzernamen in den Ergebnissen aus.
      3. Kopieren Sie den Objekt-ID-Wert .

    Weisen Sie sich selbst Zugriff zu, indem Sie den für das Autorisierungssystem Ihres Key Vault geeigneten Befehl ausführen.

    Ersetzen Sie die Platzhalter durch die folgenden Werte:

    • Verwenden Sie für <user-object-ID> die soeben gefundene Objekt-ID.
    • Verwenden Sie für <role>, eine Rolle wie Key Vault Crypto Officer , die Ihnen den Zugriff gibt, den Sie zum Erstellen eines Schlüssels benötigen. Schließen Sie die Rolle in Anführungszeichen ein.
    • Verwenden Sie für <vault-resource-ID> die Schlüsseltresor-Ressourcen-ID aus dem vorherigen Schritt.
    az role assignment create --assignee <user-object-ID> --role <role> --scope <vault-resource-ID>
    
  4. Erstellen Sie einen Key Vault-Schlüssel, indem Sie den folgenden Befehl ausführen. Ersetzen Sie die Platzhalter durch die folgenden Werte:

    • Verwenden Sie für <key-name> Ihren eigenen eindeutigen Wert.
    • Für <key-type>:
      • Nutze RSA für RSA-Verschlüsselung.
      • Verwenden Sie RSA-HSM für RSA-HSM-Verschlüsselung. RSA-HSM Verschlüsselung ist nur in der Premium-Stufe verfügbar.
    • Verwenden Sie für <vault-name> den Namen des Schlüsseltresors aus Schritt 2.
    az keyvault key create --name <key-name> --kty <key-type> --vault-name <vault-name>
    

    Die Ausgabe dieses Befehls listet die Schlüssel-ID kiddes generierten Schlüssels auf. Beachten Sie den Wert, der das folgende Format aufweist:

    https://<vault-name>.vault.azure.net/keys/<key-name>/<key-version>

    Die Schlüssel-ID enthält die folgenden Komponenten:

    • Der Schlüsseltresor-URI: https://<vault-name>.vault.azure.net
    • Name des Schlüssels im Tresor: <key-name>
    • Schlüsseltresor-Schlüsselversion: <key-version>
  5. Erstellen Sie mithilfe einer der folgenden Optionen eine verwaltete Identität für Ihren App-Konfigurationsspeicher:

    • Führen Sie zum Erstellen einer vom Benutzer zugewiesenen verwalteten Identität die Schritte zum Hinzufügen einer vom Benutzer zugewiesenen Identität aus. Notieren Sie sich die Werte der Eigenschaften clientId und principalId der Identität.

    • Verwenden Sie den folgenden Azure CLI-Befehl, um eine vom System zugewiesene verwaltete Identität zu erstellen. Ersetzen Sie die Platzhalter durch die folgenden Werte:

      • Verwenden Sie für <App-Configuration-store-name> den Namen des App Configuration Stores aus Schritt 1.
      • Verwenden Sie für <resource-group-name> die Ressourcengruppe, in der Ihr App Configuration-Speicher enthalten ist.
    az appconfig identity assign --name <App-Configuration-store-name> --resource-group <resource-group-name> --identities [system]
    

    Die Ausgabe dieses Befehls umfasst die Prinzipal-ID (principalId) und die Mandanten-ID (tenantId) der systemseitig zugewiesenen Identität. Notieren Sie sich den Wert der principalID Eigenschaft.

    {
        "principalId": <principal-ID>,
        "tenantId": <tenant-ID>,
        "type": "SystemAssigned",
        "userAssignedIdentities": null
    }
    

Gewähren des Zugriffs und Aktivieren des Schlüssels

Die verwaltete Identität Ihres App-Konfigurationsspeichers benötigt Zugriff auf den Schlüssel, um die Schlüsselüberprüfung, Verschlüsselung und Entschlüsselung durchzuführen. Insbesondere benötigt die verwaltete Identität Zugriff auf die Aktionen GET, WRAP und UNWRAP für Schlüssel.

  • Bei Schlüsseltresorn, die Azure RBAC verwenden, können Sie diese Berechtigungen erteilen, indem Sie der verwalteten Identität die Rolle " Key Vault Crypto Service Encryption User " zuweisen.
  • Für Schlüsseltresore, die Zugriffsrichtlinienautorisierung verwenden, können Sie eine Richtlinie für die Berechtigungen dieser Schlüssel festlegen.
  1. Gewähren Sie der verwalteten Identität Zugriff auf den verwalteten Schlüssel, indem Sie den Befehl verwenden, der für das Autorisierungssystem Ihres Schlüsseltresors geeignet ist. Ersetzen Sie für beide Systeme <managed-identity-principal-ID> durch die Prinzipal-ID aus dem vorherigen Schritt.

    Ersetzen Sie <key-vault-resource-id> durch die Ressourcen-ID des Schlüsseltresors aus Schritt 2 von Ressourcen erstellen.

    az role assignment create --assignee <managed-identity-principal-ID> --role "Key Vault Crypto Service Encryption User" --scope <key-vault-resource-id>
    
  2. Aktivieren Sie die vom Kunden verwaltete Schlüsselfunktion im Dienst, indem Sie einen der folgenden Azure CLI-Befehle ausführen. Ersetzen Sie die Platzhalter durch die folgenden Werte:

    • Verwenden Sie für <resource-group-name> die Ressourcengruppe, in der Ihr App Configuration-Speicher enthalten ist.
    • Verwenden Sie für <App-Configuration-store-name> den Namen Ihres App Configuration-Speichers.
    • Verwenden Sie für <key-name> und <key-vault-URI>, die Werte aus Schritt 4 von "Ressourcen erstellen".

    Standardmäßig verwendet der Befehl eine vom System zugewiesene verwaltete Dienstidentität, um sich beim Azure Key Vault zu authentifizieren.

    • Wenn Sie eine vom System zugewiesene verwaltete Identität verwenden, um auf den vom Kunden verwalteten Schlüssel zuzugreifen, führen Sie den folgenden Befehl aus:

      az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name <key-name> --encryption-key-vault <key-vault-URI>
      
    • Wenn Sie eine vom Benutzer zugewiesene verwaltete Identität verwenden, um auf den vom Kunden verwalteten Schlüssel zuzugreifen, führen Sie den folgenden Befehl aus, der die Client-ID explizit angibt. Ersetzen Sie den <user-assigned-managed-identity-client-ID>clientId Wert aus Schritt 5 von "Ressourcen erstellen".

      az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name <key-name> --encryption-key-vault <key-vault-URI> --identity-client-id <user-assigned-managed-identity-client-ID>
      

Ihr App-Konfigurationsspeicher ist jetzt für die Verwendung eines vom Kunden verwalteten Schlüssels konfiguriert, der im Key Vault gespeichert ist.

Deaktivieren der vom Kunden verwalteten Schlüsselverschlüsselung

Wenn Sie die Verschlüsselung von vom Kunden verwalteten Schlüsseln deaktivieren, wird Ihr App-Konfigurationsspeicher auf die Verwendung von von Microsoft verwalteten Schlüsseln zurückgesetzt. Vor dem Zurücksetzen auf von Microsoft verwaltete Schlüssel verwendet die App-Konfiguration jedoch den aktuellen Schlüssel, um alle vorhandenen Daten zu entschlüsseln. Wenn der aktuelle Schlüssel abgelaufen ist oder der Zugriff darauf widerrufen wird, müssen Sie zuerst den Zugriff auf diesen Schlüssel wiederherstellen.

Hinweis

Bevor Sie Ihren App-Konfigurationsspeicher für die Verwendung eines von Microsoft verwalteten Schlüssels anstelle eines vom Kunden verwalteten Schlüssels für die Verschlüsselung konfigurieren, stellen Sie sicher, dass diese Änderung den Sicherheitsrichtlinien und Complianceanforderungen Ihrer Organisation entspricht.

  1. Stellen Sie sicher, dass der aktuelle vom Kunden verwaltete Schlüssel gültig und betriebsbereit ist.

  2. Verwenden Sie den folgenden Azure CLI-Befehl, um Ihren App-Konfigurationsspeicher zu aktualisieren, indem Sie die vom Kunden verwaltete Schlüsselkonfiguration entfernen. Ersetzen Sie <resource-group-name> und <App-Configuration-store-name> durch die Werte in Ihrer Umgebung.

    az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name ""
    
  3. Um zu überprüfen, ob die kundenseitig verwaltete Schlüsselkonfiguration deaktiviert ist, überprüfen Sie die Eigenschaften Ihres App Configuration-Speichers.

    az appconfig show -g <resource-group-name> -n <App-Configuration-store-name> --query "encryption"
    

    In der Ausgabe dieses Befehls sollte die encryption.keyVaultProperties-Eigenschaft einen Wert von null haben.

Ihr App-Konfigurationsspeicher ist jetzt für die Verwendung von von Microsoft verwalteten Schlüsseln für die Verschlüsselung konfiguriert.

Zugriffssperrung

Wenn Sie die vom Kunden verwaltete Schlüsselfunktion im App-Konfigurationsspeicher aktivieren, steuern Sie die Fähigkeit des Diensts, auf Ihre vertraulichen Informationen zuzugreifen. Der verwaltete Schlüssel dient als Stammverschlüsselungsschlüssel.

Sie können den Zugriff des App-Konfigurationsspeichers auf Ihren verwalteten Schlüssel widerrufen, indem Sie die Zugriffsrichtlinie für den Key Vault ändern. Wenn Sie diesen Zugriff widerrufen, verliert die App-Konfiguration die Möglichkeit, Benutzerdaten innerhalb einer Stunde zu entschlüsseln. An diesem Punkt verbietet der App-Konfigurationsspeicher alle Zugriffsversuche.

Diese Situation kann wiederhergestellt werden, indem dem App-Konfigurationsdienst erneut Zugriff auf den verwalteten Schlüssel gewährt wird. Innerhalb einer Stunde kann die App-Konfiguration Benutzerdaten entschlüsseln und unter normalen Bedingungen arbeiten.

Hinweis

Alle App-Konfigurationsdaten werden bis zu 24 Stunden in einer isolierten Sicherung gespeichert. Diese Daten enthalten den entwrappten Verschlüsselungsschlüssel. Diese Daten stehen dem Dienst oder Dienstteam nicht sofort zur Verfügung. Bei einer Notfallwiederherstellung entfernt App Configuration erneut ihren Zugriff auf die verwalteten Schlüsseldaten.

Schlüsselrotation

Wenn Sie einen vom Kunden verwalteten Schlüssel in einem App-Konfigurationsspeicher konfigurieren, müssen Sie den Schlüssel regelmäßig rotieren, damit er nicht abläuft. Für eine erfolgreiche Schlüsseldrehung muss der aktuelle Schlüssel gültig und betriebsbereit sein. Wenn der aktuelle Schlüssel abgelaufen ist oder der Zugriff darauf durch die App-Konfiguration widerrufen wird, kann der App-Konfigurationsspeicher die Daten nicht entschlüsseln, und die Rotation schlägt fehl.

Automatische Drehung

Es empfiehlt sich, die automatische Drehung in Key Vault für Ihren vom Kunden verwalteten Schlüssel zu konfigurieren. Das Drehen von Schlüsseln verbessert häufig die Sicherheit. Und wenn Sie die automatische Rotationsfunktion verwenden, vermeiden Sie, dass der Zugriff aufgrund der fehlenden Rotation verloren geht. Außerdem müssen Sie Verschlüsselungsschlüssel nicht manuell drehen.

Versionslose Schlüssel

Eine weitere bewährte Methode für die automatische Rotation in der kundenseitig verwalteten Schlüsselverschlüsselung besteht darin, die Version des Schlüsseltresorschlüssels auszulassen. Wenn Sie keine bestimmte Schlüsselversion konfigurieren, kann die App-Konfiguration zur neuesten Version des Schlüssels wechseln, wenn sie automatisch gedreht wird. Daher verhindert Ihr App-Konfigurationsspeicher, dass der Zugriff verloren geht, wenn eine verwaltete Schlüsselversion abläuft, die derzeit verwendet wird.

Wenn Sie die vom Kunden verwaltete Schlüsselverschlüsselung einrichten, geben Sie den Bezeichner eines Schlüssels in Ihrem Schlüsseltresor an. Ein Schlüsselbezeichner für den Schlüsseltresor kann die folgenden Formate aufweisen:

  • Versionslose Schlüssel-ID: https://<vault-name>.vault.azure.net/keys/<key-name>
  • Versionierter Schlüsselbezeichner (nicht empfohlen): https://<vault-name>.vault.azure.net/keys/<key-name>/<key-version>

Verwenden Sie zum Konfigurieren eines versionlosen Schlüssels das Bezeichnerformat, das die Versionen auslässt.

Nächster Schritt

In diesem Artikel haben Sie Ihren App-Konfigurationsspeicher für die Verwendung eines vom Kunden verwalteten Schlüssels für die Verschlüsselung konfiguriert. Wenn Sie mehr darüber erfahren möchten, wie Sie Ihren App-Dienst in von Azure verwaltete Identitäten integrieren können, fahren Sie mit dem nächsten Schritt fort.