Recevoir un événement Cloud Audit Logs

Ce tutoriel explique comment déployer un service Cloud Run authentifié qui reçoit des événements de Cloud Storage à l'aide de Cloud Audit Logs. Utilisez ce tutoriel pour déployer des charges de travail de production. Le déclencheur Eventarc filtre les événements en fonction des entrées Cloud Audit Logs. Pour plus d'informations, consultez la section Déterminer des filtres d'événements pour Cloud Audit Logs.

Vous pouvez suivre ce tutoriel à l'aide de la console Google Cloud ou de la Google Cloud CLI.

Créer un dépôt standard Artifact Registry

Créez un dépôt standard Artifact Registry pour stocker votre image de conteneur :

Console

  1. Dans la console Google Cloud , accédez à la page Dépôts.

    Accédez aux dépôts.

  2. Cliquez sur Créer un dépôt.
  3. Configurez votre dépôt :
    1. Saisissez un nom unique.
    2. Dans le champ Format, choisissez Docker.
    3. Dans le champ Mode, choisissez Standard.
    4. Dans le champ Type d'emplacement, sélectionnez Région.
    5. Dans la liste Région, sélectionnez us-central1 (Iowa).
  4. Acceptez les autres paramètres par défaut et cliquez sur Créer.

gcloud

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

Remplacez REPOSITORY par un nom unique pour le dépôt Artifact Registry.

Créer un bucket Cloud Storage

Ce guide de démarrage rapide utilise Cloud Storage comme source d'événements. Pour créer un bucket de stockage, procédez comme suit :

Console

  1. Dans la console Google Cloud , accédez à la page Buckets.

    Accéder à la page "Buckets"

  2. Cliquez sur Créer un bucket.
  3. Saisissez les informations relatives à votre bucket et cliquez sur Continuer à chaque étape :
    1. Saisissez un nom unique. Exemple :eventarcbucket
    2. Sélectionnez Région comme Type d'emplacement.
    3. Sélectionnez us-central1 (Iowa) comme Emplacement.
    4. Sélectionnez Standard comme classe de stockage par défaut.
    5. Sélectionnez Uniforme comme type de Contrôle des accès.
  4. Cliquez sur Créer.

gcloud

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

Une fois la source d'événements créée, vous pouvez déployer le service récepteur d'événements sur Cloud Run.

Déployer le service récepteur d'événements sur Cloud Run

Déployez un service Cloud Run qui reçoit et consigne les événements. Pour déployer l'exemple de service récepteur d'événements, procédez comme suit :

Console

  1. Clonez l'exemple de dépôt dans votre compte GitHub :
  2. Go

    1. Sur GitHub, accédez à GoogleCloudPlatform/golang-samples.
    2. Cliquez sur Fork (Dupliquer).
    3. Capture d'écran du bouton de duplication.
    4. Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.

    Java

    1. Sur GitHub, accédez à GoogleCloudPlatform/java-docs-samples.
    2. Cliquez sur Fork (Dupliquer).
    3. Capture d'écran du bouton de duplication.
    4. Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.

    .NET

    1. Sur GitHub, accédez à GoogleCloudPlatform/dotnet-docs-samples.
    2. Cliquez sur Fork (Dupliquer).
    3. Capture d'écran du bouton de duplication.
    4. Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.

    Node.js

    1. Sur GitHub, accédez à GoogleCloudPlatform/nodejs-docs-samples.
    2. Cliquez sur Fork (Dupliquer).
    3. Capture d'écran du bouton de duplication.
    4. Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.

    Python

    1. Sur GitHub, accédez à GoogleCloudPlatform/python-docs-samples.
    2. Cliquez sur Fork (Dupliquer).
    3. Capture d'écran du bouton de duplication.
    4. Si vous y êtes invité, sélectionnez l'emplacement où vous souhaitez dupliquer le dépôt.
  3. Dans la console Google Cloud , accédez à la page Services.
  4. Accéder aux services

  5. Cliquez sur Create service (Créer un service) pour afficher le formulaire Create service.
  6. Sélectionnez Déployer en continu depuis un dépôt.

    Les modifications apportées à votre dépôt GitHub sont automatiquement intégrées aux images de conteneurs dans Artifact Registry et déployées vers Cloud Run.

  7. Cliquez sur Configurer avec Cloud Build pour ouvrir le formulaire Configurer avec Cloud Build.
    1. Si vous y êtes invité, activez l'API Cloud Build et l'API Artifact Analysis.
    2. Sélectionnez GitHub comme fournisseur de dépôt.
    3. Si vous y êtes invité, cliquez sur Installer Google Cloud Build.
    4. Sélectionnez le dépôt GitHub que vous avez dupliqué en guise de Dépôt.
    5. Cliquez sur Suivant.
    6. Dans le champ Branche, saisissez ^main$.
    7. Sélectionnez Dockerfile dans le champ Type de compilation, puis indiquez l'emplacement source du Dockerfile :
      • eventarc/audit-storage/Dockerfile

        ou

      • eventarc/audit_storage/Dockerfile(Go)
    8. Cliquez sur Enregistrer.
  8. Dans le formulaire Créer un service, saisissez un nom de service. Par exemple, helloworld-events.
  9. Sélectionnez us-central1(Iowa) comme région dans laquelle vous souhaitez placer votre service.
  10. Sélectionnez l'une des options Entrée en fonction du trafic entrant que vous souhaitez autoriser dans le service Cloud Run.
  11. Sélectionnez Exiger l'authentification.
  12. Cliquez sur Créer.

gcloud

  1. Clonez le dépôt GitHub :

    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. Créez le conteneur et importez-le dans Cloud Build :
    gcloud builds submit --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
    
  3. Déployez l'image de conteneur dans Cloud Run :
    gcloud run deploy $SERVICE_NAME \
        --image $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/$SERVICE_NAME:v1
    

    Lorsque vous êtes invité à autoriser les appels non authentifiés, saisissez n.

    Une fois le déploiement effectué, la ligne de commande affiche l'URL du service.

Maintenant que vous avez déployé votre service récepteur d'événements appelé helloworld-events sur Cloud Run, vous pouvez configurer votre déclencheur.

Créer un déclencheur Eventarc

Le déclencheur Eventarc envoie des événements à partir du bucket Cloud Storage vers le service Cloud Run helloworld-events.

Console

  1. Dans la console Google Cloud , accédez à la page Déclencheurs.

    Accéder à la page "Déclencheurs"

  2. Cliquez sur Créer un déclencheur.
  3. Saisissez un nom de déclencheur.

    Il s'agit de l'ID du déclencheur, qui doit commencer par une lettre. Il peut contenir jusqu'à 63 lettres minuscules, chiffres ou traits d'union.

  4. Sélectionnez un type de déclencheur :
    • Propriétaire : filtre les événements envoyés depuis des fournisseurs Google Cloud(directement ou via des entrées Cloud Audit Logs) ou des fournisseurs utilisant des messages Pub/Sub.
    • Tiers : filtre les événements envoyés depuis des fournisseurs tiers.
  5. Dans la liste Fournisseur d'événements, sélectionnez Cloud Storage comme source des événements.
  6. Dans la liste Type d'événement, sélectionnez storage.objects.create.
  7. Dans la liste Région, sélectionnez us-central1 comme région à partir de laquelle recevoir les événements.
  8. Sélectionnez le compte de service que vous avez créé. Par exemple, SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
  9. Dans la liste Destination de l'événement, sélectionnez Cloud Run.
  10. Dans la liste Sélectionner un service Cloud Run, sélectionnez helloworld-events.
  11. Cliquez sur Créer.
  12. Notez que vous pouvez également créer un déclencheur Eventarc à l'aide de la page de la console Cloud Run.

gcloud

  1. Créez un déclencheur filtrant les événements Cloud Storage et utilisant le compte de service que vous avez créé :
    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
    Remplacez PROJECT_ID par l'ID du projet Google Cloud.

    Où :

    • type : indique que les journaux d'audit sont créés lorsque les critères de filtre du déclencheur sont remplis.
    • serviceName : service qui écrit le journal d'audit, à savoir Cloud Storage.
    • methodName : opération en cours d'audit, à savoir storage.objects.create.
    Cette action crée un déclencheur appelé events-tutorial-trigger.
  2. Pour vérifier que events-tutorial-trigger a bien été créé, exécutez la commande suivante :
    gcloud eventarc triggers list --location=$REGION
  3. Le déclencheur, events-tutorial-trigger, est répertorié avec une cible helloworld-events.

Générer et afficher un événement

  1. Pour générer un événement, procédez comme suit :

    Console

    1. Créez un fichier texte portant le nom random.txt et contenant le texte "Hello World".
    2. Dans la console Google Cloud , accédez à la page Buckets.

      Accéder à la page "Buckets"

    3. Sélectionnez le bucket de stockage que vous avez créé.
    4. Dans l'onglet Objets, cliquez sur Importer des fichiers, puis importez le fichier random.txt.

    gcloud

    Importez un fichier texte dans Cloud Storage :

    echo "Hello World" > random.txt
    gcloud storage cp random.txt gs://events-tutorial-PROJECT_ID/random.txt
  2. Pour afficher l'entrée de journal, procédez comme suit :
  3. Console

    1. Dans la console Google Cloud , accédez à la page Services.

      Accéder aux services

    2. Dans la liste des services, cliquez sur le nom du service que vous avez créé pour accéder à la page Informations sur le service.
    3. Cliquez sur l'onglet Journaux pour obtenir les journaux de requête et de conteneur pour toutes les révisions de ce service. Vous pouvez filtrer les journaux par niveau de gravité.
    4. Recherchez une entrée de journal semblable à ceci :
      Detected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
      BUCKET_NAME est le nom du bucket Cloud Storage.

    gcloud

    1. gcloud logging read "resource.labels.service_name=helloworld-events AND textPayload:random.txt" --format=json
    2. Recherchez une entrée de journal semblable à ceci :
      Detected change in Cloud Storage bucket: storage.googleapis.com/projects/_/buckets/BUCKET_NAME/objects/random.txt
      BUCKET_NAME est le nom du bucket Cloud Storage.

Vous venez de déployer un service récepteur d'événements sur Cloud Run, de créer un déclencheur Eventarc, de générer un événement à partir de Cloud Storage et de l'afficher dans les journaux Cloud Run.