Auf dieser Seite wird gezeigt, wie Sie vom Kunden verwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys – CMEK) in Cloud Logging für Logs Router verwenden können, um Compliance-Anforderungen zu erfüllen. Anstatt die Verschlüsselungsschlüssel zum Schutz Ihrer Daten von Google verwalten zu lassen, können Sie mit dem Cloud Key Management Service die Verschlüsselungsschlüssel selbst erstellen, steuern und verwalten.
Eine Übersicht über die Verschlüsselungsoptionen finden Sie unter Verschlüsselung inaktiver Daten.
CMEK für Logs Router
Mit CMEK können Sie Schlüssel steuern, die zum Verschlüsseln inaktiver Daten verwendet werden. Damit können Sie die folgenden Anforderungen für Ihre Google Cloud-Organisation erfüllen:
Compliance und interne Kontrolle: Mit CMEK können Sie sensible oder regulierte Daten verwalten, die Sie in Google Cloud-Produkten speichern. Diese Kontrolle ist häufig ein dokumentierter Bestandteil interner Compliance-Verfahren, der Aufsichtsbehörden offengelegt werden und schwierig zu ändern sein kann.
Erweiterte Verschlüsselung: Ihre Organisation hat möglicherweise erweiterte Verschlüsselungsanforderungen (z. B. schnelles Löschen von Schlüsseln), die bei unserer Standardverschlüsselung inaktiver Daten nicht vorgesehen sind. Durch die Einbindung in Cloud KMS bietet CMEK die Möglichkeit, diesen Anforderungen gerecht zu werden.
Gesetzliche Vorschriften: Möglicherweise ist Ihre Organisation aufgrund gesetzlicher Vorschriften, wie zum Beispiel der Export Administration Regulations (EAR), zur Kontrolle sensibler Daten verpflichtet.
Die Verschlüsselung inaktiver Daten ist bereits in allen Google Cloud-Diensten verfügbar, auch in Logs Router. Derzeit ist es nicht möglich, CMEK für Logs zu nutzen, die in Cloud Logging gespeichert sind. Sie können jedoch mit CMEK die von Logs Router verwendeten temporären Dateien zur Notfallwiederherstellung sowie die temporären Dateien schützen, die bei Exporten nach Cloud Storage verwendet werden. Weitere Informationen finden Sie unter Einschränkungen.
Eine Beschreibung von Logs Router finden Sie im Überblick.
Erste Schritte
Erstellen oder identifizieren Sie das Google Cloud-Projekt, in dem Sie Cloud KMS ausführen möchten.
Achten Sie darauf, dass die Richtlinien der Identitäts- und Zugriffsverwaltung der Google Cloud-Organisation Ihnen eine IAM-Rolle mit den Berechtigungen
logging.cmekSettings.{get,update}
gewähren. Es wird empfohlen, die Rolle Autor von Logkonfigurationen mit diesen Berechtigungen zu haben.Aktivieren Sie die Cloud KMS API für das Google Cloud-Projekt, in dem Cloud KMS ausgeführt wird.
Erstellen Sie einen Schlüsselbund und Schlüssel für das Google Cloud-Projekt, in dem Cloud KMS ausgeführt wird.
Der regionale Geltungsbereich der Schlüssel sollte dem regionalen Geltungsbereich Ihrer Daten entsprechen. Unter Cloud KMS-Standorte sind die verfügbaren Regionen aufgeführt.
Identifizieren Sie die nachstehend genannten, erforderlichen Parameter. In den Beispielen auf dieser Seite wird die folgende Konvention verwendet, um Google Cloud-Ressourcenmetadaten anzugeben:
[ORGANIZATION_ID]
ist die eindeutige numerische ID der Google Cloud-Organisation, für die CMEK aktiviert werden soll.[KMS_PROJECT_ID]
ist die eindeutige alphanumerische Kennung aus dem Projektnamen und einer zufällig zugewiesenen Nummer des 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]
Wo Sie diese Parameter finden, lesen Sie unter Projekte identifizieren und Organisations-ID abrufen.
CMEK für eine Organisation aktivieren
Nachdem Sie den Abschnitt Erste Schritte abgeschlossen haben, können Sie CMEK für Ihre Google Cloud-Organisation so aktivieren:
Berechtigungen zum Verschlüsseln und Entschlüsseln erteilen
Legen Sie die entsprechende Dienstkonto-ID fest und erteilen Sie dem Dienstkonto die Berechtigung, Ihren Cloud KMS-Schlüssel zu nutzen.
Dienstkonto-ID ermitteln
REST API
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.
Senden Sie eine GET-Anfrage zum Abruf der
serviceAccountId
der Google Cloud-Organisation, für die CMEK aktiviert werden soll:curl -H "Authorization: Bearer [AUTH_TOKEN]" \ https://logging.googleapis.com/v2/organizations/[ORGANIZATION_ID]/cmekSettings { "serviceAccountId": "[SERVICE_ACCOUNT_ID]@gcp-sa-logging.iam.gserviceaccount.com" }
gcloud
Führen Sie zum Abruf der serviceAccountId
der Google Cloud-Organisation, für die CMEK aktiviert werden soll, folgenden gcloud
-Befehl aus:
gcloud beta logging cmek-settings describe --organization=[ORGANIZATION_ID] serviceAccountId: "[SERVICE_ACCOUNT_ID]@gcp-sa-logging.iam.gserviceaccount.com"
Verschlüsseler-/Entschlüsselerrolle zuweisen
Damit CMEK genutzt werden kann, müssen Sie dem Dienstkonto die Berechtigung geben, Cloud KMS zu verwenden. Weisen Sie dem Konto hierfür die Rolle Cloud KMS CryptoKey Encrypter/Decrypter
zu:
REST API
- 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.
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" }, } }
Verwenden Sie
cURL
, um die Cloud KMS API mit einerPOST 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 [SERVICE_ACCOUNT_ID]@gcp-sa-logging.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=[KMS_KEY_LOCATION] \ --keyring=[KMS_KEY_RING] \ [KMS_KEY]
Ersetzen Sie [KMS_PROJECT_ID]
durch die ID Ihres Google Cloud-Projekts, in dem Cloud KMS ausgeführt wird. Ersetzen Sie außerdem [KMS_KEY_LOCATION]
, [KMS_KEY_RING]
, [KMS_KEY_RING]
und [KMS_KEY]
jeweils durch den Standort, den Schlüsselbund und Schlüsselnamen Ihres Cloud KMS-Schlüssels.
Console
- Ö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 Klicken Sie auf den Namen des Schlüsselbunds, der den gewünschten Schlüssel enthält.
Klicken Sie das Kästchen für den gewünschten Schlüssel an.
Der Tab Berechtigungen im rechten Fensterbereich wird verfügbar.
Geben Sie im Dialogfeld Mitglieder hinzufügen die E-Mail-Adresse des Logging-Dienstkontos an, auf das Sie Zugriff gewähren.
Wählen Sie im Drop-down-Menü Rolle auswählen die Option Cloud KMS CryptoKey-Verschlüsseler/Entschlüsseler aus.
Klicken Sie auf Hinzufügen.
Cloud KMS-Schlüssel konfigurieren
Aktualisieren Sie die CMEK-Einstellungen für die Google Cloud-Organisation mit einem Cloud KMS-Schlüsselnamen, um das Feature für Ihre Organisation zu aktivieren.
Diese Aktualisierung schlägt fehl, wenn [KMS_KEY_NAME]
ungültig ist, das zugehörige Dienstkonto nicht die erforderliche Rolle als Verschlüsseler/Entschlüsseler hat oder der Zugriff auf den Schlüssel deaktiviert ist.
REST API
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.
Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "kms_key_name": "[KMS_KEY_NAME]" }
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
Führen Sie den folgenden gcloud-Befehl aus:
gcloud beta logging cmek-settings update \ --organization=[ORGANIZATION_ID] --kms-key-name=[KMS_KEY_NAME]
Schlüsselaktivierung prüfen
Aktualisieren Sie die CMEK-Einstellungen für die Google Cloud-Organisation mit einem Cloud KMS-Schlüsselnamen, um zu prüfen, ob CMEK für Ihre Organisation aktiviert ist.
REST API
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.
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. Wenn
kms_key_name
ausgefüllt ist, ist CMEK für Ihre Organisation aktiviert: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
Führen Sie den folgenden gcloud
-Befehl aus, um die CMEK-Einstellungen der Google Cloud-Organisation abzurufen, für die Sie die Schlüsselaktivierung prüfen möchten. Wenn kmsKeyName
ausgefüllt ist, ist CMEK für Ihre Organisation aktiviert:
gcloud beta logging cmek-settings describe --organization=[ORGANIZATION_ID] kmsKeyName: [KMS_KEY_NAME] serviceAccountId: [SERVICE_ACCOUNT_ID]@gcp-sa-logging.iam.gserviceaccount.com
Cloud KMS-Schlüssel verwalten
Im Folgenden wird erläutert, wie Sie Ihren Cloud KMS-Schlüssel ändern, den Zugriff widerrufen oder ihn löschen 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.
REST API
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.
Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "kms_key_name": "[NEW_KMS_KEY_NAME]" }
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
Führen Sie den folgenden gcloud-Befehl aus:
gcloud beta logging cmek-settings update \ --organization=[ORGANIZATION_ID] --kms-key-name=[NEW_KMS_KEY_NAME]
Diese Aktualisierung schlägt fehl, wenn [KMS_KEY_NAME]
ungültig ist, das zugehörige Dienstkonto nicht die erforderliche Rolle als Verschlüsseler/Entschlüsseler hat oder der Zugriff auf den Schlüssel deaktiviert ist.
Zugriff auf Cloud KMS-Schlüssel widerrufen
Um den Zugriff von Logging auf den Cloud KMS-Schlüssel zu widerrufen entziehen Sie die IAM-Berechtigung 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.
REST API
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.
Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
revoke.json: { "policy": { "bindings": { "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter", "members": }, } }
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
Führen Sie den folgenden gcloud-Befehl aus:
gcloud kms keys remove-iam-policy-binding \ --project=[KMS_PROJECT_ID] \ --member [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
REST API
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.
Erstellen Sie eine JSON-Datei, die folgende Informationen enthält:
{ "kms_key_name": "" }
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
Führen Sie den folgenden gcloud-Befehl aus, um die serviceAccountId
der Organisation, für die Sie CMEK deaktivieren möchten, zu aktualisieren:
gcloud beta logging cmek-settings update --organization=[ORGANIZATION_ID] --clear-kms-key
Diese Aktualisierung schlägt fehl, wenn [KMS_KEY_NAME]
ungültig ist, das zugehörige Dienstkonto nicht die erforderliche Rolle als Verschlüsseler/Entschlüsseler hat oder der Zugriff auf den Schlüssel deaktiviert ist.
Eine Anleitung 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.
CMEK für Exporte
Wenn Sie für den Export von Logs zu einem anderen Ziel Logsenken verwenden, müssen Sie CMEK ordnungsgemäß konfigurieren, um die an diesem Ziel gespeicherten Daten zu schützen.
Cloud Storage unterstützt CMEK für Logexporte, wenn das Ziel CMEK-verschlüsselt ist. Weitere Informationen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel verwenden.
Die anderen beiden Logging-Senkenziele, BigQuery und Pub/Sub, unterstützen CMEK noch nicht, um die aus Cloud Logging exportierten Daten zu schützen.
Beschränkungen
Folgende Einschränkungen des CMEK für Logs Router sind bekannt.
Nur Konfiguration auf Organisationsebene
CMEK für Logs Router kann derzeit nur für Google Cloud-Organisationen konfiguriert werden. Nach der Konfiguration gilt der Verschlüsselungsschlüssel für alle Projekte und Ordner in der Google Cloud-Organisation.
CMEK für Cloud Logging-Speicher wird nicht unterstützt
Für Logs, die in Cloud Logging gespeichert sind, wird CMEK nicht unterstützt. Sie können mit CMEK die von Logs Router genutzten temporären Dateien zur Notfallwiederherstellung sowie die temporären Dateien schützen, die bei Exporten nach Cloud Storage verwendet werden.
Sie können Logeinträge ausschließen, um zu verhindern, dass sie in den Cloud Logging-Speicher geschrieben werden. Eine Anleitung dazu finden Sie unter Ausschlussabfragen verwenden.
Nichtverfügbarkeit der Datei zur Notfallwiederherstellung
Wenn Logging keinen Zugriff mehr auf den Cloud KMS-Schlüssel hat, können Datenverluste auftreten und der Nutzerkomfort erheblich beeinträchtigt werden. Auf die Daten in diesen mit CMEK geschützten, temporären Wiederherstellungsdateien und temporären Dateien für Exporte in Cloud Storage kann dann nicht mehr zugegriffen werden.
Ein Cloud KMS-Schlüssel gilt unter folgenden Voraussetzungen als verfügbar und über Logging zugänglich:
- Wenn der Schlüssel aktiviert ist
- Wenn das Logging-Dienstkonto für den Schlüssel Berechtigungen zum Verschlüsseln und Entschlüsseln hat
Wenn der Cloud KMS-Schlüssel nicht mehr verfügbar ist, kann Logs Router keine temporären Wiederherstellungsdateien schreiben. Für Daten, die während dieser Zeit verarbeitet werden, stehen keine Dateien zur Notfallwiederherstellung zur Verfügung.
Die Exporte in Cloud Storage können ebenfalls beeinträchtigt werden, da Logs Router die für den Export erforderlichen, temporären Dateien nicht schreiben kann. Wenn beim Verschlüsseln oder Entschlüsseln von Daten ein Fehler auftritt, wird eine Benachrichtigung an das Projekt gesendet, das den Cloud KMS-Schlüssel enthält.
Verfügbarkeit der Clientbibliothek
Logging-Clientbibliotheken unterstützen keine Befehle zum Konfigurieren von CMEK.
Preise
Ausführliche Informationen zu Nutzungslimits für Logging finden Sie unter Kontingente und Limits. Einzelheiten zu den möglicherweise anfallenden Kosten finden Sie unter Preise.
Konfigurationsfehler beheben
In den folgenden Abschnitten wird beschrieben, wie häufige CMEK-Konfigurationsfehler identifiziert und behoben werden können.
Konfigurationsfehler identifizieren
So können Sie CMEK-Konfigurationsfehler finden und anzeigen lassen:
Öffnen Sie die Google Cloud Console:
Wählen Sie das Projekt aus, das den Verschlüsselungsschlüssel enthält.
Die Projekt-ID kann über den folgenden
gcloud
-Befehl identifiziert werden:gcloud beta logging cmek-settings describe --organization=[ORGANIZATION_ID] kmsKeyName: projects/[KMS_PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY] serviceAccountId: [SERVICE_ACCOUNT_ID]@gcp-sa-logging.iam.gserviceaccount.com
Der vollständige Name des Cloud KMS-Schlüssels in der Ausgabe des Befehls enthält im Feld
kmsKeyName
die Projekt-ID.Wählen Sie in der Cloud Console den Tab Aktivität aus.
Suchen Sie nach Cloud Logging-Benachrichtigungen zu Stackdriver Logging-CMEK-Konfigurationsfehlern für das ausgewählte Projekt.
In jeder Fehlerbenachrichtigung finden Sie Hinweise zur Behebung des Problems:
Fehler | Empfehlung |
---|---|
Berechtigung für kryptografischen Schlüssel verweigert | Das mit Ihrem Projekt verknüpfte Logging-Dienstkonto hat keine ausreichenden IAM-Berechtigungen für den angegebenen Cloud KMS-Schlüssel. Folgen Sie der Anleitung, die im Fehler oder in dieser Dokumentation beschrieben wird, um die entsprechende IAM-Berechtigung zu erteilen. |
Kryptografischer Schlüssel ist deaktiviert | Das angegebene Cloud KMS wurde deaktiviert. Folgen Sie der Anleitung in der Fehlermeldung, um den Schlüssel wieder zu aktivieren. |
Kryptografischer Schlüssel wurde gelöscht | Das angegebene Cloud KMS wurde gelöscht. Folgen Sie der Anleitung in der Fehlermeldung oder in dieser Dokumentation, um die CMEK-Verschlüsselung mit einem anderen Schlüssel zu konfigurieren. |
Folgen Sie den Hinweisen in der Fehlerbenachrichtigung, um das Problem zu beheben.
Schlüssel auf Nutzbarkeit prüfen
Führen Sie den folgenden gcloud
-Befehl aus, um alle Schlüssel aufzulisten und den Schlüssel auf Nutzbarkeit zu prüfen:
gcloud kms keys list
--location=[KMS_KEY_LOCATION]
--keyring=[KMS_KEY_RING]NAME PURPOSE ALGORITHM PROTECTION_LEVEL LABELS PRIMARY_ID PRIMARY_STATE <var>[KMS_KEY_NAME]</var> ENCRYPT_DECRYPT GOOGLE_SYMMETRIC_ENCRYPTION SOFTWARE 1 ENABLED
Prüfen Sie, ob in der Befehlsausgabe Cloud KMS CryptoKey als aktiviert aufgeführt und dass als Schlüsselzweck symmetrische Verschlüsselung angegeben ist: Die Spalte PURPOSE
muss ENCRYPT_DECRYPT
enthalten und die Spalte PRIMARY_STATE
muss ENABLED
enthalten.
Erstellen Sie bei Bedarf einen neuen Schlüssel nach der Anleitung in den vorstehenden Abschnitten.
Berechtigungskonfiguration prüfen
Dienstkonten, die mit den CMEK-Einstellungen der Organisation verknüpft sind, müssen die IAM-Rolle Cloud KMS CryptoKey Encrypter/Decrypter
für den konfigurierten Schlüssel haben.
Führen Sie folgenden gcloud
-Befehl aus, um die IAM-Richtlinie des Schlüssels aufzulisten:
gcloud kms keys get-iam-policy [KMS_KEY_NAME]
Fügen Sie dem Schlüssel bei Bedarf das Dienstkonto hinzu, das die IAM-Rolle Cloud KMS CryptoKey Encrypter/Decrypter
enthält.