CMEK für Log-Buckets konfigurieren

Dieses Dokument enthält eine Anleitung zum Konfigurieren der vom Kunden verwalteten Verschlüsselung Schlüssel (CMEK) für Logs, die gespeichert sind in Log-Buckets Außerdem wird beschrieben, wie Sie diese Schlüssel verwalten und welche Einschränkungen mit der Verwendung von CMEK verbunden sind.

Sie können CMEK als Standard-Ressourceneinstellung für eine Organisation oder einem Ordner. Durch die Konfiguration sorgt Cloud Logging dafür, dass alle neuen Log-Buckets in der Organisation oder im Ordner die mit einem vom Kunden verwalteten Schlüssel verschlüsselt sind. 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. Von Logging in Log-Buckets gespeicherte Daten werden verschlüsselt mit Schlüsselverschlüsselungsschlüsseln, ein Verfahren, das als Umschlagverschlüsselung bezeichnet wird. Der Zugriff auf Ihre Logging-Daten erfordert den Zugriff auf diese Schlüsselverschlüsselungsschlüssel, die Google Cloud 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. Um die Anforderungen Ihrer Organisation zu erfüllen, verwaltet Google Cloud die Verschlüsselungsschlüssel, die Ihre Daten schützen, können Sie Ihre Schlüssel verwalten.

Weitere Informationen zur Verwendung von CMEK, einschließlich Vorteilen 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 Protokoll-Bucket mit aktivierter CMEK-Verschlüsselung erstellen.

  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 die 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. Erstellen Sie einen Schlüsselbund und Schlüssel.

      Mit Cloud Logging können Sie einen Schlüssel aus einer beliebigen Region verwenden. Wenn Sie jedoch einen Protokoll-Bucket erstellen, muss der Speicherort des Protokoll-Buckets mit dem Speicherort des Schlüssels übereinstimmen. Informationen zu unterstützten Regionen sehen Sie sich Folgendes an:

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

  4. Achten Sie darauf, dass Sie die folgenden Cloud Logging-Berechtigungen für die Google 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

CMEK aktivieren

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

Dienstkonto-ID ermitteln

So ermitteln Sie die Dienstkonto-ID der Google Cloud-Ressource, 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 den folgenden Befehl:

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

    Mit diesem Befehl wird ein Dienstkonto für die angegebene Ressource generiert, falls noch keines vorhanden ist. Außerdem wird die ID dieses Dienstkontos im Feld kmsServiceAccountId 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 ist das verwendete Dienstkonto aufgeführt. von Cloud Logging aus, um den Cloud Key Management Service aufzurufen.

  2. Wenn das Feld KMS_SERVICE_ACCT_NAME folgendes Format hat: cmek-pPROJECT_NUMBER, Wenn Sie VPC Service Controls verwenden oder Domaineingeschränkte Freigabe aktivieren, Ermitteln Sie dann, ob Sie Ihr CMEK-Dienstkonto migrieren müssen. Informationen dazu, wann Sie migrieren müssen und welche Schritte ausgeführt werden müssen der Migration, siehe Fehlerbehebung bei VPC Service Controls und der domaineingeschränkten Freigabe

Verschlüsseler-/Entschlüsselerrolle zuweisen

Wenn Sie einen CMEK auf Log-Bucket-Ebene konfigurieren, geben Sie Dienstkontoberechtigung zur Verwendung von Cloud KMS durch Zuweisen der Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler Rolle dem Dienstkonto zu, das durch das Feld kmsServiceAccountId angegeben wird:

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, die aus dem Namen Ihres Google Cloud-Projekts und einer zufällig zugewiesene 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 das im kmsServiceAccountId-Feld der Antwort von gcloud logging settings describe .
  • KMS_KEY_LOCATION: 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. Sie hat folgendes Format: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY

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

So erstellen Sie einen Log-Bucket und aktivieren CMEK für den Log-Bucket: führen Sie Folgendes aus: gcloud logging buckets create Befehl:

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 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 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 die folgenden Werte:

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

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 Protokoll-Bucket aktiviert.

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

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, um die Methode neueste Primärschlüsselversion eines Cloud KMS-Schlüssels. Sie beschreiben auch wie Sie Ihren Cloud KMS-Schlüssel ändern, den Zugriff widerrufen und ihn deaktivieren.

Cloud KMS-Schlüssel rotieren

Wenn Sie einen Cloud KMS-Schlüssel erstellen, können Sie einen Rotationszeitraum konfigurieren. Sie können auch Cloud KMS-Schlüssel 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 einen vorhandenen Log-Bucket haben, ändert sich durch Rotieren des Schlüssels nicht, wie sich der Log-Bucket ihre Daten schützt.

Angenommen, Sie erstellen einen Log-Bucket, aktivieren CMEK und rotieren dann den Cloud KMS-Schlüssel. Der Log-Bucket, den Sie verwendet nicht die neue Schlüsselversion, sondern schützt weiterhin ihre Daten mit der Schlüsselversion, die beim folgenden Log-Bucket als primär gekennzeichnet wurde erstellt.

So aktualisieren Sie einen Log-Bucket, damit die neueste Primärschlüsselversion eines Cloud KMS-Schlüssels verwendet wird:

  1. Ermitteln Sie den aktuellen Cloud KMS-Schlüssel für den Log-Bucket. Weitere Informationen finden Sie unter Aktivierung des Schlüssels 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, und dann auf Schlüssel erstellen.
  3. Ändern Sie den Cloud KMS-Schlüssel für den Protokoll-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

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.

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 in einer BigQuery-Tabelle verwenden möchten, der 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 Datensatzes nicht widerrufen und gleichzeitig den Zugriff für die Protokollierung 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

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

  • KMS_PROJECT_ID: die eindeutige alphanumerische Kennung, die aus dem Namen Ihres Google Cloud-Projekts und einer zufällig zugewiesene 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: 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. Sie hat folgendes Format: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY

Beschränkungen

Die folgenden Einschränkungen sind bekannt.

CMEK deaktiviert Error Reporting

Wenn Sie Error Reporting verwenden möchten, Aktivieren Sie kundenverwaltete Verschlüsselungsschlüssel (CMEKs) für Ihre Log-Buckets. Weitere Informationen finden Sie unter Fehlerbehebung.

CMEK kann nicht aus Protokoll-Buckets entfernt werden

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

Beeinträchtigung aufgrund der Nichtverfügbarkeit eines Cloud KMS-Schlüssels

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 verfügt über Verschlüsselung und Entschlüsselung Berechtigungen für den Schlüssel.

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

Verlust der Notfallwiederherstellung

Bei kritischen Fehlern im primären Speicher von Cloud Logging werden die Protokolldaten in Notfallwiederherstellungsdateien gespiegelt. Wann? CMEK ist für eine Ressource aktiviert, z. B. eine Google Cloud-Organisation, Logs die zu dieser Ressource gehören, durch den konfigurierten CMEK-Schlüssel geschützt. Wenn kein Zugriff auf den CMEK-Schlüssel besteht, können die Wiederherstellungsdateien für diese Ressource nicht geschrieben werden.

Der Verlust von Dateien zur Notfallwiederherstellung hat keine Auswirkungen auf die normalen Logging-Vorgänge. Bei einer Speicherkatastrophe kann Cloud Logging jedoch möglicherweise keine Logs aus Ressourcen wiederherstellen, deren CMEK nicht richtig konfiguriert ist.

Supporteinschränkungen

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

Verschlechterte Abfrageleistung

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

Beeinträchtigung aufgrund der Nichtverfügbarkeit eines Cloud EKM-Schlüssels

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. Wenn bei der CMEK-Verschlüsselung auf Bucketebene ein extern verwalteter Schlüssel nicht verfügbar ist, werden die Logs weiterhin in Log-Buckets in Cloud Logging gespeichert, Nutzer können jedoch nicht darauf zugreifen.

Weitere Überlegungen und mögliche Alternativen zur Verwendung externer Schlüssel finden Sie 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 mit dem regionalen Geltungsbereich Ihrer Daten übereinstimmt. Sie können CMEK nicht für Log-Buckets konfigurieren, die in der globalRegion 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 Fehler bei CMEK und Organisationseinstellungen beheben