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 kundenseitig verwalteten Schlüsseln bietet einen verbesserten Datenschutz, da Sie so Ihre Verschlüsselungsschlüssel verwalten können. Wenn die Verschlüsselung mit verwalteten Schlüsseln verwendet wird, werden alle vertraulichen Informationen in App Configuration mit einem vom Benutzer bereitgestellten Azure Key Vault-Schlüssel verschlüsselt. Dadurch kann der Verschlüsselungsschlüssel bei Bedarf rotiert werden. Außerdem bietet sich dadurch die Möglichkeit, den Zugriff von Azure App Configuration auf vertrauliche Informationen zu widerrufen, indem der Zugriff der App Configuration-Instanz auf den Schlüssel widerrufen wird.

Übersicht

Azure App Configuration verschlüsselt vertrauliche ruhende Informationen mit einem 256-Bit-AES-Verschlüsselungsschlüssel, der von Microsoft bereitgestellt wird. Jede App Configuration-Instanz verfügt über einen eigenen vom Dienst verwalteten Verschlüsselungsschlüssel, der zum Verschlüsseln vertraulicher Informationen verwendet wird. Vertrauliche Informationen umfassen die Werte, die sich in Schlüssel-Wert-Paaren befinden. Wenn die Funktion für kundenseitig verwaltete Schlüssel aktiviert ist, verwendet App Configuration eine verwaltete Identität, die der App Configuration-Instanz zugewiesen ist, um sich bei Microsoft Entra ID zu authentifizieren. Die verwaltete Identität ruft dann Azure Key Vault auf und umschließt den Verschlüsselungsschlüssel der App Configuration-Instanz. Der umschlossene Verschlüsselungsschlüssel wird dann gespeichert, und der nicht umschlossene Verschlüsselungsschlüssel wird eine Stunde lang in App Configuration zwischengespeichert. App Configuration aktualisiert stündlich die nicht umschlossene Version des Verschlüsselungsschlüssels der App Configuration-Instanz. Durch dieses Verfahren wird die Verfügbarkeit unter normalen Betriebsbedingungen sichergestellt.

Wichtig

Wenn die der App Configuration-Instanz zugewiesene Identität nicht mehr autorisiert ist, den Verschlüsselungsschlüssel der Instanz zu entpacken, oder wenn der verwaltete Schlüssel endgültig gelöscht wird, können vertrauliche Informationen, die in der App Configuration-Instanz gespeichert sind, nicht mehr entschlüsselt werden. Durch Verwendung der Azure Key Vault-Funktion vorläufiges Löschen verringern Sie das Risiko, dass Ihr Verschlüsselungsschlüssel versehentlich gelöscht wird.

Wenn Benutzerinnen oder Benutzer die Funktion für kundenseitig verwaltete Schlüssel in ihrer Azure App Configuration-Instanz aktivieren, steuern sie darüber die Fähigkeit des Diensts, auf ihre vertraulichen Informationen zuzugreifen. Der verwaltete Schlüssel dient als Stammverschlüsselungsschlüssel. Benutzer können den Zugriff der App Configuration-Instanz auf den verwalteten Schlüssel widerrufen, indem sie ihre Schlüsseltresor-Zugriffsrichtlinie ändern. Wenn dieser Zugriff widerrufen wird, verliert App Configuration innerhalb von einer Stunde die Fähigkeit, Benutzerdaten zu entschlüsseln. Zu diesem Zeitpunkt untersagt die App Configuration-Instanz jeglichen Zugriffsversuch. Diese Situation kann wiederhergestellt werden, indem Sie dem Dienst erneut Zugriff auf den verwalteten Schlüssel gewähren. Innerhalb von einer Stunde ist App Configuration unter normalen Bedingungen dann in der Lage, Benutzerdaten zu entschlüsseln.

Hinweis

Alle Azure App Configuration-Daten werden für bis zu 24 Stunden in einer isolierten Sicherung gespeichert. Dies schließt den nicht umschlossenen Verschlüsselungsschlüssel ein. Diese Daten stehen dem Dienst oder Dienstteam nicht sofort zur Verfügung. Im Falle einer Notfallwiederherstellung widerruft sich Azure App Configuration selbst erneut von den verwalteten Schlüsseldaten.

Requirements (Anforderungen)

Die folgenden Komponenten sind erforderlich, um die Funktion für kundenseitig verwaltete Schlüssel für Azure App Configuration erfolgreich zu aktivieren:

  • Eine Azure App Configuration-Instanz im Standard- oder Premium-Tarif
  • Eine Azure Key Vault-Instanz mit aktivierten Funktionen für vorläufiges Löschen und Bereinigungsschutz
  • Ein RSA- oder RSA-HSM-Schlüssel innerhalb von Key Vault.
    • Der Schlüssel darf nicht abgelaufen sein, er muss aktiviert sein, und für ihn müssen beide Funktionen aktiviert sein: Umschließen und Entpacken.

Nachdem diese Ressourcen konfiguriert wurden, führen Sie die folgenden Schritte aus, damit Azure App Configuration den Key Vault-Schlüssel verwenden kann:

  1. Zuweisen einer verwalteten Identität zur Azure App Configuration-Instanz
  2. Erteilen Sie Berechtigungen für die Identität, um auf den Key Vault-Schlüssel zugreifen zu können.
    • Weisen Sie für Key Vaults mit aktiviertem Azure RBAC die Identität der Key Vault Crypto Service Encryption User-Rolle im Zielschlüsseltresor zu.
    • Erteilen Sie der Identität für Key Vaults Zugriffsrichtlinienautorisierung die GET-, WRAP- und UNWRAP-Berechtigungen in der Zugriffsrichtlinie des Ziel-Key Vaults.

Aktivieren der kundenseitig verwalteten Schlüsselverschlüsselung für Ihren App-Konfigurationsspeicher

  1. Erstellen Sie einen App Configuration-Speicher im Standard- oder Premium-Tarif, wenn Sie noch keinen haben.

  2. Erstellen Sie mithilfe der Azure-Befehlszeilenschnittstelle eine Azure Key Vault-Instanz mit aktiviertem Löschschutz. Vorläufiges Löschen ist standardmäßig aktiviert. Sowohl vault-name als auch resource-group-name werden vom Benutzer bereitgestellt und müssen eindeutig sein. Wir verwenden contoso-vault und contoso-resource-group in diesen Beispielen.

    az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
    
  3. Erstellen Sie einen Key Vault-Schlüssel. Stellen Sie einen eindeutigen key-name für diesen Schlüssel bereit, und ersetzen Sie die Namen der in Schritt 2 erstellten Key Vault-Instanz (contoso-vault). Geben Sie an, ob Sie die RSA- oder RSA-HSM-Verschlüsselung bevorzugen (RSA-HSM ist nur im Premium-Tarif verfügbar).

    az keyvault key create --name key-name --kty {RSA or RSA-HSM} --vault-name contoso-vault
    

    In der Ausgabe dieses Befehls wird die Schlüssel-ID (kid) für den generierten Schlüssel angezeigt. Notieren Sie sich die Schlüssel-ID, um sie später in dieser Übung zu verwenden. Die Schlüssel-ID hat folgendes Format: https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}. Die Schlüssel-ID enthält drei wichtige Komponenten:

    1. Key Vault-URI: https://{my key vault}.vault.azure.net
    2. Key Vault-Schlüsselname: {key-name}
    3. Key Vault-Schlüsselversion: {key-version}
  4. Erstellen Sie eine systemseitig zugewiesene verwaltete Identität mithilfe der Azure CLI, wobei Sie die Namen Ihrer App Configuration-Instanz und der Ressourcengruppe einsetzen, die Sie in den vorherigen Schritten verwendet haben. Die verwaltete Identität wird verwendet, um auf den verwalteten Schlüssel zuzugreifen. Wir verwenden contoso-app-config, um den Namen einer App Configuration-Instanz zu illustrieren:

    az appconfig identity assign --name contoso-app-config --resource-group contoso-resource-group --identities [system]
    

    Die Ausgabe dieses Befehls enthält die Prinzipal-ID ("principalId") und die Mandanten-ID ("tenandId") der systemseitig zugewiesenen Identität. Diese IDs werden verwendet, um der Identität Zugriff auf den verwalteten Schlüssel zu gewähren.

    {
        "principalId": {Principal Id},
        "tenantId": {Tenant Id},
        "type": "SystemAssigned",
        "userAssignedIdentities": null
    }
    
  5. Die verwaltete Identität der Azure App Configuration-Instanz benötigt Zugriff auf den Schlüssel, um die Schlüsselüberprüfung, Ver- und Entschlüsselung durchzuführen. Die spezifische Gruppe von Aktionen, auf die sie Zugriff benötigt, umfasst : GET, WRAP und UNWRAP für Schlüssel. Diese Berechtigungen können erteilt werden, indem sie die Key Vault Crypto Service Encryption User-Rolle für Azure RBAC-aktivierte Key Vaults zuweisen. Legen Sie für Key Vaults mithilfe der Zugriffsrichtlinienautorisierung die Richtlinie für die oben genannten Schlüsselberechtigungen fest. Für das Gewähren des Zugriffs ist die Prinzipal-ID der verwalteten Identität der App Configuration-Instanz erforderlich. Ersetzen Sie den unten angezeigten Wert contoso-principalId durch die im vorherigen Schritt abgerufene Prinzipal-ID. Gewähren Sie die Berechtigung für den verwalteten Schlüssel mithilfe des folgenden Befehls:

    Verwenden Sie für Key Vaults mit aktiviertem Azure RBAC den folgenden Befehl.

    az role assignment create --assignee contoso-principalId --role "Key Vault Crypto Service Encryption User" --scope key-vault-resource-id
    
  6. Wenn die Azure App Configuration-Instanz auf den verwalteten Schlüssel zugreifen kann, können Sie die Funktion für kundenseitig verwaltete Schlüssel mithilfe der Azure-Befehlszeilenschnittstelle im Dienst aktivieren. Rufen Sie die folgenden Eigenschaften ab, die Sie während der Schritte zur Schlüsselerstellung aufgezeichnet hatten: key name key vault URI.

    az appconfig update -g contoso-resource-group -n contoso-app-config --encryption-key-name key-name --encryption-key-version key-version --encryption-key-vault key-vault-Uri
    

Ihre Azure App Configuration-Instanz ist jetzt für die Verwendung eines in Azure Key Vault gespeicherten, kundenseitig verwalteten Schlüssels konfiguriert.

Nächste Schritte

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