Cloud-Audit-Log-Ereignis empfangen

In dieser Anleitung erfahren Sie, wie Sie einen nicht authentifizierten Cloud Run-Dienst bereitstellen, der mit Cloud-Audit-Logging Ereignisse aus Cloud Storage empfängt. Verwenden Sie diese Anleitung zum Bereitstellen von Produktionsarbeitslasten. Der Eventarc-Trigger filtert Ereignisse anhand von Cloud-Audit-Logging-Einträgen. Weitere Informationen finden Sie unter Ereignisfilter für Cloud-Audit-Logs ermitteln.

Sie können diese Anleitung entweder mit der Google Cloud -Konsole oder mit der Google Cloud CLI ausführen.

Artifact Registry-Standard-Repository erstellen

Erstellen Sie ein Artifact Registry-Standard-Repository zum Speichern des Docker-Container-Images:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Repositories auf.

    Zu Repositories

  2. Klicken Sie auf Repository erstellen.
  3. Repository konfigurieren
    1. Geben Sie einen eindeutigen Namen ein.
    2. Wählen Sie als Format die Option Docker aus.
    3. Wählen Sie für Mode (Modus) die Option Standard aus.
    4. Wählen Sie als Standorttyp die Option Region aus.
    5. Wählen Sie in der Liste Region die Option us-central1 (Iowa) aus.
  4. Übernehmen Sie alle anderen Standardeinstellungen und klicken Sie auf Erstellen.

gcloud

gcloud artifacts repositories create REPOSITORY \
    --repository-format=docker \
    --location=$REGION

Ersetzen Sie REPOSITORY durch einen eindeutigen Namen für das Artifact Registry-Repository.

Cloud Storage-Bucket erstellen

In dieser Anleitung wird Cloud Storage als Ereignisquelle verwendet. So erstellen Sie einen Storage-Bucket:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Buckets auf.

    Buckets aufrufen

  2. Klicken Sie auf Bucket erstellen.
  3. Geben Sie die Bucket-Informationen ein und klicken Sie zum Ausführen der einzelnen Schritte jeweils auf Weiter:
    1. Geben Sie einen eindeutigen Namen ein. Beispiel: eventarcbucket.
    2. Wählen Sie Region als Standorttyp aus.
    3. Wählen Sie us-central1 (Iowa) als Standort aus.
    4. Wählen Sie Standard als Standardspeicherklasse aus.
    5. Wählen Sie unter Zugriffssteuerung die Option Einheitlich aus.
  4. Klicken Sie auf Erstellen.

gcloud

gcloud storage buckets create gs://events-tutorial-PROJECT_ID/ --location=$REGION

Nachdem die Ereignisquelle erstellt wurde, können Sie den Ereignisempfängerdienst in Cloud Run bereitstellen.

Dienst zum Empfangen von Ereignissen in Cloud Run bereitstellen

Stellen Sie einen Cloud Run-Dienst bereit, der Ereignisse empfängt und loggt. So stellen Sie den Beispiel-Ereignisempfängerdienst bereit:

Console

  1. Klonen Sie das Beispiel-Repository in Ihr GitHub-Konto:
  2. Go

    1. Rufen Sie in GitHub GoogleCloudPlatform/golang-samples auf.
    2. Klicken Sie auf Fork.
    3. Screenshot der Schaltfläche „Fork“
    4. Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.

    Java

    1. Rufen Sie in GitHub GoogleCloudPlatform/java-docs-samples auf.
    2. Klicken Sie auf Fork.
    3. Screenshot der Schaltfläche „Fork“
    4. Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.

    .NET

    1. Rufen Sie in GitHub GoogleCloudPlatform/dotnet-docs-samples auf.
    2. Klicken Sie auf Fork.
    3. Screenshot der Schaltfläche „Fork“
    4. Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.

    Node.js

    1. Rufen Sie in GitHub GoogleCloudPlatform/nodejs-docs-samples auf.
    2. Klicken Sie auf Fork.
    3. Screenshot der Schaltfläche „Fork“
    4. Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.

    Python

    1. Rufen Sie in GitHub GoogleCloudPlatform/python-docs-samples auf.
    2. Klicken Sie auf Fork.
    3. Screenshot der Schaltfläche „Fork“
    4. Wählen Sie bei entsprechender Aufforderung den Standort für die Verzweigung des Repositorys aus.
  3. Rufen Sie in der Google Cloud Console die Seite Dienste auf.
  4. Zu Dienste

  5. Klicken Sie auf Dienst erstellen, um das Formular Dienst erstellen aufzurufen.
  6. Wählen Sie Kontinuierlich aus einem Repository bereitstellen.

    Änderungen an Ihrem GitHub-Repository werden automatisch in Container-Images in Artifact Registry eingebunden und in Cloud Run bereitgestellt.

  7. Klicken Sie auf Mit Cloud Build einrichten, um das Formular Mit Cloud Build einrichten zu öffnen.
    1. Aktivieren Sie bei entsprechender Aufforderung die Cloud Build API und die Artefaktanalyse-API.
    2. Wählen Sie GitHub als Repository-Anbieter aus.
    3. Wenn Sie dazu aufgefordert werden, klicken Sie auf Google Cloud Build installieren.
    4. Wählen Sie das von Ihnen verzweigte GitHub-Repository als Repository aus.
    5. Klicken Sie auf Weiter.
    6. Geben Sie im Feld Branch den Wert ^main$ ein.
    7. Wählen Sie als Build-Typ die Option Dockerfile aus und geben Sie den Speicherort des Dockerfiles an.
      • eventarc/audit-storage/Dockerfile

        oder

      • eventarc/audit_storage/Dockerfile(Go)
    8. Klicken Sie auf Speichern.
  8. Geben Sie im Formular Dienst erstellen einen Dienstnamen ein. Beispiel: helloworld-events.
  9. Wählen Sie us-central1(Iowa) als Region für den Dienst aus.
  10. Wählen Sie eine der Ingress-Optionen basierend auf dem eingehenden Traffic aus, den Sie im Cloud Run-Dienst zulassen möchten.
  11. Wählen Sie Authentifizierung erforderlich aus.
  12. Klicken Sie auf Erstellen.

gcloud

  1. Klonen Sie das GitHub-Repository:

    Go

    git clone https://github.com/GoogleCloudPlatform/golang-samples.git
    cd golang-samples/eventarc/audit_storage
    

    Java

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
    cd java-docs-samples/eventarc/audit-storage

    .NET

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
    cd dotnet-docs-samples/eventarc/audit-storage

    Node.js

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
    cd nodejs-docs-samples/eventarc/audit-storage

    Python

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    cd python-docs-samples/eventarc/audit-storage
  2. Erstellen Sie den Container und laden Sie ihn in Cloud Build hoch:
    gcloud builds submit --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
    
  3. Stellen Sie das Container-Image in Cloud Run bereit:
    gcloud run deploy $SERVICE_NAME \
        --image $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
    

    Geben Sie n ein, wenn Sie nicht authentifizierte Aufrufe zulassen möchten.

    Wenn die Bereitstellung erfolgreich war, wird in der Befehlszeile die Dienst-URL angezeigt.

Sie haben den Ereignisempfänger mithilfe von helloworld-events in Cloud Run bereitgestellt. Nun können Sie einen Trigger einrichten.

Eventarc-Trigger erstellen

Der Eventarc-Trigger sendet Ereignisse aus dem Cloud Storage-Bucket an den Cloud Run-Dienst helloworld-events.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Trigger auf.

    Zur Seite "Trigger"

  2. Klicken Sie auf Trigger erstellen.
  3. Geben Sie einen Triggernamen ein.

    Dies ist die ID des Triggers. Sie muss mit einem Buchstaben beginnen. Sie kann bis zu 63 Kleinbuchstaben, Ziffern oder Bindestriche enthalten.

  4. Wählen Sie einen Triggertyp aus:
    • Eigene: Filtert Ereignisse, die von Google Cloud-Anbietern (direkt oder über Cloud-Audit-Logs) oder Anbietern mit Pub/Sub-Nachrichten gesendet werden.
    • Drittanbieter: Filtert Ereignisse, die von Drittanbietern gesendet werden.
  5. Wählen Sie in der Liste Ereignisanbieter die Option Cloud Storage als Quelle für Ereignisse aus.
  6. Wählen Sie in der Liste Ereignistyp die Option storage.objects.create aus.
  7. Wählen Sie in der Liste Region die Option us-central1 als Region aus, von der Ereignisse empfangen werden sollen.
  8. Wählen Sie das von Ihnen erstellte Dienstkonto aus. Beispiel: SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com.
  9. Wählen Sie in der Liste Ereignisziel die Option Cloud Run aus.
  10. Wählen Sie in der Liste Cloud Run-Dienst auswählen die Option helloworld-events aus.
  11. Klicken Sie auf Erstellen.
  12. Sie können einen Eventarc-Trigger auch über die Seite der Cloud Run-Konsole erstellen.

gcloud

  1. Erstellen Sie einen Trigger, der Cloud Storage-Ereignisse filtert, die das von Ihnen erstellte Dienstkonto verwenden:
    gcloud eventarc triggers create events-tutorial-trigger \
        --destination-run-service=$SERVICE_NAME \
        --destination-run-region=$REGION \
        --event-filters="type=google.cloud.audit.log.v1.written" \
        --event-filters="serviceName=storage.googleapis.com" \
        --event-filters="methodName=storage.objects.create" \
        --service-account=sample-service-account@PROJECT_ID.iam.gserviceaccount.com
    Ersetzen Sie PROJECT_ID durch die Google CloudProjekt-ID.

    Wobei:

    • type: Gibt an, dass Audit-Logs erstellt werden, wenn die Filterkriterien des Triggers erfüllt sind.
    • serviceName: Der Dienst, der das Audit-Log schreibt, in diesem Fall Cloud Storage.
    • methodName: der zu prüfende Vorgang (storage.objects.create).
    Dadurch wird ein Trigger mit dem Namen events-tutorial-trigger erstellt.
  2. Führen Sie diesen Befehl aus, um zu prüfen, ob events-tutorial-trigger erfolgreich erstellt wurde:
    gcloud eventarc triggers list --location=$REGION
  3. Der Trigger events-tutorial-trigger wird mit dem Ziel helloworld-events aufgeführt.

Ereignis erstellen und abrufen

  1. So erstellen Sie ein Ereignis:

    Console

    1. Erstellen Sie eine Textdatei mit dem Dateinamen random.txt und dem Text „Hello World“.
    2. Rufen Sie in der Google Cloud Console die Seite Buckets auf.

      Buckets aufrufen

    3. Wählen Sie den von Ihnen erstellten Storage-Bucket aus.
    4. Klicken Sie auf dem Tab Objekte auf Dateien hochladen und laden Sie die Datei random.txt hoch.

    gcloud

    Laden Sie eine Datei in Cloud Storage hoch:

    echo "Hello World" > random.txt
    gcloud storage cp random.txt gs://events-tutorial-PROJECT_ID/random.txt
  2. So rufen Sie den Logeintrag auf:
  3. Console

    1. Rufen Sie in der Google Cloud Console die Seite Dienste auf.

      Zu Dienste

    2. Klicken Sie in der Liste der Dienste auf den Namen des erstellten Dienstes, um die zugehörige Seite Dienstdetails aufzurufen.
    3. Klicken Sie auf den Tab Logs, um die Anfrage- und Containerlogs für alle Überarbeitungen des Dienstes abzurufen. Sie können nach Logschweregrad filtern.
    4. Suchen Sie nach einem Logeintrag wie dem folgenden:
      Detected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
      Dabei ist BUCKET_NAME der Name des Cloud Storage-Buckets.

    gcloud

    1. gcloud logging read "resource.labels.service_name=helloworld-events AND textPayload:random.txt" --format=json
    2. Suchen Sie nach einem Logeintrag wie dem folgenden:
      Detected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
      Dabei ist BUCKET_NAME der Name des Cloud Storage-Buckets.

Sie haben einen Ereignisempfängerdienst in Cloud Run erfolgreich bereitgestellt, einen Eventarc-Trigger erstellt sowie ein Ereignis aus Cloud Storage generiert und in den Cloud Run-Logs angesehen.