Schlüssel verwalten, die Log-Router-Daten schützen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Auf dieser Seite wird gezeigt, wie Sie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys, CMEK) für den Log Router konfigurieren und verwalten, um die Compliance-Anforderungen Ihrer Organisation zu erfüllen.

CMEKs für Log Router werden auf Organisationsebene von Google Cloud konfiguriert. Dies gilt für alle Cloud-Projekte und -Ordner in der Google Cloud-Organisation.

Übersicht

Cloud Logging verschlüsselt inaktive Kundendaten standardmäßig. Von Logging aufgenommene Daten werden mit Schlüsselverschlüsselungsschlüsseln verschlüsselt. Dieser Vorgang wird als Envelope-Verschlüsselung bezeichnet. Der Zugriff auf Ihre Logging-Daten erfordert den Zugriff auf diese Schlüsselverschlüsselungsschlüssel, die Google für Sie verwaltet, ohne dass Sie etwas tun müssen.

Ihre Organisation kann regulatorische, Compliance- oder erweiterte Verschlüsselungsanforderungen haben, die unsere Standardverschlüsselung inaktiver Daten nicht anspricht. Anstatt die Schlüsselverschlüsselungsschlüssel, die Ihre Daten schützen, von Google verwalten zu lassen, können Sie CMEK zur angepassten Steuerung und Verwaltung Ihrer Verschlüsselung konfigurieren.

Weitere Informationen zu CMEK einschließlich der Vorteile und Einschränkungen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel.

Informationen zur Verwendung von CMEK für Logs, die in Cloud Logging gespeichert sind, finden Sie unter Schlüssel zum Schutz von Logging-Speicherdaten verwalten.

Vorbereitung

Führen Sie folgende Schritte aus, um mit der Aktivierung von CMEK für Log Router zu beginnen:

  1. Installieren und initialisieren Sie Google Cloud CLI.

    In dieser Anleitung wird die Verwendung der Google Cloud CLI beschrieben.

  2. Ermitteln Sie die Organisation, für die Sie CMEK aktivieren möchten.

  3. Erstellen oder identifizieren Sie das Google Cloud-Projekt, in dem Sie Cloud KMS ausführen möchten.

    Achten Sie darauf, dass die Google Cloud-Organisation, die das Cloud-Projekt enthält, Ihnen eine IAM-Rolle mit den logging.cmekSettings.{get,update}-Berechtigungen gewährt. Wir empfehlen Ihnen die Rolle Autor von Log-Konfigurationen, die die erforderlichen Berechtigungen umfasst.

  4. Aktivieren Sie die Cloud KMS API für das Cloud-Projekt, in dem Cloud KMS ausgeführt wird.

  5. Erstellen Sie einen Schlüsselbund und Schlüssel für das Cloud-Projekt, in dem Cloud KMS ausgeführt wird.

    Mit dem Log Router können Sie einen Schlüssel aus einer beliebigen Region verwenden, da einzelne Organisationen Daten an mehrere Regionen weiterleiten können. Wenn alle oder die meisten Daten in der Organisation auf eine Region beschränkt sind, empfehlen wir die Verwendung eines Schlüssels, dessen Region dem regionalen Geltungsbereich Ihrer Daten entspricht.

  6. Identifizieren Sie die nachstehend genannten, erforderlichen Parameter. In den Beispielen auf dieser Seite werden folgende Variablen verwendet, um Google Cloud-Ressourcenmetadaten anzugeben:

    • ORGANIZATION_ID ist die eindeutige numerische Kennzeichnung der Google Cloud-Organisation, für die Sie CMEK aktivieren
    • KMS_PROJECT_ID ist die eindeutige alphanumerische Kennung aus dem Namen Ihres Cloud-Projekts und einer zufällig zugewiesenen Nummer des Cloud-Projekts, in dem Cloud KMS ausgeführt wird.
    • KMS_KEY_NAME ist der Ressourcenname des Cloud KMS-Schlüssels. Dieser hat das folgende Format: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY

    Informationen zum Suchen von Ressourcenkennungen finden Sie unter Projekte identifizieren und Organisations-ID abrufen.

CMEK für eine Organisation aktivieren

Nachdem Sie die erforderlichen Schritte ausgeführt haben, folgen Sie dieser Anleitung, um CMEK für Ihre Google Cloud-Organisation zu aktivieren.

Dienstkonto-ID ermitteln

Zum Konfigurieren von CMEK auf Organisationsebene müssen Sie die Dienstkonto-ID der Organisation abrufen, für die CMEK gelten soll. Führen Sie dazu diesen Befehl aus:

API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.

  2. Senden Sie eine GET-Anfrage, um die Dienstkonto-ID der Google Cloud-Organisation abzurufen, für die CMEK aktiviert werden soll:

     curl -H "Authorization: Bearer AUTH_TOKEN" \
        https://logging.googleapis.com/v2/organizations/ORGANIZATION_ID/cmekSettings
    

gcloud

gcloud alpha logging settings describe --organization=ORGANIZATION_ID

Mit diesem Befehl wird ein Dienstkonto für die Organisation generiert, falls noch keines vorhanden ist. Außerdem wird die ID im serviceAccountId-Feld zurückgegeben:

serviceAccountId: "SERVICE_ACCOUNT_ID@gcp-sa-logging.iam.gserviceaccount.com"

Sie müssen diesen Bereitstellungsprozess nur einmal pro Ressource ausführen. Die wiederholte Ausführung dieses Befehls gibt denselben Wert für das Feld serviceAccountId zurück.

Verschlüsseler-/Entschlüsselerrolle zuweisen

Damit CMEK genutzt werden kann, müssen Sie dem Dienstkonto die Berechtigung geben, Ihren Cloud KMS zu verwenden. Weisen Sie dem Konto hierfür die Rolle Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler zu:

API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden. Eine Anleitung finden Sie unter API-Authentifizierung.
  2. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

    {
      "policy": {
        "bindings": {
          "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter",
          "members": "serviceAccount:SERVICE_ACCOUNT_ID@gcp-sa-logging.iam.gserviceaccount.com"
        },
      }
    }
  3. Verwenden Sie cURL, um die Cloud KMS API mit einer POST setIamPolicy-Anfrage aufzurufen:

    curl -X POST --data-binary @JSON_FILE_NAME.json \
    -H "Authorization: Bearer OAUTH2_TOKEN" \
    -H "Content-Type: application/json" \
    "https://cloudkms.googleapis.com/v1/KEY_RESOURCE:setIamPolicy"

gcloud

gcloud kms keys add-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member serviceAccount:SERVICE_ACCOUNT_ID@gcp-sa-logging.iam.gserviceaccount.com \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY

Legen Sie die Variablen im Befehl so fest:

  • Ersetzen Sie SERVICE_ACCOUNT_ID durch den serviceAccountId-Wert, den Sie im vorherigen Schritt ermittelt haben.

  • Ersetzen Sie die anderen Variablen durch die Werte, die Sie in den erforderlichen Schritten ermittelt haben:

    • Ersetzen Sie KMS_PROJECT_ID durch die ID des Cloud-Projekts, in dem Cloud KMS ausgeführt wird.
    • Ersetzen Sie KMS_KEY_LOCATION durch die Region des Cloud KMS-Schlüssels.
    • Ersetzen Sie KMS_KEY_RING durch den Namen des Cloud KMS-Schlüsselbunds.
    • Ersetzen Sie KMS_KEY durch den Namen des Cloud KMS-Schlüssels.

Console

  1. Öffnen Sie in der Google Cloud Console den Browser für Cloud Key Management Service-Schlüssel.
    Zum Browser für Cloud KMS-Schlüssel
  2. Klicken Sie auf den Namen des Schlüsselbunds, der den gewünschten Schlüssel enthält.

  3. Klicken Sie das Kästchen für den gewünschten Schlüssel an.

    Der Tab Berechtigungen wird verfügbar.

  4. Geben Sie im Dialogfeld Mitglieder hinzufügen die E-Mail-Adresse des Logging-Dienstkontos an, auf das Sie Zugriff gewähren.

  5. Wählen Sie im Drop-down-Menü Rolle auswählen die Option Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.

  6. Klicken Sie auf Add (Hinzufügen).

Cloud KMS-Schlüssel konfigurieren

Fügen Sie Ihrer Organisation den Cloud KMS-Schlüsselnamen hinzu, um die Aktivierung von CMEK abzuschließen. Führen Sie dazu diesen Befehl aus:

API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.

  2. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

    {
        "kms_key_name": "KMS_KEY_NAME"
    }
    
  3. Senden Sie eine PATCH-Anfrage für die Aktualisierung von kms_key_name zur Verknüpfung mit der Google Cloud-Organisation, für die Sie CMEK aktivieren möchten:

    curl -X PATCH \
        -H "Authorization: Bearer AUTH_TOKEN \
        -H "Content-Type: application/json" \
        --data-binary @JSON_FILE_NAME
        https://logging.googleapis.com/v2/organizations/ORGANIZATION_ID/cmekSettings?update_mask="kms_key_name"
    

gcloud

gcloud alpha logging settings update \
    --organization=ORGANIZATION_ID --kms-key-name=KMS_KEY_NAME

Schlüsselaktivierung prüfen

Führen Sie folgenden Befehl aus, um zu prüfen, ob CMEK für Ihre Organisation erfolgreich aktiviert wurde:

API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.

  2. Senden Sie eine GET-Anfrage, um die CMEK-Einstellungen der Google Cloud-Organisation abzurufen, für die Sie die Schlüsselaktivierung prüfen möchten:

     curl -H "Authorization: Bearer AUTH_TOKEN" \
        https://logging.googleapis.com/v2/organizations/ORGANIZATION_ID/cmekSettings
    
    {
        "kmsKeyName": "KMS_KEY_NAME",
        "serviceAccountId": "SERVICE_ACCOUNT_ID@gcp-sa-logging.iam.gserviceaccount.com"
    }
    

gcloud

gcloud alpha logging settings describe --organization=ORGANIZATION_ID

Dieser Befehl gibt den Cloud KMS-Schlüsselnamen zurück:

kmsKeyName: KMS_KEY_NAME
serviceAccountId: SERVICE_ACCOUNT_ID@gcp-sa-logging.iam.gserviceaccount.com

Wenn das kmsKeyName-Feld befüllt ist, ist CMEK für Ihre Organisation aktiviert.

Cloud KMS-Schlüssel verwalten

In folgenden Abschnitten wird erläutert, wie Sie Ihren Cloud KMS-Schlüssel ändern, den Zugriff auf ihn widerrufen oder ihn deaktivieren können.

Cloud KMS-Schlüssel ändern

Wenn Sie den mit Ihrer Organisation verknüpften Cloud KMS-Schlüssel ändern möchten, erstellen Sie einen Schlüssel und aktualisieren Sie die CMEK-Einstellungen für die Organisation mit dem neuen Cloud KMS-Schlüsselnamen.

Führen Sie dazu diesen Befehl aus:

API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.

  2. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

    {
        "kms_key_name": "NEW_KMS_KEY_NAME"
    }
    
  3. Senden Sie eine PATCH-Anfrage zur Aktualisierung von kms_key_name:

    curl -X PATCH \
        -H "Authorization: Bearer AUTH_TOKEN \
        -H "Content-Type: application/json" \
        --data-binary @JSON_FILE_NAME
        https://logging.googleapis.com/v2/organizations/ORGANIZATION_ID/cmekSettings?update_mask="kms_key_name"
    

gcloud

gcloud alpha logging settings update \
    --organization=ORGANIZATION_ID
    --kms-key-name=NEW_KMS_KEY_NAME

Zugriff auf Cloud KMS-Schlüssel widerrufen

Wenn Sie den Zugriff von Logging auf den Cloud KMS-Schlüssel widerrufen möchten, entfernen Sie die konfigurierten IAM-Berechtigung des Dienstkontos für diesen Schlüssel.

Wenn Sie Logging den Zugriff auf einen Schlüssel entziehen, kann es bis zu einer Stunde dauern, bis die Änderung wirksam wird.

Führen Sie dazu diesen Befehl aus:

API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.

  2. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

    revoke.json:
    {
      "policy": {
        "bindings": {
          "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter",
          "members":
        },
      }
    }
    
  3. Senden Sie eine POST-Anfrage:

    curl -X POST --data-binary @revoke.json -H "Authorization: Bearer
    ${OAUTH_TOKEN}" -H "Content-Type: application/json"
    "https://cloudkms.googleapis.com/v1/{$KEY}:setIamPolicy"
    

gcloud

gcloud kms keys remove-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member serviceAccount:SERVICE_ACCOUNT_ID@gcp-sa-logging.iam.gserviceaccount.com \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY

CMEK für die Organisation deaktivieren

Wenn Sie CMEK für Ihre Organisation deaktivieren, wird die Erzwingung der CMEK-Richtlinie nur für zukünftige Vorgänge entfernt. Alle zuvor angewendeten Konfigurationen bleiben intakt.

Führen Sie folgenden Befehl aus, um CMEK für die Organisation zu deaktivieren:

API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.

  2. Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:

    {
        "kms_key_name": ""
    }
    
  3. Senden Sie eine PATCH-Anfrage zur Aktualisierung von kms_key_name:

    curl -X PATCH \
        -H "Authorization: Bearer AUTH_TOKEN \
        -H "Content-Type: application/json" \
        --data-binary @JSON_FILE_NAME
        https://logging.googleapis.com/v2/organizations/ORGANIZATION_ID/cmekSettings?update_mask="kms_key_name"
    

gcloud

gcloud alpha logging settings update --organization=ORGANIZATION_ID --clear-kms-key

Informationen zum Löschen eines Schlüssels finden Sie unter Schlüsselversionen löschen und wiederherstellen.

Auswirkung der Cloud KMS-Schlüsselrotation

Wenn der mit der Google Cloud-Organisation verknüpfte Cloud KMS-Schlüssel rotiert wird, rotiert Logs Router den Verschlüsselungsschlüssel für temporäre Wiederherstellungsdateien nicht automatisch mit. Bereits vorhandene Wiederherstellungsdateien verwenden weiterhin die Schlüsselversion, mit der sie erstellt wurden. Neue Wiederherstellungsdateien verwenden die aktuelle Primärschlüsselversion.

Logs an unterstützte Ziele weiterleiten

Wenn Sie Logsenken zum Weiterleiten von Logs an ein unterstütztes Ziel verwenden, beachten Sie Folgendes:

Überlegungen zu externen Schlüsseln

Wenn Sie einen Cloud EKM-Schlüssel verwenden, hat Google keine Kontrolle über die Verfügbarkeit Ihres extern verwalteten Schlüssels im Partnersystem für die externe Schlüsselverwaltung.

Ist ein extern verwalteter Schlüssel nicht verfügbar, versucht Cloud Logging weiter, auf den Schlüssel zuzugreifen. Die eingehenden Logdaten werden bis zu einer Stunde lang zwischengespeichert. Kann Cloud Logging nach einer Stunde immer noch nicht auf den extern verwalteten Schlüssel zugreifen, beginnt Cloud Logging mit dem Löschen der Daten.

Weitere Informationen und mögliche Alternativen bei der Verwendung externer Schlüssel finden Sie in der Dokumentation zum Cloud External Key Manager.

Beschränkungen

Folgende CMEK-Einschränkungen für Log Router sind bekannt.

Nur Konfiguration auf Organisationsebene

CMEK für Log Router kann derzeit nur für Google Cloud-Organisationen konfiguriert werden. Nach der Konfiguration wird CMEK an alle Cloud-Projekte und -Ordner in der Google Cloud-Organisation weitergegeben.

Nichtverfügbarkeit der Datei zur Notfallwiederherstellung

Ein Cloud KMS-Schlüssel gilt als für Logging verfügbar und zugänglich, wenn die beiden folgenden Bedingungen zutreffen:

  • Der Schlüssel ist aktiviert.
  • Das Logging-Dienstkonto hat für den Schlüssel Berechtigungen zum Ver- und Entschlüsseln.

Wenn Logging keinen Zugriff mehr auf den Cloud KMS-Schlüssel hat, kann Logging keine temporären Dateien zur Notfallwiederherstellung schreiben. Für Nutzer funktionieren Abfragen dann nicht mehr. Die Abfrageleistung kann auch nach Wiederherstellung des Schlüsselzugriffs beeinträchtigt bleiben.

Die Weiterleitung von Logs nach Cloud Storage kann ebenfalls beeinträchtigt sein, da der Log Router die für das Routing erforderlichen temporären Dateien nicht schreiben kann. Wenn beim Verschlüsseln oder Entschlüsseln von Daten ein Fehler auftritt, wird eine Benachrichtigung an das Cloud-Projekt gesendet, das den Cloud KMS-Schlüssel enthält.

Verfügbarkeit der Clientbibliothek

Logging-Clientbibliotheken bieten keine Methoden zum Konfigurieren von CMEK.

Kontingente

Ausführliche Informationen zu den Nutzungslimits für Logging finden Sie unter Kontingente und Limits.

Konfigurationsfehler beheben

In den folgenden Abschnitten wird beschrieben, wie häufige CMEK-Konfigurationsfehler identifiziert und behoben werden können.

Bei der Konfiguration von CMEK wird das Cloud-Projekt, das den Cloud KMS-Schlüssel enthält, über relevante Probleme benachrichtigt. Beispiel: Aktualisierungen schlagen fehl, wenn KMS_KEY_NAME ungültig ist, wenn das zugehörige Dienstkonto nicht die erforderliche Rolle Cloud Key Management Service CryptoKey-Ver-/Entschlüsseler hat, oder wenn der Zugriff auf den Schlüssel deaktiviert ist.

Konfigurationsfehler identifizieren

So können Sie CMEK-Konfigurationsfehler finden und anzeigen lassen:

  1. Rufen Sie die Google Cloud Console auf:

    Zur Google Cloud Console

  2. Wählen Sie das Cloud-Projekt aus, das den Verschlüsselungsschlüssel enthält.

    Sie können die Projekt-ID mit folgendem Befehl identifizieren:

    gcloud alpha logging settings describe --organization=ORGANIZATION_ID
    
    

    Die Ausführung dieses Befehls gibt Folgendes zurück:

     kmsKeyName: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY
     serviceAccountId: SERVICE_ACCOUNT_ID@gcp-sa-logging.iam.gserviceaccount.com
     

    Der Wert des kmsKeyName-Felds enthält die Projekt-ID des Schlüssels.

  3. Wählen Sie in der Google Cloud Console den Tab Aktivität aus.

  4. Suchen Sie nach Cloud Logging-Benachrichtigungen zu Cloud Logging-CMEK-Konfigurationsfehlern.

    In jeder Fehlerbenachrichtigung finden Sie Hinweise zur Behebung des Problems:

    Fehler Empfehlung
    Berechtigung für kryptografischen Schlüssel verweigert Dem mit Ihrem Cloud-Projekt verknüpfte Logging-Dienstkonto fehlen die erforderlichen IAM-Berechtigungen für den angegebenen Cloud KMS-Schlüssel. Folgen Sie den Anleitungen, die im Fehler oder unter Berechtigung zum Ver-/Entschlüsseln erteilen beschrieben sind, um die erforderlichen IAM-Berechtigung zu erteilen.
    Kryptografischer Schlüssel ist deaktiviert Der angegebene Cloud KMS-Schlüssel war deaktiviert. Folgen Sie der Anleitung in der Fehlermeldung, um den Schlüssel wieder zu aktivieren.
    Kryptografischer Schlüssel wurde gelöscht Der angegebene Cloud KMS-Schlüssel war gelöscht. Folgen Sie den Anleitungen im Fehler oder unter Cloud KMS-Schlüssel konfigurieren, um die CMEK-Verschlüsselung mit einem anderen Schlüssel zu konfigurieren.

Schlüssel auf Nutzbarkeit prüfen

Führen Sie folgenden Befehl zur Auflistung aller Schlüssel aus, um den Schlüssel auf Nutzbarkeit zu prüfen:

gcloud kms keys list \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING

Dieser Befehl gibt Informationen zu den einzelnen Schlüsseln in einem Tabellenformat zurück. Die erste Zeile der Ausgabe ist eine Liste an Spaltennamen:

NAME PURPOSE ...

Prüfen Sie, ob in der Befehlsausgabe Cloud KMS CryptoKey als ENABLED aufgeführt und als Schlüsselzweck die symmetrische Verschlüsselung angegeben ist: Die Spalte PURPOSE muss ENCRYPT_DECRYPT enthalten und die Spalte PRIMARY_STATE muss ENABLED enthalten.

Bei Bedarf können Sie einen neuen Schlüssel erstellen.

Berechtigungskonfiguration prüfen

Dienstkonten, die mit den CMEK-Einstellungen der Organisation verknüpft sind, müssen die Rolle Cloud KMS CryptoKey-Ver-/Entschlüsseler für den konfigurierten Schlüssel haben.

Führen Sie den folgenden Befehl aus, um die IAM-Richtlinie des Schlüssels abzurufen:

gcloud kms keys get-iam-policy KMS_KEY_NAME

Fügen Sie dem Schlüssel bei Bedarf das Dienstkonto hinzu, das die Rolle "Cloud KMS CryptoKey-Ver-/Entschlüsseler“ enthält.