CMEK für Log-Buckets konfigurieren

Dieses Dokument enthält eine Anleitung zum Konfigurieren von kundenverwalteten Verschlüsselungsschlüsseln (CMEKs) 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. Nach der Konfiguration sorgt Cloud Logging dafür, dass alle neuen Log-Buckets in der Organisation oder im Ordner mit einem vom Kunden verwalteten Schlüssel verschlüsselt werden. 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.

Überblick

Cloud Logging verschlüsselt inaktive Kundendaten standardmäßig. Daten, die von Logging in Log-Buckets gespeichert werden, werden mit Schlüsselverschlüsselungsschlüsseln verschlüsselt. Diese werden als Umschlagverschlü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 Verschlüsselungsschlüssel, die Ihre Daten schützen, von Google zu verwalten, können Sie Ihre Schlüssel verwalten, um die Anforderungen Ihrer Organisation zu erfüllen.

Spezifische Informationen zur CMEK-Nutzung, 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. Lesen Sie die Einschränkungen, bevor Sie einen Log-Bucket mit aktiviertem CMEK erstellen.

  2. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

    gcloud init

    In diesem Leitfaden finden Sie eine Anleitung zur Verwendung der Google Cloud CLI.

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

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

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

  5. Prüfen Sie, ob Sie die folgenden Cloud Logging-Berechtigungen haben:

    • logging.settings.get
    • logging.buckets.get
    • logging.buckets.list
    • logging.buckets.create
    • logging.buckets.update
  6. Aktivieren Sie die Cloud KMS API für das Google Cloud-Projekt, in dem Cloud KMS ausgeführt wird.

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

    Zum Abgleichen fehlerhafter Domains müssen Sie einen Schlüsselbund verwenden, dessen Standort dem regionalen Bereich Ihrer Daten entspricht:

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

  8. Identifizieren Sie Werte für die folgenden Variablen:

    • BUCKET_ID ist die eindeutige numerische Kennung des zu erstellenden Logging-Buckets.
    • BUCKET_PROJECT_ID ist der Name des Google Cloud-Projekts, das den neuen Log-Bucket enthält.
    • KMS_PROJECT_ID ist die eindeutige alphanumerische Kennung aus dem Namen des Google Cloud-Projekts und einer zufällig zugewiesenen Nummer des Google Cloud-Projekts, in dem Cloud KMS ausgeführt wird.
    • KMS_KEY_LOCATION ist die Region des Cloud KMS-Schlüssels.
    • KMS_KEY_RING ist der Name des Cloud KMS-Schlüsselbunds.
    • KMS_KEY_NAME durch den Namen des Cloud KMS-Schlüssels. Dieser hat das folgende Format: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY

    Weitere Informationen zum Suchen von Ressourcenkennungen finden Sie unter Projekte identifizieren.

CMEK aktivieren

Nachdem Sie die erforderlichen Schritte abgeschlossen haben, aktivieren Sie CMEK für einen einzelnen Log-Bucket. Gehen Sie dazu so vor:

Dienstkonto-ID ermitteln

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

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

    gcloud logging settings describe --project=BUCKET_PROJECT_ID
    

    Der vorherige Befehl generiert ein Dienstkonto für die angegebene Ressource, falls noch keines vorhanden ist, und gibt die ID dieses Dienstkontos im Feld kmsServiceAccountId zurück:

    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 des Cloud Key Management Service verwendet wird. Das Format des Felds KMS_SERVICE_ACCT_NAME ist service-PROJECT_NUMBER oder cmek-pPROJECT_NUMBER.

  2. Wenn das Feld KMS_SERVICE_ACCT_NAME das Format cmek-pPROJECT_NUMBER hat und Sie VPC Service Controls verwenden oder die domaineingeschränkte Freigabe aktivieren, bestimmen Sie, ob Sie Ihr CMEK-Dienstkonto migrieren müssen. Informationen zum Zeitpunkt der Migration und den Schritten zur Durchführung der Migration finden Sie unter Fehlerbehebung bei VPC Service Controls und der domaineingeschränkten Freigabe.

Verschlüsseler-/Entschlüsselerrolle zuweisen

Wenn Sie CMEK auf Log-Bucket-Ebene konfigurieren, müssen Sie dem Dienstkonto die Berechtigung zur Verwendung von Cloud KMS erteilen. Weisen Sie dazu dem mit dem Feld kmsServiceAccountId angegebenen Dienstkonto 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

Legen Sie die Variablen im vorherigen Befehl so fest:

  • Ersetzen Sie KMS_SERVICE_ACCT_NAME durch den Wert kmsServiceAccountId, den Sie im vorherigen Schritt ermittelt haben.

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

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

Schlüsselaktivierung prüfen

Führen Sie den folgenden Befehl aus, um zu prüfen, ob Sie erfolgreich einen Log-Bucket mit aktiviertem CMEK erstellt haben:

gcloud logging buckets list --project=BUCKET_PROJECT_ID

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

Führen Sie den folgenden Befehl aus, um die Details für einen bestimmten Log-Bucket einschließlich der Details des Schlüssels aufzurufen:

gcloud logging buckets describe BUCKET_ID

Cloud KMS-Schlüssel verwalten

In den folgenden Abschnitten wird beschrieben, wie Sie einen Log-Bucket aktualisieren, um die neueste Primärschlüsselversion eines Cloud KMS-Schlüssels zu verwenden. Außerdem wird beschrieben, wie Sie Ihren Cloud KMS-Schlüssel ändern, den Zugriff widerrufen und deaktivieren.

Cloud KMS-Schlüssel rotieren

Wenn Sie einen Cloud KMS-Schlüssel erstellen, können Sie einen Rotationszeitraum konfigurieren. Sie können auch einen Cloud KMS-Schlüssel manuell rotieren. Bei jeder Schlüsselrotation wird eine neue Version dafür 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 das Rotieren des Schlüssels nicht den Schutz seiner Daten durch den Log-Bucket.

Angenommen, Sie erstellen einen Log-Bucket, aktivieren CMEK und rotieren dann den Cloud KMS-Schlüssel. Der von Ihnen erstellte Log-Bucket verwendet nicht die neue Schlüsselversion. Stattdessen werden seine Daten weiterhin mit der Schlüsselversion geschützt, die beim Erstellen des Log-Buckets als primär gekennzeichnet war.

So aktualisieren Sie einen Log-Bucket so, dass er die neueste Primärschlü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. Ermitteln Sie einen weiteren Cloud KMS-Schlüssel, den Sie verwenden können. Wenn Ihr Schlüsselbund nur einen Schlüssel hat, klicken Sie auf Schlüssel erstellen.
  3. Ändern Sie den Cloud KMS-Schlüssel für den Log-Bucket in den im vorherigen Schritt erstellten Cloud KMS-Schlüssel.
  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

Erstellen Sie einen Schlüssel und aktualisieren Sie die CMEK-Einstellungen für den Log-Bucket, um den mit Ihrem Log-Bucket verknüpften Cloud KMS-Schlüssel zu ändern:

gcloud logging buckets update BUCKET_ID --cmek-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.

Wenn Sie ein verknüpftes BigQuery-Dataset haben, kann BigQuery diesen Zugriff nicht nutzen, um einen Schlüssel für eine neue BigQuery-Tabelle anzuwenden. Wenn Sie einen Schlüssel für eine BigQuery-Tabelle verwenden möchten, die nicht mit Logging verknüpft sind, folgen Sie der BigQuery-Dokumentation. Wenn Sie den Zugriff von Logging auf einen Schlüssel widerrufen und Sie 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, während Sie den Zugriff von Logging beibehalten.

Weitere Informationen zu den Auswirkungen des Widerrufs 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

Beschränkungen

Folgende Einschränkungen sind bekannt.

CMEK deaktiviert Error Reporting

Wenn Sie Error Reporting verwenden möchten, aktivieren Sie keine vom Kunden verwalteten Verschlüsselungsschlüssel (CMEKs) 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.

Verschlechterung 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 Verschlüsselungs- und Entschlüsselungsberechtigungen für den Schlüssel.

Logging empfiehlt dringend, dass alle Schlüssel ordnungsgemäß konfiguriert und immer verfügbar sind.

Verlust der Notfallwiederherstellung

Bei kritischen Fehlern im primären Cloud Logging-Speicher werden die Logging-Daten von Logging in Dateien zur Notfallwiederherstellung gespiegelt. Wenn CMEK für eine Ressource aktiviert ist, z. B. für eine Google Cloud-Organisation, 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 zur Notfallwiederherstellung hat keine Auswirkungen auf normale Logging-Vorgänge. Im Falle einer Speicherkatastrophe kann Cloud Logging jedoch möglicherweise keine Logs von Ressourcen wiederherstellen, deren CMEK nicht ordnungsgemäß konfiguriert ist.

Supporteinschränkungen

Cloud Customer Care kann die Logs Ihrer Ressource nicht lesen, wenn der Schlüssel nicht ordnungsgemäß konfiguriert oder nicht verfügbar ist.

Eingeschränkte Abfrageleistung

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

Verschlechterung aufgrund der Nichtverfügbarkeit des Cloud EKM-Schlüssels

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. Wenn bei einem CMEK auf Bucket-Ebene kein extern verwalteter Schlüssel verfügbar ist, speichert Cloud Logging weiterhin Logs in Log-Buckets. Nutzer können jedoch nicht auf diese Logs zugreifen.

Weitere Überlegungen und mögliche Alternativen bei der Verwendung externer Schlüssel finden Sie in der Dokumentation zu 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 keinen CMEK für Log-Buckets konfigurieren, die in der Region global erstellt wurden.

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

Informationen zum Beheben von CMEK-Konfigurationsfehlern finden Sie unter Fehlerbehebung bei CMEK- und Organisationseinstellungen.