Recevoir des événements à partir de Cloud Audit Logging

Découvrez comment déployer un service dans Cloud Run pour Anthos sur Google Cloud, puis créer et envoyer des événements à ce service à partir de Cloud Audit Logging.

Avant de commencer

Pour effectuer cette tâche, vous devez disposer d'un agent d'événements et savoir dans quel espace de noms il s'exécute. Découvrez comment configurer des événements pour Cloud Run pour Anthos et créer un agent d'événements.

Si vous disposez d'un agent d'événements en cours d'exécution, vous pouvez afficher l'espace de noms Kubernetes en exécutant la commande suivante :

kubectl get brokers -n NAMESPACE

Déployer un service de récepteur d'événements Cloud Run pour Anthos

Déployez un service Cloud Run pour Anthos qui reçoit les événements de l'agent d'événements.

  1. Clonez le dépôt :

    Python

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

    Java

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

    Go

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

    Node.js

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

    C#

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples.git
    cd dotnet-docs-samples/eventarc/audit-storage
    
  2. Créez le conteneur et importez-le dans Cloud Build :

    gcloud builds submit \
       --tag gcr.io/$(gcloud config get-value project)/CLOUD_RUN_CONTAINER_NAME
    

    CLOUD_RUN_CONTAINER_NAME est le nom de fichier de votre conteneur.

  3. Déployez l'image de conteneur dans Cloud Run pour Anthos :

    gcloud run deploy CLOUD_RUN_SERVICE_NAME \
        --namespace=NAMESPACE \
        --image gcr.io/$(gcloud config get-value project)/CLOUD_RUN_CONTAINER_NAME
    

    NAMESPACE est le même espace de noms que celui de votre agent d'événements.

    Lorsque l'URL du service s'affiche, cela signifie que le déploiement a réussi.

Créer un déclencheur pour les journaux d'audit Cloud

  1. Créez un déclencheur dans le même espace de noms que votre agent d'événements :

    gcloud beta events triggers create TRIGGER_NAME \
       --namespace NAMESPACE \
       --target-service=CLOUD_RUN_SERVICE_NAME \
       --type=google.cloud.audit.log.v1.written \
       --parameters serviceName=pubsub.googleapis.com \
       --parameters methodName=google.pubsub.v1.Publisher.CreateTopic
    

    Dans cet exemple, le déclencheur filtre les entrées des journaux Cloud Audit Logging dont les entrées methodName correspondent à google.pubsub.v1.Publisher.CreateTopic. Pour plus d'options de filtrage, consultez la section Format AuditLog.

  2. Attendez 60 secondes, puis vérifiez que le déclencheur fonctionne :

    gcloud beta events triggers list \
       --target-service CLOUD_RUN_SERVICE_NAME \
       --namespace NAMESPACE
    

    NAMESPACE est le même espace de noms que celui de votre agent d'événements.

    Le résultat ressemble à ce qui suit :

    TRIGGER                EVENT TYPE                          TARGET
    trigger-name           google.cloud.audit.log.v1.written   cloud-run-service
    

Générer un événement

  1. Générez un événement en créant un sujet Pub/Sub :

    gcloud pubsub topics create TOPIC_NAME
    
  2. Vérifiez que le service Cloud Run pour Anthos a reçu l'événement :

    kubectl logs \
       --selector serving.knative.dev/service=CLOUD_RUN_SERVICE_NAME \
       -c user-container \
       -n NAMESPACE \
       --tail=200
    

    NAMESPACE est le même espace de noms que celui de votre agent d'événements.

    Le résultat ressemble à ce qui suit :

      [...]
      [2020-09-10 18:51:28 +0000] [1] [INFO] Starting gunicorn 20.0.4
      [2020-09-10 18:51:28 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
      [2020-09-10 18:51:28 +0000] [1] [INFO] Using worker: threads
      [2020-09-10 18:51:28 +0000] [7] [INFO] Booting worker with pid: 7
      GCS CloudEvent type: pubsub.googleapis.com/projects/PROJECT_NAME/topics/to-be-deleted
      GCS CloudEvent type: pubsub.googleapis.com/projects/PROJECT_NAME/topics/to-be-deleted2
      [...]
    

Nettoyer

Supprimez les ressources créées dans ce tutoriel pour éviter des frais récurrents.

  1. Pour supprimer le déclencheur, saisissez :

    gcloud beta events triggers delete TRIGGER_NAME \
        --namespace NAMESPACE
    

    NAMESPACE est le même espace de noms que celui de votre agent d'événements.

  2. Supprimez le sujet Pub/Sub :

    gcloud pubsub topics delete TOPIC_NAME