Agréger et stocker les journaux de votre organisation

Ce document explique comment gérer les journaux générés par les ressources contenues dans votre organisation Google Cloud à l'aide d'un récepteur agrégé non intercepté.

Vous pouvez configurer un récepteur agrégé de sorte qu'il intercepte ou non l'interception, selon que vous souhaitez contrôler les journaux pouvant être interrogés ou acheminés via les récepteurs des ressources enfants. Dans ce tutoriel, vous allez créer un récepteur agrégé qui achemine les journaux d'audit de votre organisation vers un bucket de journaux. Vous pouvez configurer le filtre du récepteur pour acheminer d'autres types d'entrées de journal. Pour en savoir plus sur les récepteurs agrégés, consultez Collecter et acheminer les journaux au niveau de l'organisation et des dossiers vers les destinations compatibles.

Dans ce tutoriel, vous allez effectuer les étapes suivantes:

  1. Créer le bucket Cloud Logging pour le stockage des journaux agrégés.

  2. Créer au niveau de l'organisation un récepteur agrégé non interceptant pour acheminer les journaux vers le nouveau bucket de journaux.

  3. Configurez l'accès en lecture au nouveau bucket de journaux.

  4. interroger et afficher vos journaux à partir de la page de l'explorateur de journaux ;

Avant de commencer

Vérifiez les éléments suivants :

  • Vous disposez de l'un des rôles IAM suivants pour l'organisation ou le dossier Google Cloud à partir duquel vous redirigez les journaux.

    • Propriétaire (roles/owner)
    • Administrateur Logging (roles/logging.admin)
    • Rédacteur de configuration des journaux (roles/logging.configWriter)

    Les autorisations contenues dans ces rôles vous permettent de créer, supprimer ou modifier des récepteurs. Pour en savoir plus sur la définition des rôles IAM, consultez le guide du contrôle des accès de Logging.

  • Si vous utilisez VPC Service Controls, vous devez ajouter une règle d'entrée au périmètre de service. Pour en savoir plus sur les limites de VPC Service Controls, consultez la page Récepteurs agrégés et limites de VPC Service Controls.

Créer un bucket de journaux

Les buckets de journaux stockent les journaux acheminés à partir d'autres projets, dossiers ou organisations Google Cloud. Pour en savoir plus, consultez la section Configurer des buckets de journaux.

Pour créer le bucket de journaux dans le projet Google Cloud dans lequel vous souhaitez agréger les journaux, procédez comme suit:

  1. Accédez à la console Google Cloud ou cliquez sur le bouton suivant:

    Accéder à Google Cloud Console

  2. Dans un terminal Cloud Shell, exécutez la commande suivante pour créer un bucket de journaux, en remplaçant les variables par les valeurs appropriées:

     gcloud logging buckets create all-audit-logs-bucket \
       --location=global \
       --project=logs-test-project
    
  3. Vérifiez que le bucket de journaux a été créé:

    gcloud logging buckets list --project=logs-test-project
    
  4. (Facultatif) Définissez la durée de conservation des journaux dans le bucket. Cet exemple étend la conservation des journaux stockés dans le bucket à 365 jours :

    gcloud logging buckets update all-audit-logs-bucket --location=global --project=logs-test-project --retention-days=365
    

Créer le récepteur

Vous pouvez acheminer les journaux vers un bucket de journaux en créant un récepteur. Un récepteur inclut un filtre d'inclusion, un filtre d'exclusion facultatif et une destination. Dans ce tutoriel, la destination est un bucket de journaux, all-audit-logs-bucket. Pour en savoir plus sur les récepteurs, consultez la section Acheminer les journaux vers les destinations compatibles.

Configurer le récepteur au niveau de l'organisation

Pour créer un récepteur, procédez comme suit :

  1. Exécutez la commande suivante en remplaçant les variables par les valeurs appropriées :

    gcloud logging sinks create all-audit-logs-sink \
    logging.googleapis.com/projects/logs-test-project/locations/global/buckets/all-audit-logs-bucket \
      --log-filter='logName:cloudaudit.googleapis.com' \
      --description="All audit logs from my org log sink" \
      --organization=12345 \
      --include-children
    

    L'option --include-children est importante pour que les journaux de tous les projets Google Cloud de votre organisation soient également inclus. Pour en savoir plus, consultez la section Générer et acheminer des journaux au niveau de l'organisation vers des destinations compatibles.

  2. Vérifiez que le récepteur a été créé :

    gcloud logging sinks list --organization=12345
    
  3. Obtenez le nom du compte de service :

    gcloud logging sinks describe all-audit-logs-sink --organization=12345
    

    Le résultat ressemble à ceci :

    writerIdentity: serviceAccount:o1234567890-12345@gcp-sa-logging.iam.gserviceaccount.com
    
  4. Copiez la chaîne entière pour writerIdentity commençant par serviceAccount:.

Accorder l'accès au récepteur

Après avoir créé le récepteur, vous devez l'autoriser à écrire dans votre bucket de journaux. Pour ce faire, vous pouvez utiliser la console Google Cloud ou modifier manuellement la stratégie IAM (Identity and Access Management), comme décrit dans la section Définir les autorisations de destination.

Dans ce tutoriel, nous allons définir les autorisations via la console Google Cloud en suivant les étapes ci-dessous.

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez IAM :

    Accéder à IAM

  2. Assurez-vous d'avoir sélectionné le projet Google Cloud de destination contenant le bucket au niveau de l'organisation que vous utilisez pour agréger les journaux.

  3. Cliquez sur Accorder l'accès.

  4. Dans le champ Nouveaux comptes principaux, ajoutez le compte de service sans le préfixe serviceAccount:.

  5. Dans le menu Sélectionnez un rôle, choisissez Rédacteur de bucket de journaux.

  6. Cliquez sur Enregistrer.

Générer des journaux pour faciliter la validation du récepteur

Si votre récepteur utilise des journaux d'audit, vous pouvez vérifier qu'il achemine correctement les journaux en démarrant une VM dans un autre projet Google Cloud, puis en l'arrêtant pour voir si cet événement apparaît dans les journaux.

Si votre organisation compte déjà de nombreux projets Google Cloud, le trafic des journaux d'audit peut suffire pour que cette étape ne soit pas nécessaire.

Configurer l'accès en lecture au nouveau bucket de journaux

Maintenant que votre récepteur achemine les journaux de l'ensemble de votre organisation vers votre bucket de journaux, vous êtes prêt à effectuer des recherches dans l'ensemble de ces journaux. Vous pouvez utiliser les vues de journaux pour restreindre l'accès aux journaux dans vos buckets de journaux. Pour ce faire, créez une vue et attribuez le rôle IAM roles/logging.viewAccessor aux comptes principaux.

Dans ce tutoriel, nous allons définir les autorisations via la console Google Cloud en procédant comme suit.

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez IAM :

    Accéder à IAM

    Assurez-vous d'avoir sélectionné le projet Google Cloud que vous utilisez pour agréger les journaux.

  2. Cliquez sur Ajouter.

  3. Dans le champ Nouveau compte principal, ajoutez votre compte de messagerie.

  4. Dans le menu Sélectionnez un rôle, sélectionnez Accesseur de vues de journaux.

    Ce rôle fournit à un compte principal un accès en lecture aux vues de journaux des buckets de journaux du projet Google Cloud. Pour limiter l'accès d'un utilisateur, créez une vue de journal ou sélectionnez-en une existante, puis ajoutez une condition permettant à l'utilisateur de lire uniquement votre nouveau bucket de journaux:

    1. Cliquez sur Ajouter une condition :

    2. Saisissez un titre et une description pour la condition.

    3. Dans le menu Type de condition, sélectionnez Ressource, puis Nom.

    4. Dans le menu Opérateur, sélectionnez Se termine par.

    5. Dans le champ Valeur, saisissez le nom de la vue du journal. Pour en savoir plus sur les vues de journaux, consultez la page Configurer des vues de journaux dans un bucket de journaux.

      Le nom d'une vue de journal a le format suivant:

      locations/global/buckets/all-audit-logs-bucket/views/view_id
      
    6. Cliquez sur Enregistrer pour ajouter la condition.

  5. Cliquez sur Enregistrer pour définir les autorisations.

Rechercher des journaux sur la page de l'explorateur de journaux

Après avoir défini les autorisations dans la section précédente, accédez à la console Google Cloud et procédez comme suit:

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Logging, puis Explorateur de journaux :

    Accéder à l'explorateur de journaux

  2. Sélectionnez Affiner le niveau d'accès.

  3. Dans le panneau Affiner le niveau d'accès, sélectionnez Recherche par espace de stockage.

  4. Sélectionnez all-audit-logs-bucket.

  5. Cliquez sur Appliquer.

    L'explorateur de journaux s'actualise pour afficher les journaux de votre bucket de journaux.

    Pour en savoir plus sur l'utilisation de l'explorateur de journaux, consultez la page Utiliser l'explorateur de journaux.