Vom Kunden verwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys, CMEK) verwenden

Auf dieser Seite wird beschrieben, wie Sie in Service Extensions-Plug-ins gespeicherte Inhalte mit vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) verschlüsseln.

Übersicht

Service Extensions verschlüsselt ruhende Kundeninhalte standardmäßig. Die Verschlüsselung wird von Service Extensions übernommen. Weitere Maßnahmen Ihrerseits sind nicht erforderlich. Diese Option heißt Google-Standardverschlüsselung.

Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie kundenverwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Service Extensions verwenden. Mit Cloud KMS-Schlüsseln haben Sie die Kontrolle über Schutzlevel, Speicherort, Rotationszeitplan, Nutzungs- und Zugriffsberechtigungen sowie über kryptografische Grenzen. Mit Cloud KMS können Sie außerdem Audit-Logs aufrufen und den Lebenszyklus von Schlüsseln steuern. Statt es Google zu überlassen, die symmetrischen Schlüsselverschlüsselungsschlüssel (Key Encryption Keys, KEKs) zum Schutz Ihrer Daten zu besitzen und zu verwalten, können Sie diese auch über Cloud KMS steuern und verwalten.

Nachdem Sie Ihre Ressourcen mit CMEKs eingerichtet haben, ähnelt der Zugriff auf Ihre Service Extensions-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselungsoptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

Alle kryptografischen Vorgänge werden dem Google Cloud Projekt in Rechnung gestellt, zu dem der Schlüssel gehört, unabhängig vom Schlüsseltyp. Weitere Informationen zu den Preisen finden Sie unter Cloud KMS – Preise.

Schlüssel erstellen und Berechtigungen erteilen

In der folgenden Anleitung wird erläutert, wie Sie einen Schlüssel für ein Plug-in erstellen und Berechtigungen zum Ver- und Entschlüsseln von Plug-in-Daten mit dem Schlüssel gewähren.

  1. Führen Sie im Google Cloud -Projekt, in dem Sie Ihre Schlüssel verwalten möchten, die folgenden Schritte aus:

    1. Damit Sie einen Schlüssel erstellen können, müssen Sie die Cloud Key Management Service API aktivieren.

    2. Erstellen Sie einen Schlüsselbund und einen Schlüssel mit einer der folgenden Optionen:

      Der Speicherort des Cloud KMS-Schlüssels muss mit dem Speicherort des Plugins übereinstimmen, das Sie verschlüsseln möchten.

  2. Das Dienstkonto für Service Extensions muss in Ihrem Service Extensions-Projekt vorhanden sein. Der Name des Dienstkontos ist service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com, wobei PROJECT_NUMBER die Projektnummer des Google Cloud -Projekts ist, in dem Service Extensions ausgeführt wird.

    Das Dienstkonto wird automatisch erstellt, wenn Sie Ihr erstes Plug-in in Ihrem Service Extensions-Projekt erstellen. Wenn Sie noch kein Plug-in in Ihrem Projekt erstellt haben, erstellen Sie das Dienstkonto mit dem folgenden Befehl:

    gcloud beta services identity create \
        --service=networkactions.googleapis.com \
        --project=PROJECT
    

    Ersetzen Sie PROJECT durch die ID des Projekts, in dem Service Extensions ausgeführt wird.

  3. Weisen Sie dem Dienstkonto für Dienst-Erweiterungen die Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler-Rolle (roles/cloudkms.cryptoKeyEncrypterDecrypter) für den von Ihnen erstellten Schlüssel zu.

    Console

    1. Rufen Sie in der Google Cloud Console die Seite Schlüsselverwaltung auf.

      Zu „Schlüsselverwaltung“

    2. Wählen Sie den von Ihnen erstellten Schlüssel aus.

    3. Gewähren Sie Zugriff auf das Dienstkonto für Dienstextensions:

      1. Wählen Sie Infofeld anzeigen aus.
      2. Klicken Sie auf Mitglied hinzufügen.
      3. Fügen Sie das Dienstkonto für Dienst-Extensions hinzu. Das Dienstkonto ist service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com.
      4. Wählen Sie unter Rolle auswählen die Option Cloud KMS > Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.
      5. Klicken Sie auf Speichern.
    4. Wiederholen Sie den vorherigen Schritt, um dem Konto des Plug‑in-Erstellers Zugriff zu gewähren.

    5. Kehren Sie zur Seite Schlüsselverwaltung zurück und wählen Sie den Schlüssel noch einmal aus.

    6. Wählen Sie Infofeld anzeigen aus. In der Spalte Rolle/Mitglied werden Rollen angezeigt.

    gcloud

    1. Gewähren Sie Zugriff auf das Dienstkonto für Dienst-Erweiterungen, indem Sie den gcloud kms keys add-iam-policy-binding-Befehl ausführen:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] KEY_NAME \
          --location LOCATION
          --keyring=KEYRING_NAME \
          --member=serviceAccount:service-PROJECT-NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com \
          --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Ersetzen Sie Folgendes:

      • PROJECT: die ID des Projekts, das den Schlüssel enthält
      • KEY_NAME: der Schlüsselname
      • LOCATION: der Speicherort des Schlüssels
      • KEYRING_NAME ist der Name des Schlüsselbunds.
      • PROJECT-NUMBER: die Projektnummer des Google Cloud -Projekts
    2. Wiederholen Sie den vorherigen Schritt und legen Sie member auf das Konto des Plug-in-Erstellers fest.

Geben Sie beim Erstellen oder Aktualisieren eines Plugins den CMEK-Schlüssel an. Der Schlüssel bietet Verschlüsselung für das Plugin-Image und die Konfigurationsdaten. Andere Plug-in-Daten werden durch die Google-Standardverschlüsselung geschützt.

Automatische erneute Verschlüsselung

Wenn sich die primäre Version des KMS-Schlüssels ändert (entweder durch eine manuelle Änderung durch den Nutzer oder durch automatische Rotation), werden die durch den Schlüssel geschützten Plug-in-Daten automatisch mit der neuen Schlüsselversion neu verschlüsselt.

Schlüssel-Tracking

Mit der Schlüsselverfolgung können Sie die Plugin-Ressourcen auflisten, die durch einen Schlüssel geschützt werden. Weitere Informationen finden Sie unter Schlüsselnutzung ansehen.

Cloud Key Management Service-Kontingente und Diensterweiterungen

Wenn Sie CMEK-Schlüssel in Dienst-Extensions verwenden, z. B. in den folgenden Vorgängen, können Ihre Projekte Kontingente für kryptografische Cloud KMS-Anfragen verbrauchen:

  • CMEK-geschütztes Plug-in erstellen oder aktualisieren
  • Neue Versionen hinzufügen oder die Hauptversion von CMEK-geschützten Plug-ins ändern
  • Versionen von CMEK-geschützten Plug-ins auflisten, für die das Feld plugin_config_data festgelegt ist
  • Plug-in an die Erweiterung anhängen

Für angehängte Plug-ins fallen im Laufe der Zeit zusätzliche Entschlüsselungsvorgänge an.

Wenn Sie Hardware- (Cloud HSM) oder externe Schlüssel (Cloud EKM) verwenden, wirken sich Ver- und Entschlüsselungsvorgänge über CMEK-Schlüssel auf Cloud KMS-Kontingente aus.

Zugriff auf ein mit CMEK verschlüsseltes Plug‑in entfernen

Es gibt verschiedene Möglichkeiten, den Zugriff auf ein mit CMEK verschlüsseltes Plug-in zu entfernen:

Wir empfehlen, die Berechtigungen des Dienstkontos für Dienstextensions zu widerrufen, bevor Sie einen Schlüssel deaktivieren oder löschen.

Auswirkungen des Entziehens des Zugriffs

CMEK-geschützte Daten bestehen aus Bildern, die aus Artifact Registry heruntergeladen wurden, sowie aus allen Plug-in-Konfigurationsdaten, die direkt (über das Feld plugin_config_data) bereitgestellt werden.

Nachdem Sie den Verschlüsselungsschlüssel für ein Plug-in deaktiviert oder gelöscht haben, sind alle durch CMEK geschützten Plug-in-Daten innerhalb von Minuten nicht mehr zugänglich. Es kann mehrere zehn Minuten dauern, bis alle Bereitstellungsreplikate eines Plug-ins nach dem Widerruf des Schlüssels keinen Traffic mehr bereitstellen.

Plug‑in-Metadaten wie Name, Beschreibung, Labels oder Protokollierungskonfiguration des Plug‑ins bleiben zugänglich.

Wenn Sie den Zugriff auf einen Schlüssel entfernen, der ein aktives Plug-in schützt (d. h. ein Plug-in, das an eine Erweiterung angehängt ist), kann das Plug-in keinen Traffic mehr verarbeiten. Alle Anfragen an das Plug-in schlagen fehl.

Wenn der Aufruf des Plug-ins fehlschlägt, hängt das Verhalten der Erweiterung vom Feld fail_open ab:

  • Wenn das Feld auf true gesetzt ist, wird die Anfrage an den Zieldienst weitergeleitet, ohne dass darauf hingewiesen wird, dass der Plug-in-Aufruf fehlgeschlagen ist.
  • Wenn das Feld auf false gesetzt ist, erreicht die Anfrage den Zieldienst nicht.

Beschränkungen

  • Der für ein Plug‑in festgelegte CMEK-Schutz ist auf Service Extensions beschränkt.

    Wenn Sie Plug-in-Ressourcen in anderen Google-Produkten schützen möchten, aktivieren Sie CMEK über diese Produkte. Richten Sie CMEK für Artifact Registry für die in Artifact Registry hochgeladenen Plug-in-Images ein. Wenn Sie die von Ihrem Plug-in generierten Logs schützen möchten, konfigurieren Sie CMEK für Cloud Logging.

  • Der Verschlüsselungsmodus (von Google verwaltet oder CMEK) eines Plug-ins kann nicht geändert werden. Sie können das Plug-in jedoch aktualisieren, um einen anderen KMS-Schlüssel zu verwenden.

  • Es werden nur regionale Plug-ins unterstützt. Außerdem können Plug-ins nur mit einem Schlüssel in derselben Region wie das Plug-in verschlüsselt werden.

Nächste Schritte