CMEK für Log-Buckets konfigurieren

In diesem Dokument finden Sie eine Anleitung zum Konfigurieren von vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) für Logs, die in Log-Buckets gespeichert sind. Außerdem wird beschrieben, wie Sie diese Schlüssel verwalten und welche Einschränkungen bei der Verwendung von CMEK gelten.

Für Organisationen und Ordner können Sie CMEK als Standardressourceneinstellungen für Cloud Logging konfigurieren. Wenn diese Option konfiguriert ist, 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 eines Log-Buckets keinen Schlüssel angeben, wird der Schlüssel verwendet, der in den Standardressourceneinstellungen für Cloud Logging angegeben ist. Weitere Informationen finden Sie unter CMEK für Cloud Logging konfigurieren.

Die Informationen in diesem Dokument gelten nicht für Observability-Buckets. Wenn Sie sich für Observability-Buckets interessieren, lesen Sie Standardeinstellungen für Observability-Buckets festlegen.

Übersicht

Cloud Logging verschlüsselt inaktive Kundendaten standardmäßig. Logging übernimmt die Verschlüsselung für Sie, ohne dass Sie weitere Maßnahmen ergreifen müssen. Diese Option heißt Google-Standardverschlüsselung.

Wenn Sie Ihre Verschlüsselungsschlüssel selbst verwalten möchten, können Sie vom Kunden verwaltete Verschlüsselungsschlüssel (CMEKs, Customer-Managed Encryption Keys) in Cloud KMS mit CMEK-integrierten Diensten wie Logging 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 Logging-Ressourcen der Verwendung der Google-Standardverschlüsselung. Weitere Informationen zu Ihren Verschlüsselung soptionen finden Sie unter Kundenverwaltete Verschlüsselungsschlüssel (CMEK).

Vorbereitung

Gehen Sie folgendermaßen vor:

  1. Bei der Verwendung von CMEK gibt es einige Einschränkungen. Lesen Sie sich die Einschränkungen durch, bevor Sie einen Log-Bucket mit aktiviertem CMEK erstellen.

  2. Aktivieren Sie Cloud Shell in der Google Cloud console.

    Cloud Shell aktivieren

    Unten in der Google Cloud console wird eine Cloud Shell Sitzung gestartet und eine Befehlszeilenaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

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

      In Cloud Logging können Sie einen Schlüssel aus einer beliebigen Region verwenden. Wenn Sie jedoch einen Log-Bucket erstellen, muss der Speicherort des Log-Buckets mit dem Speicherort 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. Achten Sie darauf, dass Sie die folgenden Cloud Logging-Berechtigungen für das Google Cloud Projekt haben, 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 Log-Bucket zu aktivieren.

Dienstkonto-ID ermitteln

So ermitteln Sie die Dienstkonto-ID, die mit der Google CloudRessource verknüpft 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
    

    Nehmen Sie vor dem Ausführen des vorherigen Befehls die folgende Ersetzung vor:

    • 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 erstellt, falls noch keines vorhanden ist. Die ID dieses Dienstkontos wird 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 Dienstkonto aufgeführt, das von Cloud Logging zum Aufrufen von Cloud Key Management Service verwendet wird.

  2. Wenn das KMS_SERVICE_ACCT_NAME Feld das Format cmek-pPROJECT_NUMBER, hat und Sie VPC Service Controls verwenden oder die Freigabe auf Domains beschränken, 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 ausführen müssen die Migration, finden Sie unter Fehlerbehebung bei VPC Service Controls und bei der Freigabe auf Domains beschränken.

Rolle „Verschlüsseler/Entschlüsseler“ 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 Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler Rolle dem Dienstkonto zu, das durch das kmsServiceAccountId Feld identifiziert 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

Nehmen Sie vor dem Ausführen des vorherigen Befehls die folgenden Ersetzungen vor:

  • 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 kmsServiceAccountId Feld der Antwort des gcloud logging settings describe Befehls 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 folgendes 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 Befehl gcloud logging buckets create 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

Nehmen Sie vor dem Ausführen des vorherigen Befehls die folgenden Ersetzungen vor:

  • 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 folgendes 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 Befehl gcloud logging buckets list aus, um zu prüfen, ob Sie einen Log-Bucket mit aktiviertem CMEK erstellt haben:

gcloud logging buckets list --project=BUCKET_PROJECT_ID

Nehmen Sie vor dem Ausführen des vorherigen Befehls die folgende Ersetzung vor:

  • 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.

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

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 neueste primäre Schlüsselversion eines Cloud KMS-Schlüssels zu verwenden. 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 der Log-Bucket seine Daten schützt.

Angenommen, Sie erstellen einen Log-Bucket und aktivieren CMEK. Dann 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 gekennzeichnet wurde.

So aktualisieren Sie einen Log-Bucket, um die neueste primäre Schlüsselversion eines Cloud KMS-Schlüssels zu verwenden:

  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 anderen Cloud KMS-Schlüssel, den Sie verwenden können. Wenn Ihr Schlüsselbund nur einen Schlüssel hat, 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, kann BigQuery diesen Zugriff nicht verwenden, um den Schlüssel auf eine neue BigQuery Tabelle anzuwenden. Wenn Sie einen Schlüssel für 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 ein verknüpftes BigQuery-Datasethaben, 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 und gleichzeitig 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

Nehmen Sie vor dem Ausführen des vorherigen Befehls die folgenden Ersetzungen vor:

  • 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 kmsServiceAccountId Feld der Antwort des gcloud logging settings describe Befehls 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 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 keine vom Kunden verwalteten Verschlüsselungsschlüssel (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.

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

Verlust der Notfallwiederherstellung

Wenn es zu kritischen Fehlern im primären Speicher von Cloud Logging kommt, spiegelt Logging die Logging-Daten in Dateien zur Notfallwiederherstellung. Wenn CMEK für eine Ressource wie eine Google Cloud Organisation aktiviert ist, werden die Logs dieser Ressource 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 eines Speicherausfalls kann Cloud Logging jedoch möglicherweise keine Logs von Ressourcen wiederherstellen, deren CMEK nicht richtig konfiguriert ist.

Einschränkungen für den Support

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

Leistungseinbußen bei Abfragen

Wenn ein kundenverwalteter 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 ist, sind die Daten verfügbar. Sie werden jedoch zunächst 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, Google Cloud hat keine Kontrolle über die Verfügbarkeit Ihres extern verwalteten Schlüssels im externen Schlüsselmanagement Partnersystem. Wenn ein extern verwalteter Schlüssel für CMEK auf Bucket-Ebene nicht verfügbar ist, speichert Cloud Logging weiterhin Logs in Log-Buckets, aber Nutzer können 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 mit dem regionalen Umfang Ihrer Daten übereinstimmt. 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. Beispielsweise kann die Aktivierung von CMEK für einen Log-Bucket diese Kontingente verbrauchen. 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 Organisationseinstellungsfehlern.