Sie können gespeicherte Logeinträge aus Cloud Logging-Log-Buckets in Cloud Storage-Buckets kopieren, um Sicherheitsaudits zu unterstützen, benutzerdefinierte Datenanalysen durchzuführen oder historische Logeinträge zu archivieren. Der Kopiervorgang ist nicht destruktiv. Logeinträge bleiben im Quell-Log-Bucket und Sie können sie in andere Google Cloud Projekte kopieren.
Bei Kopiervorgängen werden vorhandene Logeinträge mit der gcloud CLI rückwirkend weitergeleitet. Im Gegensatz dazu leiten Senken übereinstimmende Logeinträge automatisch in Echtzeit weiter, sobald sie eingehen. Sie können jedoch keine Logeinträge weiterleiten, die vor der Erstellung der Senke gespeichert wurden.
Beschränkungen
Beim Kopieren von Logeinträgen gelten die folgenden Einschränkungen:
Sie können Logeinträge nur in Cloud Storage-Buckets kopieren. Andere Ziele sind nicht verfügbar.
Sie können keine Logeinträge aus Log-Buckets kopieren, für die kundenverwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEKs) konfiguriert sind.
Hinweis
Bevor Sie mit dem Kopieren von Logeinträgen beginnen, gehen Sie so vor:
- Prüfen Sie, ob Sie die aktuelle Version der gcloud CLI verwenden. Eine Anleitung zum Installieren oder Aktualisieren der gcloud CLI finden Sie unter Komponenten der Google Cloud CLI verwalten.
-
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, das den Log-Bucket enthält, aus dem Sie kopieren, um die Berechtigungen zu erhalten, die Sie zum Kopieren von Logeinträgen benötigen, die
-
Zum Ausführen eines Kopiervorgangs:
Logging-Administrator (
roles/logging.admin) -
Zum Aufrufen und Verwalten des Status eines Kopiervorgangs:
Autor von Log-Konfigurationen (
roles/logging.configWriter)
-
Zum Ausführen eines Kopiervorgangs:
Logging-Administrator (
-
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Storage-Objekt-Ersteller (
roles/storage.objectCreator) für das Projekt zuzuweisen, das den Cloud Storage-Bucket enthält, um die Berechtigungen zu erhalten, die Sie zum Schreiben von Logeinträgen in Cloud Storage benötigen.
Logeinträge kopieren
Logging kopiert nur Logeinträge, die zu Beginn des Kopiervorgangs im Log-Bucket gespeichert sind. Logeinträge, die nach dem Start des Kopiervorgangs in Log-Buckets gespeichert werden, werden nicht in Cloud Storage kopiert.
Zum Kopieren von Logeinträgen in Cloud Storage benötigen Sie die folgenden Informationen:
- Die ID und den Standort des Log-Buckets, aus dem Sie kopieren.
Verwenden Sie den
gcloud CLI-Befehl
gcloud logging buckets list, um die Log-Bucket-ID und den Standort abzurufen. - Der Name des Cloud Storage-Bucket, in den Sie kopieren. Informationen zum Abrufen des Cloud Storage-Bucket-Namens finden Sie unter Cloud Storage-Bucket-Informationen abrufen.
- Ein Filter für die Logeinträge, die Sie kopieren möchten.
Führen Sie den
gcloud logging copy Befehl aus, um Logeinträge zu kopieren:
gcloud logging copy LOG_BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID
Bevor Sie den vorherigen Befehl ausführen, gehen Sie so vor:
- Ersetzen Sie LOG_BUCKET_ID durch den Namen Ihres Log-Buckets.
- Ersetzen Sie CLOUD_STORAGE_BUCKET_NAME durch den Namen Ihres Cloud Storage-Bucket.
- Ersetzen Sie LOCATION durch den Standort des Log-Buckets.
Optional: Ersetzen Sie FILTER durch den Filter, der definiert, welche Logeinträge kopiert werden.
Wenn Sie das Flag
--log-filterweglassen, werden alle Logeinträge im Log-Bucket in den Cloud Storage-Bucket kopiert.Ersetzen Sie PROJECT_ID durch die Google Cloud Projekt-ID. Sie können dieses Flag weglassen, wenn die aktive gcloud CLI Konfiguration auf das richtige Google Cloud Projekt festgelegt ist.
Beispielbefehl:
gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2024-07-18T10:00:00.0Z"' \
--project=my-project
Dieser Befehl erstellt einen Vorgang mit langer Ausführungszeit , der im Hintergrund ausgeführt wird, und gibt den Namen des Kopiervorgangs und den Standort des Log-Buckets zurück:
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Der Standort des Kopiervorgangs entspricht dem Standort des Log-Buckets, aus dem Sie kopieren.
Kopiervorgänge anzeigen und verwalten
Mit den
gcloud logging operations
Befehlen können Sie Ihre Kopiervorgänge aufrufen und verwalten, um Vorgänge aufzulisten, anzusehen und abzubrechen.
Bei den folgenden Befehlen müssen Sie den Standort des Vorgangs angeben. Verwenden Sie den Standort Ihres Log-Buckets. Informationen zum Ermitteln des Standorts Ihres Log-Buckets finden Sie unter Details zu einem Bucket ansehen.
Kopiervorgänge auflisten
Sie können aktuelle Kopiervorgänge auflisten, einschließlich geplanter, ausgeführter, abgeschlossener, fehlgeschlagener und abgebrochener Vorgänge. Aktuelle Kopiervorgänge werden bis zu 30 Tage nach dem Ende in den Ergebnissen angezeigt.
Führen Sie den folgenden Befehl aus, um Kopiervorgänge aufzulisten:
gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID
Bevor Sie den vorherigen Befehl ausführen, gehen Sie so vor:
- Ersetzen Sie LOCATION durch den Standort des Log-Buckets, aus dem Sie kopieren.
- Ersetzen Sie PROJECT_ID durch die Google Cloud Projekt-ID.
Der Befehl gibt Informationen zum Vorgang mit langer Ausführungszeit zurück, einschließlich der Vorgangs-ID:
projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Status eines Kopiervorgangs abrufen
Sie können den Status und andere Metadaten zu Kopiervorgängen abrufen, darunter:
startTime: Der Zeitstempel, der die Erstellung des Vorgangs angibtendTime: Der Zeitstempel, der den Abschluss des Vorgangs angibtstate: Der Status des Vorgangs (geplant, ausgeführt, abgebrochen, fehlgeschlagen oder erfolgreich)cancellation: Gibt an, ob der Nutzer angefordert hat, den Vorgang abzubrechenprogress: Geschätzter Fortschritt des Vorgangs (0 bis 100%)destination: Der Name des Cloud Storage-Bucket, in den der Vorgang Logeinträge kopiertfilter: Der Filter, der angibt, welche Logeinträge kopiert werden sollenname: Der Name des Log-Buckets, aus dem der Vorgang Logeinträge kopiertlogEntriesCopiedCount: Die Anzahl der Logeinträge, die vom Vorgang erfolgreich in den Cloud Storage-Bucket kopiert wurden
Beachten Sie, dass nicht alle aufgelisteten Metadatenfelder für jeden Kopiervorgang gelten.
Wenn beispielsweise ein Kopiervorgang noch ausgeführt wird, gelten die endTime-Metadaten nicht für den Vorgang. Wenn das
--log-filter=FILTER Flag beim Ausführen des
gcloud logging copy Befehls nicht verwendet wurde, gelten die filter Metadaten auch nicht
für den Vorgang.
Führen Sie den folgenden Befehl aus, um Informationen zu einem Kopiervorgang abzurufen:
gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
Bevor Sie den vorherigen Befehl ausführen, gehen Sie so vor:
- Ersetzen Sie OPERATION_ID durch die ID des Vorgangs.
- Ersetzen Sie LOCATION durch den Standort des Log-Buckets, aus dem Sie kopieren.
- Ersetzen Sie PROJECT_ID durch die Google Cloud Projekt-ID.
Der Befehl gibt Metadaten zum Kopiervorgang zurück. Hier sehen Sie beispielsweise eine Ausgabe für einen Vorgang, der gerade ausgeführt wird:
done: false
metadata:
`@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
progress: 75
destination: storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME
source: projects/PROJECT_ID/locations/LOCATION/buckets/LOG_BUCKET_ID
verb: copy
startTime: `2024-05-23T10:52:40.039751Z`
state: OPERATION_STATE_RUNNING
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Kopiervorgang abbrechen
Sie können einen laufenden Kopiervorgang abbrechen. Wenn Sie einen Kopiervorgang abbrechen, bleiben alle Logeinträge, die vor dem Abbruch des Vorgangs kopiert wurden, im Cloud Storage-Bucket.
Nach dem Abbruch eines Kopiervorgangs schließt Logging alle laufenden Prozesse ab, bevor der Abbruch abgeschlossen wird. Dies kann dazu führen, dass einige Logeinträge nach dem Abbruch des Vorgangs weiterhin in Cloud Storage kopiert werden.
Führen Sie den folgenden Befehl aus, um einen Kopiervorgang abzubrechen:
gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID
Bevor Sie den vorherigen Befehl ausführen, gehen Sie so vor:
- Ersetzen Sie OPERATION_ID durch die ID des Vorgangs.
- Ersetzen Sie LOCATION durch den Standort des Log-Buckets, aus dem Sie kopieren.
- Ersetzen Sie PROJECT_ID durch die Google Cloud Projekt-ID.
Logeinträge in Cloud Storage ansehen
Informationen zum Ansehen und Verstehen der Logeinträge, die Sie in Cloud Storage kopiert haben, finden Sie unter An Cloud Storage weitergeleitete Logeinträge ansehen.
Kontingente und Limits
Alle Kopiervorgänge dauern mindestens eine Stunde, unabhängig von der Menge der kopierten Daten.
Wenn Sie ein großes Volumen kopieren möchten, z. B. Petabyte, teilen Sie das Kopieren auf mehrere Kopiervorgänge auf. Verwenden Sie dazu das Feld timestamp im Flag --log-filter.
Mit dem Befehl `copy` können keine Logeinträge kopiert werden, deren Aufbewahrungsfrist abgelaufen ist.
Fehlerbehebung
In diesem Abschnitt wird beschrieben, wie Sie Fehler beim Kopieren von Logeinträgen beheben.
Exportdaten konnten nicht geschrieben werden
Wenn Sie den Status eines Kopiervorgangs mit gcloud logging operations describe aufrufen, wird möglicherweise der folgende Fehler angezeigt:
done: true
error:
code: 7
message: Failed to write export data to the destination Cloud Storage bucket.
Dieser Fehler tritt auf, wenn Logging keine Logdateien in den Cloud Storage-Ziel-Bucket schreiben oder abschließen kann. Das Schreiben exportierter Dateien während des Vorgangs kann mehrere Gründe haben:
- Ein VPC Service Controls-Dienstperimeter blockiert Anfragen an den Cloud Storage-Ziel-Bucket.
- Die IAM-Berechtigungen des Kontos, das den Kopiervorgang initiiert hat, wurden geändert oder widerrufen, während der Vorgang ausgeführt wurde.
- Der Kopiervorgang wurde so lange ausgeführt, dass die Autorisierungsanmeldedaten abgelaufen sind.
- Der Cloud Storage-Ziel-Bucket verwendet CMEK und der Cloud Key Management Service-Schlüssel ist deaktiviert oder dem Cloud Storage-Dienst-Agenten fehlen die Verschlüsselungsberechtigungen.
- Bei einem Schreibversuch wird versucht, eine vorhandene Datei zu überschreiben, die nicht ersetzt werden kann. Wenn beispielsweise ein Exportbatch nach einer vorübergehenden Verzögerung wiederholt wird oder ein Kopiervorgang neu gestartet wird, kann der Wiederholungsversuch eine bereits erstellte Datei überschreiben. Wenn diese Datei durch einen aktiven Objekt-Hold oder eine gesperrte Aufbewahrungsrichtlinie geschützt ist, lehnt Cloud Storage das Überschreiben ab.
- Der Ziel-Bucket wurde gelöscht, gesperrt oder das Projekt hat sein Ressourcenkontingent überschritten.
So beheben Sie das Problem:
VPC Service Controls prüfen:Wenn Ihre Organisation VPC Service Controls verwendet, prüfen Sie Cloud-Audit-Logs auf Perimeter-Ablehnungen (
cloudaudit.googleapis.com/data_access). Der Perimeter für den Cloud Storage-Ziel-Bucket muss den Zugriff vom Projekt aus zulassen, in dem der Kopiervorgang ausgeführt wird. Alternativ können Sie eine Eingangs- und Ausgangsregel konfigurieren.IAM-Rollen für den Ziel-Bucket prüfen:Das Konto , das den Kopiervorgang initiiert hat, muss die Rolle Storage-Objekt-Ersteller (
roles/storage.objectCreator) für den Ziel-Bucket haben.Kundenverwaltete Verschlüsselungsschlüssel (Customer-Managed Encryption Keys, CMEKs) prüfen : Wenn der Ziel Bucket CMEK für die Standardverschlüsselung verwendet, prüfen Sie, ob der Cloud KMS-Schlüssel aktiviert ist und ob der Cloud Storage Dienst-Agent die Cloud KMS CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter) Rolle für den Schlüssel hat.Große Kopiervorgänge in kürzere Zeitintervalle aufteilen:Um Zeitüberschreitungen oder den Ablauf von Anmeldedaten beim Kopieren großer Mengen von Logeinträgen zu vermeiden, teilen Sie den Vorgang in kleinere Batches auf. Verwenden Sie das Feld
timestampim Flag--log-filter, um die Logeinträge in Batches aufzuteilen.Prüfen, ob Objekt-Holds oder Aufbewahrungskonflikte vorhanden sind: Prüfen Sie, ob der Ziel-Bucket Objekte im Zielpfad enthält, die durch einen aktiven Objekt-Hold oder eine gesperrte Aufbewahrungsrichtlinie geschützt sind.
Preise
Preisinformationen finden Sie auf der Preisseite für Google Cloud Observability. Wenn Sie Logdaten an andere Google Cloud Dienste weiterleiten, finden Sie weitere Informationen in den folgenden Dokumenten: