CMEK für Log-Buckets konfigurieren

In diesem Dokument finden Sie eine Anleitung zum Konfigurieren von vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) für Logs, die in Log-Buckets gespeichert sind. In diesem Dokument wird auch beschrieben, wie Sie diese Schlüssel verwalten und welche Einschränkungen mit der Verwendung von CMEK verbunden sind.

Sie können CMEK als Standardressourceneinstellung für eine Organisation oder einen Ordner konfigurieren. Wenn Cloud Logging konfiguriert ist, werden alle neuen Log-Buckets in der Organisation oder im Ordner mit einem vom Kunden verwalteten Schlüssel verschlüsselt. Wenn Sie beim Erstellen des Log-Buckets keinen Schlüssel angeben, wird der Standardschlüssel verwendet. Weitere Informationen finden Sie unter CMEK für Cloud Logging konfigurieren.

Übersicht

Cloud Logging verschlüsselt inaktive Kundendaten standardmäßig. In Log-Buckets von Logging gespeicherte 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. Standardmäßig sind das Google-owned and Google-managed encryption keys und Sie müssen nichts weiter tun.

Ihre Organisation kann regulatorische, Compliance- oder erweiterte Verschlüsselungsanforderungen haben, die unsere Standardverschlüsselung inaktiver Daten nicht anspricht. AnstattGoogle-owned and Google-managed encryption keyszu verwenden, können Sie Ihre eigenen Schlüssel verwalten, um die Anforderungen Ihrer Organisation zu erfüllen.

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

Für die symmetrische Verschlüsselung wird die regelmäßige und automatische Schlüsselrotation empfohlen. Weitere Informationen finden Sie unter Schlüsselrotation.

Vorbereitung

Gehen Sie folgendermaßen vor:

  1. Bei der Verwendung von CMEK gibt es einige Einschränkungen. Bevor Sie einen Log-Bucket mit aktivierter CMEK erstellen, sollten Sie sich die Einschränkungen ansehen.

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Konfigurieren Sie das Google Cloud -Projekt, in dem Sie Ihre Schlüssel erstellen möchten:

    1. Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud KMS-Administrator (roles/cloudkms.admin) für das Projekt oder eine übergeordnete Ressource zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Schlüsseln benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

      Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

    2. Aktivieren Sie die Cloud KMS API.

    3. Schlüsselbund und Schlüssel erstellen

      Mit Cloud Logging können Sie einen Schlüssel aus einer beliebigen Region verwenden. Wenn Sie einen Log-Bucket erstellen, muss der Standort des Log-Buckets jedoch mit dem Standort des Schlüssels übereinstimmen. Informationen zu unterstützten Regionen finden Sie unter:

      Sie können CMEK nicht für Log-Buckets aktivieren, die in der Region global erstellt wurden.

  4. Sie benötigen die folgenden Cloud Logging-Berechtigungen für dasGoogle Cloud -Projekt, in dem Sie Log-Buckets erstellen möchten:

    • logging.settings.get
    • logging.buckets.get
    • logging.buckets.list
    • logging.buckets.create
    • logging.buckets.update
  5. CMEK aktivieren

    Nachdem Sie die erforderlichen Schritte ausgeführt haben, folgen Sie dieser Anleitung, um CMEK für einen einzelnen Log-Bucket zu aktivieren.

    Dienstkonto-ID ermitteln

    So ermitteln Sie die Dienstkonto-ID, die der Google Cloud-Ressource zugeordnet ist, für die CMEK gelten soll:

    1. Führen Sie den folgenden gcloud logging settings describe-Befehl aus:

      gcloud logging settings describe --project=BUCKET_PROJECT_ID
      

      Bevor Sie den vorherigen Befehl ausführen, ersetzen Sie Folgendes:

      • BUCKET_PROJECT_ID: Name des Google Cloud -Projekts, in dem Sie den Log-Bucket erstellen möchten.

      Mit dem vorherigen Befehl wird ein Dienstkonto für die angegebene Ressource generiert, falls noch keines vorhanden ist. Außerdem wird die ID dieses Dienstkontos im kmsServiceAccountId-Feld zurückgegeben:

      kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
      loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
      name: projects/BUCKET_PROJECT_ID/settings
      

      Im Feld kmsServiceAccountId wird das Dienstkonto aufgeführt, das von Cloud Logging zum Aufrufen von Cloud Key Management Service verwendet wird.

    2. Wenn das Feld KMS_SERVICE_ACCT_NAME das Format cmek-pPROJECT_NUMBER hat und Sie VPC Service Controls verwenden oder die domainbeschränkte Freigabe aktivieren, müssen Sie prüfen, ob Sie Ihr CMEK-Dienstkonto migrieren müssen. Informationen dazu, wann Sie migrieren müssen, und zu den Schritten, die Sie dazu ausführen müssen, finden Sie unter Fehlerbehebung bei VPC Service Controls und domainbeschränkter Freigabe.

    Verschlüsseler-/Entschlüsselerrolle zuweisen

    Wenn Sie CMEK auf Log-Bucket-Ebene konfigurieren, müssen Sie dem Dienstkonto die Berechtigung geben, Ihren Cloud KMS zu verwenden. Weisen Sie dem Dienstkonto, das durch das Feld kmsServiceAccountId angegeben wird, die Rolle Cloud KMS CryptoKey Encrypter/Decrypter zu:

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

    Bevor Sie den vorherigen Befehl ausführen, ersetzen Sie die folgenden Werte:

    • KMS_PROJECT_ID: Die eindeutige alphanumerische Kennung aus dem Google Cloud Projektnamen und einer zufällig zugewiesenen Nummer des Google Cloud Projekts, in dem Cloud KMS ausgeführt wird. Informationen zum Abrufen dieser Kennung finden Sie unter Projekte identifizieren.
    • KMS_SERVICE_ACCT_NAME: Der Name des Dienstkontos, der im Feld kmsServiceAccountId der Antwort des Befehls gcloud logging settings describe angezeigt wird.
    • KMS_KEY_LOCATION: Die Region des Cloud KMS-Schlüssels.
    • KMS_KEY_RING: Der Name des Cloud KMS-Schlüsselbunds.
    • KMS_KEY_NAME: Der Name des Cloud KMS-Schlüssels. Er hat das folgende Format: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

    Log-Bucket erstellen und Cloud KMS-Schlüssel angeben

    Führen Sie den folgenden gcloud logging buckets create-Befehl aus, um einen Log-Bucket zu erstellen und CMEK für den Log-Bucket zu aktivieren:

    gcloud logging buckets create BUCKET_ID \
    --location=LOCATION \
    --cmek-kms-key-name=KMS_KEY_NAME \
    --project=BUCKET_PROJECT_ID
    

    Bevor Sie den vorherigen Befehl ausführen, ersetzen Sie die folgenden Werte:

    • BUCKET_ID: Der Name oder die ID des Log-Buckets.
    • LOCATION: Der Speicherort des Log-Buckets.
    • KMS_KEY_NAME: Der Name des Cloud KMS-Schlüssels. Er hat das folgende Format: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
    • BUCKET_PROJECT_ID: Name des Google Cloud Projekts, in dem der Log-Bucket erstellt wird.

    Schlüsselaktivierung prüfen

    Führen Sie den folgenden gcloud logging buckets list-Befehl aus, um zu prüfen, ob Sie einen Log-Bucket mit aktivierter CMEK-Verschlüsselung erstellt haben:

    gcloud logging buckets list --project=BUCKET_PROJECT_ID
    

    Bevor Sie den vorherigen Befehl ausführen, ersetzen Sie Folgendes:

    • BUCKET_PROJECT_ID: Name des Google Cloud Projekts, in dem der Log-Bucket gespeichert ist.

    In der tabellarischen Ausgabe sehen Sie eine Spalte mit der Bezeichnung CMEK. Wenn der Wert der Spalte CMEK TRUE ist, ist CMEK für den Log-Bucket aktiviert.

    Wenn Sie die Details für einen bestimmten Log-Bucket aufrufen möchten, einschließlich der Details des Schlüssels, führen Sie diesen Befehl aus:

    gcloud logging buckets describe BUCKET_ID --location=LOCATION --project=BUCKET_PROJECT_ID
    

    Cloud KMS-Schlüssel verwalten

    In den folgenden Abschnitten wird beschrieben, wie Sie einen Log-Bucket aktualisieren, damit die neueste primäre Schlüsselversion eines Cloud KMS-Schlüssels verwendet wird. Außerdem wird beschrieben, wie Sie Ihren Cloud KMS-Schlüssel ändern, den Zugriff auf ihn widerrufen oder ihn deaktivieren können.

    Cloud KMS-Schlüssel rotieren

    Wenn Sie einen Cloud KMS-Schlüssel erstellen, können Sie einen Rotationszeitraum konfigurieren. Sie können einen Cloud KMS-Schlüssel auch manuell rotieren. Jedes Mal, wenn ein Schlüssel rotiert wird, wird eine neue Version für diesen Schlüssel erstellt.

    Wenn Sie einen Cloud KMS-Schlüssel rotieren, gilt die neue Schlüsselversion nur für Log-Buckets, die nach der Schlüsselrotation erstellt wurden. Wenn der Schlüssel von einem vorhandenen Log-Bucket verwendet wird, ändert sich durch das Rotieren des Schlüssels nicht, wie das Log-Bucket seine Daten schützt.

    Angenommen, Sie erstellen ein Log-Bucket und aktivieren CMEK. Anschließend rotieren Sie den Cloud KMS-Schlüssel. Der von Ihnen erstellte Log-Bucket verwendet nicht die neue Schlüsselversion, sondern schützt seine Daten weiterhin mit der Schlüsselversion, die beim Erstellen des Log-Buckets als primär markiert wurde.

    So aktualisieren Sie einen Log-Bucket, damit er die aktuelle primäre Schlüsselversion eines Cloud KMS-Schlüssels verwendet:

    1. Ermitteln Sie den aktuellen Cloud KMS-Schlüssel für den Log-Bucket. Weitere Informationen finden Sie unter Schlüsselaktivierung prüfen.
    2. Suchen Sie einen anderen Cloud KMS-Schlüssel, den Sie verwenden können. Wenn Ihr Schlüsselbund nur einen Schlüssel enthält, erstellen Sie einen Schlüssel.
    3. Ändern Sie den Cloud KMS-Schlüssel für den Log-Bucket in den Cloud KMS-Schlüssel, der im vorherigen Schritt erstellt wurde.
    4. Ändern Sie den Cloud KMS-Schlüssel für den Log-Bucket in den ursprünglichen Cloud KMS-Schlüssel.

    Cloud KMS-Schlüssel ändern

    Wenn Sie den mit Ihrem Log-Bucket verknüpften Cloud KMS-Schlüssel ändern möchten, erstellen Sie einen Schlüssel und aktualisieren Sie die CMEK-Einstellungen für den Log-Bucket:

    gcloud logging buckets update BUCKET_ID --location=LOCATION \
    --cmek-kms-key-name=NEW_KMS_KEY_NAME --project=BUCKET_PROJECT_ID
    
    • BUCKET_ID: Der Name oder die ID des Log-Buckets.
    • LOCATION: Der Speicherort des Log-Buckets.
    • NEW_KMS_KEY_NAME: Name des neuen Schlüssels.
    • BUCKET_PROJECT_ID: Name des Google Cloud Projekts, in dem der Log-Bucket gespeichert ist.

    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.

    Wenn Sie ein verknüpftes BigQuery-Dataset haben, kann BigQuery diesen Zugriff nicht verwenden, um den Schlüssel auf eine neue BigQuery-Tabelle anzuwenden. Wenn Sie einen Schlüssel für eine BigQuery-Tabelle verwenden möchten, die nicht mit Logging verknüpft ist, folgen Sie der BigQuery-Dokumentation. Wenn Sie den Zugriff von Logging auf einen Schlüssel widerrufen und ein verknüpftes BigQuery-Dataset haben, widerrufen Sie auch den Zugriff von BigQuery auf denselben Schlüssel.

    Sie können den Zugriff von BigQuery auf den Schlüssel des verknüpften Datasets nicht widerrufen, ohne den Zugriff von Logging zu widerrufen.

    Weitere Informationen zu den Auswirkungen des Entziehens des Zugriffs finden Sie unter Einschränkungen.

    Führen Sie den folgenden Befehl aus, um den Zugriff von Logging auf einen Schlüssel zu entfernen:

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

    Bevor Sie den vorherigen Befehl ausführen, ersetzen Sie die folgenden Werte:

    • KMS_PROJECT_ID: Die eindeutige alphanumerische Kennung aus dem Google Cloud Projektnamen und einer zufällig zugewiesenen Nummer des Google Cloud Projekts, in dem Cloud KMS ausgeführt wird. Informationen zum Abrufen dieser Kennung finden Sie unter Projekte identifizieren.
    • KMS_SERVICE_ACCT_NAME: Der Name des Dienstkontos, der im Feld kmsServiceAccountId der Antwort des Befehls gcloud logging settings describe angezeigt wird.
    • KMS_KEY_LOCATION: Die Region des Cloud KMS-Schlüssels.
    • KMS_KEY_RING: Der Name des Cloud KMS-Schlüsselbunds.
    • KMS_KEY_NAME: Der Name des Cloud KMS-Schlüssels. Er hat das folgende Format: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

    Beschränkungen

    Es gelten die folgenden bekannten Einschränkungen.

    CMEK deaktiviert Error Reporting

    Wenn Sie Error Reporting verwenden möchten, aktivieren Sie keine vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEK) für Ihre Log-Buckets. Weitere Informationen finden Sie unter Fehlerbehebung.

    CMEK kann nicht aus Log-Buckets entfernt werden

    Sie können Log-Buckets nicht neu konfigurieren, um CMEK zu ändern oder zu entfernen.

    Leistungseinbußen aufgrund der Nichtverfügbarkeit von Cloud KMS-Schlüsseln

    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.

    Für das Logging wird dringend empfohlen, dafür zu sorgen, dass alle Schlüssel richtig konfiguriert und immer verfügbar sind.

    Verlust der Notfallwiederherstellung

    Wenn im primären Speicher von Cloud Logging kritische Fehler auftreten, spiegelt Logging die Logdaten in Dateien für die Notfallwiederherstellung. Wenn CMEK für eine Ressource wie eine Google Cloud Organisation aktiviert ist, werden Logs, die zu dieser Ressource gehören, durch den konfigurierten CMEK-Schlüssel geschützt. Wenn der CMEK-Schlüssel nicht zugänglich ist, können die Dateien zur Notfallwiederherstellung für diese Ressource nicht geschrieben werden.

    Der Verlust von Dateien für die Notfallwiederherstellung hat keine Auswirkungen auf den normalen Logging-Vorgang. Im Falle einer Speicherkatastrophe kann Cloud Logging jedoch möglicherweise keine Logs von Ressourcen wiederherstellen, deren CMEK nicht richtig konfiguriert ist.

    Einschränkungen beim Support

    Cloud Customer Care kann die Logs Ihrer Ressource nicht lesen, wenn der zugehörige Schlüssel nicht richtig konfiguriert ist oder nicht mehr verfügbar ist.

    Beeinträchtigte Abfrageleistung

    Wenn ein vom Kunden verwalteter Verschlüsselungsschlüssel nicht zugänglich ist, verschlüsselt Cloud Logging Ihre Daten weiterhin und speichert sie in Log-Buckets. Cloud Logging kann jedoch keine Hintergrundoptimierungen für diese Daten ausführen. Wenn der Schlüsselzugriff wiederhergestellt wird, sind die Daten wieder verfügbar. Sie werden jedoch anfangs in einem nicht optimierten Zustand gespeichert und die Abfrageleistung kann beeinträchtigt sein.

    Leistungseinbußen aufgrund der Nichtverfügbarkeit von Cloud EKM-Schlüsseln

    Wenn Sie einen Cloud EKM-Schlüssel verwenden,hat Google Cloud keine Kontrolle über die Verfügbarkeit Ihres extern verwalteten Schlüssels im Partnersystem für die externe Schlüsselverwaltung. Bei CMEK auf Bucket-Ebene werden Logs weiterhin in Log-Buckets gespeichert, wenn ein extern verwalteter Schlüssel nicht verfügbar ist. Nutzer können jedoch nicht auf diese Logs zugreifen.

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

    Regionalität

    Wenn Sie einen Log-Bucket erstellen und CMEK aktivieren, müssen Sie einen Schlüssel verwenden, dessen Region dem regionalen Geltungsbereich Ihrer Daten entspricht. Sie können CMEK nicht für Log-Buckets konfigurieren, die in der global-Region erstellt wurden.

    Verfügbarkeit der Clientbibliothek

    Logging-Clientbibliotheken bieten keine Methoden zum Konfigurieren von CMEK.

    Kontingente

    Wenn Sie CMEK in Logging verwenden, können Ihre Projekte Kontingente für kryptografische Cloud KMS-Anfragen verbrauchen. Wenn Sie beispielsweise CMEK für einen Log-Bucket aktivieren, kann dies diese Kontingente in Anspruch nehmen. Ver- und Entschlüsselungsvorgänge über CMEK-Schlüssel wirken sich nur dann auf Cloud KMS-Kontingente aus, wenn Sie Hardware- (Cloud HSM) oder externe Schlüssel (Cloud EKM) verwenden. Weitere Informationen finden Sie unter Cloud KMS-Kontingente.

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

    Konfigurationsfehler beheben

    Informationen zur Fehlerbehebung bei CMEK-Konfigurationsfehlern finden Sie unter Fehlerbehebung bei CMEK- und Organisationseinstellungen.