Rassembler et acheminer les journaux au niveau de l'organisation et du dossier vers les destinations compatibles

Ce document explique comment créer des récepteurs agrégés. Les récepteurs agrégés vous permettent combiner et acheminer les journaux générés par Ressources Google Cloud de votre organisation ou d'un dossier vers un emplacement centralisé.

Présentation

Les récepteurs agrégés combinent et acheminent les entrées de journal à partir des ressources contenues dans une organisation ou un dossier vers une destination.

Si vous voulez contrôler les entrées de journal pouvant être interrogées dans ces ressources, ou acheminées via les récepteurs de ces ressources, vous pouvez configurer un récepteur agrégé comme n'interceptons pas ni n'interceptent:

  • Un récepteur agrégé non interceptant achemine les entrées de journal via des récepteurs dans l'élément enfant ressources. Ce récepteur vous permet de conserver la visibilité des entrées de journal dans le ressources dans lesquelles ils ont été générés. Les récepteurs non intercepteurs ne sont pas visibles aux ressources enfants.

    Par exemple, vous pouvez créer un récepteur agrégé non interceptant qui achemine Toutes les entrées de journal générées à partir des dossiers d'une organisation dans un bucket de journaux central. Les entrées de journal sont stockées bucket de journaux, ainsi que dans les ressources dans lesquelles les entrées de journal ont été générées.

  • Un récepteur agrégé d'interception empêche le routage des entrées de journal à récepteurs dans les ressources enfants, à l'exception des récepteurs _Required. Ce récepteur permet être utile pour empêcher le stockage de copies en double des entrées de journal plusieurs endroits.

    Prenons l'exemple des journaux d'audit des accès aux données, qui peuvent être volumineux en volume et coûteux pour en stocker plusieurs copies. Si vous avez activé les journaux d'audit des accès aux données, vous pouvez créer une règle d'interception qui achemine tous les journaux d'audit des accès aux données vers un projet central à des fins d'analyse. Ce récepteur d'interception empêche également les récepteurs des ressources enfants de router des copies des journaux à un autre endroit.

    Les récepteurs d'interception empêchent les journaux d'être transmis via le routeur de journaux des ressources enfants, sauf si les journaux correspondent également au récepteur _Required. En effet, les journaux sont interceptés, ils ne sont pas comptabilisés dans les métriques basées sur les journaux d'alerte basées sur les journaux dans les ressources enfants. Vous pouvez voir l'interception sur la page Routeur de journaux des ressources enfants.

Pour en savoir plus sur la gestion des récepteurs, consultez Acheminez les journaux vers des destinations compatibles: gérez les récepteurs.

Vous pouvez créer jusqu'à 200 récepteurs par dossier ou organisation.

Destinations compatibles

Vous pouvez utiliser des récepteurs agrégés non interceptants pour acheminer les entrées de journal dans ou entre les mêmes organisations et dossiers vers les destinations suivantes:

  • Bucket Cloud Logging: stockage dans Cloud Logging. Un bucket de journaux peut stocker des entrées de journal reçus par plusieurs projets Google Cloud. Le bucket de journaux peut se trouver dans le projet d'où proviennent les entrées de journal. dans un autre projet. Vous pouvez combiner Cloud Logging avec d'autres données en mettant à niveau un bucket de journaux pour qu'il utilise l'Analyse de journaux, puis en créant un ensemble de données BigQuery associé. Pour en savoir plus sur l'affichage des entrées de journal stockées dans des buckets de journaux, consultez Présentation des requêtes et de l'affichage des journaux et afficher les journaux acheminés vers des buckets Cloud Logging.
  • Ensemble de données BigQuery: permet de stocker les entrées de journal dans Ensembles de données BigQuery. L'ensemble de données BigQuery peut se trouver dans le projet dans lequel les entrées de journal proviennent ou se trouvent dans un autre projet. Vous pouvez utiliser des fonctionnalités d'analyse de big data sur les entrées de journal stockées. Pour combiner vos données Cloud Logging avec d'autres sources de données, nous vous recommandons de mettre à niveau vos buckets de journaux dans l'Analyse de journaux, puis créer un ensemble de données BigQuery associé. Pour en savoir plus sur l'affichage des entrées de journaux acheminées vers BigQuery, consultez Affichez les journaux acheminés vers BigQuery.
  • Bucket Cloud Storage: ce bucket permet de stocker les entrées de journal dans Cloud Storage. Le bucket Cloud Storage peut se trouver dans le projet dans lequel les entrées de journal proviennent ou se trouvent dans un autre projet. Les entrées de journaux sont stockées sous forme de fichiers JSON. Pour savoir comment afficher les entrées de journal acheminées vers Cloud Storage, consultez la section Afficher les journaux acheminés vers Cloud Storage.
  • Sujet Pub/Sub: fournit la prise en charge des applications des intégrations telles que Splunk Les entrées de journal sont au format JSON, puis acheminées vers un serveur Pub/Sub sur ce sujet. Le sujet peut se trouver dans le projet dans lequel les entrées de journal proviennent ou se trouvent dans un autre projet. Pour plus d'informations sur l'affichage des entrées de journal acheminées vers pour Pub/Sub, consultez Affichez les journaux acheminés vers Pub/Sub.

  • Projet Google Cloud: acheminez les entrées du journal vers un autre projet Google Cloud. Dans les récepteurs du projet de destination traitent les entrées de journal correspondantes.

Bonnes pratiques pour l'interception des récepteurs

Lorsque vous créez un récepteur d'interception, nous vous recommandons de procéder comme suit:

  • Déterminez si les ressources enfants ont besoin d'un contrôle indépendant du routage de leurs les entrées de journal correspondantes. Si une ressource enfant nécessite un contrôle indépendant de certaines les entrées de journal, assurez-vous que le récepteur d'interception ne les achemine pas les entrées de journal correspondantes.

  • Ajoutez des coordonnées à la description d'un récepteur qui intercepte les données. Ce Cela peut être utile si les personnes qui gèrent le récepteur d'interception sont différentes de ceux qui gèrent les projets dont les entrées de journal sont interceptées.

  • Testez la configuration de votre récepteur en créant d'abord un élément agrégé non interceptant pour vous assurer que les entrées de journal appropriées sont acheminées.

Récepteurs agrégés et VPC Service Controls

Les limites suivantes s'appliquent lorsque vous utilisez des récepteurs agrégés et VPC Service Controls:

  • Les récepteurs agrégés peuvent accéder aux données des projets dans un service périmètre. Pour empêcher les récepteurs agrégés d'accéder aux données d'un nous vous recommandons d'utiliser IAM Autorisations Logging.

  • VPC Service Controls ne permet pas d'ajouter des ressources d'organisation aux périmètres de service. Par conséquent, vous ne pouvez pas utiliser VPC Service Controls pour protéger les journaux au niveau des dossiers et des organisations, y compris les journaux agrégés. Pour gérer Logging au niveau du dossier ou de l'organisation, nous vous recommandons d'utiliser Cloud IAM.

  • Si vous acheminez les journaux à l'aide d'un récepteur au niveau du dossier ou de l'organisation vers un ressource protégée par un périmètre de service, vous devez ajouter d'entrée au périmètre de service. La règle d'entrée doit autoriser l'accès à la ressource du compte de service utilisé par le récepteur agrégé. Pour en savoir plus, consultez les articles suivants :

  • Lorsque vous spécifiez une règle d'entrée ou de sortie pour un périmètre de service, vous ne pouvez pas utiliser ANY_SERVICE_ACCOUNT et ANY_USER_ACCOUNT comme type d'identité lorsque vous utilisez un récepteur de journaux pour acheminer les journaux vers les ressources Cloud Storage. Cependant, vous pouvez utiliser ANY_IDENTITY comme type d'identité.

Avant de commencer

Avant de créer un récepteur, vérifiez les points suivants :

  • Vous disposez d'un dossier ou d'une organisation Google Cloud avec des entrées de journal que vous pouvez consultez l'explorateur de journaux.

  • Vous disposez de l'un des rôles IAM suivants Organisation ou dossier Google Cloud à partir duquel vous effectuez le routage les entrées de journal correspondantes.

    • 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 la page la Guide du contrôle des accès de Logging

  • Vous disposez d'une ressource dans une destination compatible ou vous pouvez en créer une.

    La destination doit être créée avant le récepteur, via la Google Cloud CLI, la console Google Cloud ou API. Vous pouvez créer la destination dans n'importe quel projet Google Cloud dans n'importe quelle organisation, mais vous devez vous assurer que le compte de service Le récepteur dispose des autorisations d'écriture dans la destination.

Créer un récepteur agrégé

Console

Pour créer un récepteur agrégé pour votre dossier ou votre organisation, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Routeur de journaux :

    Accéder au routeur de journaux

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

  2. Sélectionnez un dossier ou une organisation existant.

  3. Cliquez sur Créer un récepteur.

  4. Dans le panneau Détails du récepteur, saisissez les informations suivantes :

    • Nom du récepteur : indiquez un identifiant pour le récepteur. Notez qu'après avoir créé le récepteur, vous ne pouvez pas le renommer, mais vous pouvez le supprimer et en créer un autre.

    • Description du récepteur (facultatif) : décrivez l'objectif ou le cas d'utilisation du récepteur.

  5. Effectuez l'une des opérations suivantes :

    • Pour créer un récepteur d'interception, dans le menu Sélectionner le service du récepteur, procédez comme suit : sélectionnez Google Cloud project (Projet Google Cloud), puis saisissez le nom complet pour la destination. Pour en savoir plus sur la syntaxe, consultez Formats du chemin de destination :

    • Pour créer un récepteur non interceptant, accédez à la page Sélectionner le service du récepteur. et effectuez l'une des opérations suivantes:

      • Pour acheminer les entrées de journal vers un autre projet Google Cloud, sélectionnez Google Cloud project (Projet Google Cloud), puis saisissez nom de la destination. Pour en savoir plus sur la syntaxe, consultez Formats du chemin de destination :

      • Pour acheminer les entrées de journal vers un service appartenant au même Google Cloud, sélectionnez l'une des options suivantes:

        • Ensemble de données BigQuery: sélectionnez ou créez l'ensemble de données pour recevoir les entrées de journal acheminées. Vous avez également la possibilité à utiliser tables partitionnées.
        • Bucket Cloud Storage: sélectionnez ou créez le bucket bucket Cloud Storage pour recevoir les entrées de journal acheminées.
        • Sujet Pub/Sub: sélectionnez ou créez le sujet pour recevoir les entrées de journal acheminées.
        • Splunk : sélectionnez le sujet Pub/Sub du service Splunk.
      • Pour acheminer les entrées de journal vers un service situé dans un autre Google Cloud, procédez comme suit:

        1. Sélectionnez Autre ressource.
        2. Saisissez le nom complet de la destination. Pour en savoir plus sur la syntaxe, consultez les Formats du chemin de destination :

          Par exemple, si la destination du récepteur est un serveur Pub/Sub, , le destination se présente comme suit:

          pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
          
  6. Dans le panneau Sélectionner les journaux à inclure dans le récepteur, effectuez l'une des opérations suivantes:

    • Pour créer un récepteur d'interception, sélectionnez Intercepter les journaux ingérés par cette organisation et toutes les ressources enfants.

    • Pour créer un récepteur agrégé non interceptant, sélectionnez Inclure les journaux ingérés par cette ressource et par toutes les ressources enfants.

  7. Complétez la boîte de dialogue en saisissant un expression de filtre dans Créez un filtre d'inclusion correspondant aux entrées de journal souhaitées. à inclure. Si vous ne définissez pas de filtre, toutes les entrées de journal de la sélection ressource sont acheminées vers la destination.

    Par exemple, vous pouvez créer un filtre pour acheminer tous les accès aux données dans un seul bucket Logging. Ce filtre semble comme suit:

    LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")
    

    Pour obtenir des exemples de filtres, consultez Créez des filtres pour les récepteurs agrégés.

    Notez que la longueur d'un filtre ne peut pas dépasser 20 000 caractères.

  8. Facultatif: Pour vérifier que vous avez saisi le bon filtre, sélectionnez Prévisualiser les journaux L'explorateur de journaux s'ouvre dans un nouvel onglet prérempli.

  9. Facultatif : Dans le panneau Sélectionner les journaux à exclure du récepteur, effectuez les actions suivantes : les éléments suivants:

    1. Dans le champ Nom du filtre d'exclusion, saisissez un nom.

    2. Dans la section Créer un filtre d'exclusion, saisissez une expression de filtre correspondant aux entrées de journal que vous souhaitez exclure. Vous pouvez également utiliser la fonction sample pour sélectionner une partie des entrées de journal à exclure.

      Par exemple, pour exclure les entrées de journal d'un projet spécifique être vers la destination, ajoutez le filtre d'exclusion suivant:

      logName:projects/PROJECT_ID
      

      Pour exclure des entrées de journal de plusieurs projets, utilisez la logique OU pour joindre les clauses logName.

    Vous pouvez créer jusqu'à 50 filtres d'exclusion. par récepteur. Notez que la longueur d'un filtre ne peut pas dépasser 20 000 caractères.

  10. Cliquez sur Créer un récepteur.

  11. Accorder au compte de service du récepteur l'autorisation d'écrire les entrées de journal à la destination du récepteur. Pour en savoir plus, consultez Définir les autorisations des destinations

Protocole

Pour créer un récepteur agrégé, utilisez le organizations.sinks.create ou folders.sinks.create Méthode de l'API Logging. Préparez les arguments de la méthode comme suit :

  1. Définissez le champ parent sur l'organisation Google Cloud ou dossier dans lequel créer le récepteur. Le parent doit correspondre à l'un des éléments suivants :

    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
  2. Dans l'objet LogSink du corps de la requête de la méthode, effectuez l'une des opérations suivantes:

    • Définissez includeChildren sur True.

    • Pour créer un récepteur d'interception, définissez également le paramètre le champ interceptChildren sur True.

  3. Définissez le champ filter pour qu'il corresponde aux entrées de journal que vous souhaitez inclure.

    Pour obtenir des exemples de filtres, consultez Créez des filtres pour les récepteurs agrégés.

    La longueur d'un filtre ne peut pas dépasser 20 000 caractères.

  4. Définissez les champs LogSink restants comme vous le feriez pour n'importe quel récepteur. Pour en savoir plus, consultez Acheminez les journaux vers des destinations compatibles.

  5. Appelez organizations.sinks.create ou folders.sinks.create jusqu'à créer le récepteur.

  6. Accordez au compte de service l'autorisation d'écrire dans votre récepteur vers votre destination. Pour en savoir plus, consultez Définir les autorisations des destinations

gcloud

Pour créer un récepteur agrégé, utilisez le logging sinks create commande:

  1. Pour créer un récepteur, appelez le gcloud logging sinks create et assurez-vous d'inclure l'option --include-children.

    Avant d'utiliser la commande suivante, effectuez les remplacements suivants:

    • SINK_NAME: nom du récepteur de journaux. Vous ne pouvez pas modifier le nom d'un récepteur après l'avoir créé.
    • SINK_DESTINATION: service ou projet vers lequel vous souhaitez acheminer les entrées de journal.
    • INCLUSION_FILTER: filtre d'inclusion d'un récepteur. Pour obtenir des exemples de filtres, consultez Créez des filtres pour les récepteurs agrégés.
    • FOLDER_ID: ID du dossier. Si vous souhaitez créer un récepteur au niveau de l'organisation, puis remplacez --folder=FOLDER_ID avec -- organization=ORGANIZATION_ID

    Exécutez la gcloud logging sinks create commande:

    gcloud logging sinks create SINK_NAME \
      SINK_DESTINATION  --include-children \
      --folder=FOLDER_ID --log-filter="INCLUSION_FILTER"
    

    Vous pouvez également fournir les options suivantes:

    • Pour créer un récepteur d'interception, incluez le paramètre Option --intercept-children.

    Par exemple, si vous créez un récepteur agrégé au niveau du dossier et dont la destination est un sujet Pub/Sub, votre commande peut se présenter comme suit:

    gcloud logging sinks create SINK_NAME \
      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID --include-children \
      --folder=FOLDER_ID --log-filter="logName:activity"
    
  2. Accordez au compte de service l'autorisation d'écrire dans votre récepteur vers votre destination. Pour en savoir plus, consultez Définir les autorisations des destinations

L'application des modifications apportées à un récepteur peut prendre quelques minutes.

Créer des filtres pour les récepteurs agrégés

Comme tout récepteur, votre récepteur agrégé contient un filtre qui sélectionne les entrées de journal individuelles. Pour obtenir des exemples de filtres que vous pouvez utiliser pour créer votre récepteur agrégé, consultez la section Exemples de requêtes avec l'explorateur de journaux.

Voici quelques exemples de comparaisons de filtres pouvant vous servir si vous utilisez la fonctionnalité de récepteurs agrégés. Certains exemples utilisent la notation suivante :

  • : désigne l'opérateur de la sous-chaîne. Ne remplacez pas l'opérateur =.
  • ... représente les comparaisons de filtres supplémentaires, le cas échéant.
  • Les variables sont indiquées par un texte coloré. Remplacez-les par des valeurs valides.

Notez que la longueur d'un filtre ne peut pas dépasser 20 000 caractères.

Pour en savoir plus sur la syntaxe de filtrage, consultez la page Langage de requête Logging.

Sélectionner la source du journal

Pour un récepteur agrégé, pour chaque ressource enfant de l'organisation ou du dossier, les filtres d'inclusion et d'exclusion du récepteur sont appliqués à chaque entrée de journal est envoyée à la ressource enfant. Une entrée de journal correspondant le filtre d'inclusion et qui n'est pas exclu, est acheminé.

Si vous souhaitez que le récepteur achemine les entrées de journal de toutes les ressources enfants, indiquez un projet, un dossier ou une organisation dans les filtres d'inclusion et d'exclusion de votre récepteur. Par exemple, supposons que vous configurez un récepteur agrégé pour une organisation avec le filtre suivant:

resource.type="gce_instance"

Avec le filtre précédent, les entrées de journal dont le type de ressource est Instances Compute Engine écrites sur n'importe quel enfant de cette organisation sont acheminées par le récepteur agrégé vers la destination.

Toutefois, il peut arriver que vous souhaitiez utiliser un récepteur agrégé pour acheminer les entrées de journal uniquement à partir de ressources enfants spécifiques. Par exemple, pour conformité Raisons pour lesquelles vous souhaiterez peut-être stocker les journaux d'audit de dossiers ou projets spécifiques dans leur propre bucket Cloud Storage. Dans ces situations, configurez votre filtre d'inclusion pour spécifier chaque ressource enfant dont vous souhaitez les entrées de journal est acheminée. Si vous souhaitez acheminer les entrées de journal d'un dossier et de tous les projets qu'il contient ce dossier, alors le filtre doit lister le dossier et chacun des projets contenus par ce dossier et joindre les instructions à l'aide d'une clause OR.

Les filtres suivants limitent les entrées de journal aux des projets, dossiers ou organisations Google Cloud spécifiques:

logName:"projects/PROJECT_ID/logs/" AND ... 
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ... 
logName:"folders/FOLDER_ID/logs/" AND ... 
logName:"organizations/ORGANIZATION_ID/logs/" AND ... 

Par exemple, pour acheminer uniquement les entrées de journal écrites sur des instances Compute Engine qui ont été écrits dans le dossier my-folder, utilisez le filtre suivant:

logName:"folders/my-folder/logs/" AND resource.type="gce_instance"

Avec le filtre précédent, les entrées de journal écrites sur toute ressource autre que my-folder, y compris les entrées de journal écrites dans des projets Google Cloud enfants de my-folder, ne sont pas acheminés vers la destination.

Sélectionner la ressource surveillée

Pour acheminer les entrées de journal d'une seule ressource surveillée spécifique dans une projet Google Cloud, utilisez plusieurs comparaisons pour spécifier la ressource exactement:

logName:"projects/PROJECT_ID/logs" AND
resource.type=RESOURCE_TYPE AND
resource.labels.instance_id=INSTANCE_ID

Pour une liste des types de ressources, consultez la page Types de ressources surveillées.

Sélectionner un échantillon d'entrées de journal

Pour acheminer un échantillon aléatoire d'entrées de journal, ajoutez la fonction intégrée sample. Par exemple, pour acheminer uniquement 10 % des entrées de journal correspondant à votre filtre actuel, utilisez cette addition :

sample(insertId, 0.10) AND ...

Pour en savoir plus, consultez la section concernant la fonction sample.

Pour en savoir plus sur les filtres Cloud Logging, consultez la page Langage de requête Logging.

Définir les autorisations de la destination

Cette section explique comment accorder à Logging Autorisations Identity and Access Management permettant d'écrire des entrées de journal dans la destination de votre récepteur. Pour obtenir la liste complète des rôles et des autorisations dans Logging, consultez la page Contrôle des accès.

Lorsque vous créez ou mettez à jour un récepteur qui achemine les entrées de journal vers toute autre destination qu'un bucket de journaux dans le projet actuel, un compte de service pour ce récepteur est obligatoire. Logging crée et gère automatiquement le compte de service:

  • Depuis le 22 mai 2023, lorsque vous créez un récepteur de la ressource sous-jacente, Logging crée de service géré. Logging utilise le même compte de service tous les récepteurs de la ressource sous-jacente. Les ressources peuvent être un projet Google Cloud, une organisation, un dossier compte de facturation Google Cloud.
  • Avant le 22 mai 2023, Logging a créé un service pour chaque récepteur. Depuis le 22 mai 2023, Logging utilise un compte de service partagé pour tous les récepteurs du ressource sous-jacente.

L'identité du rédacteur d'un récepteur est l'identifiant du service. associé à ce récepteur. Tous les récepteurs ont une identité de rédacteur, sauf s'ils dans un bucket de journaux du projet Google Cloud actuel.

Pour acheminer les entrées de journal vers une ressource protégée par un périmètre de service, vous devez ajouter le compte de service de ce récepteur à un niveau d'accès, puis et l'attribuer au périmètre de service de destination. Cela n'est pas nécessaire pour les récepteurs non agrégés. Pour en savoir plus, consultez la page VPC Service Controls : Cloud Logging.

Pour définir les autorisations afin que votre récepteur soit acheminé vers sa destination, procédez comme suit :

Console

  1. Pour obtenir des informations sur le compte de service de votre récepteur, procédez comme suit : effectuer les opérations suivantes:

    1. Dans la console Google Cloud, accédez à la page Routeur de journaux :

      Accéder au routeur de journaux

      Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.

    2. Sélectionnez Menu , puis Afficher les détails du récepteur L'identité du rédacteur apparaît dans Détails du récepteur.

    3. Si la valeur du champ writerIdentity contient une adresse e-mail, puis passez à l'étape suivante. Lorsque la valeur est None, vous n'avez pas n'avez pas besoin de configurer les autorisations de destination.

    4. Copiez l'identité du rédacteur du récepteur dans le presse-papiers. La chaîne serviceAccount: est de l'identité du compte de service. Exemple :

      serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
      
    5. Ajoutez le compte de service en tant que compte principal IAM dans projet de destination:

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

        Accéder à IAM

        Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est IAM et administration.

      2. Sélectionnez le projet de destination.

      3. Cliquez sur Accorder l'accès.

      4. Attribuez au compte de service le rôle IAM requis:

        • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur en tant que compte principal à l'aide d'IAM, Rôle de créateur des objets Storage (roles/storage.objectCreator).
        • Pour les destinations BigQuery, ajoutez l'identité du rédacteur du récepteur en tant que compte principal à l'aide d'IAM, Rôle d'éditeur de données BigQuery (roles/bigquery.dataEditor).
        • Pour les destinations Pub/Sub, y compris Splunk, ajoutez l'identité du rédacteur du récepteur en tant que compte principal à l'aide d'IAM, Rôle d'éditeur Pub/Sub (roles/pubsub.publisher).
        • Pour les destinations des buckets Logging dans différentes projets Google Cloud, ajoutez l'identité du rédacteur du récepteur en tant que compte principal à l'aide d'IAM, puis lui accorder Rôle Rédacteur de bucket de journaux (roles/logging.bucketWriter).
        • Pour les destinations de projets Google Cloud, ajoutez le en tant que compte principal à l'aide d'IAM, puis attribuez-lui Rôle Rédacteur de journaux (roles/logging.logWriter). Plus précisément, le compte principal a besoin Autorisation logging.logEntries.route.

Protocole

Nous vous recommandons d'utiliser la console Google Cloud ou la Google Cloud CLI pour attribuer un rôle au compte de service.

gcloud

  1. Assurez-vous de disposer d'un accès Propriétaire Projet Google Cloud contenant la destination. Si vous ne disposez pas d'un accès Propriétaire à la destination du récepteur, puis demandez à un propriétaire du projet d'ajouter l'identité du rédacteur en tant que compte principal.

  2. Pour obtenir des informations sur le compte de service de votre récepteur, appelez la fonction gcloud logging sinks describe.

    Avant d'utiliser la commande suivante, effectuez les remplacements suivants:

    • SINK_NAME: nom du récepteur de journaux. Vous ne pouvez pas modifier le nom d'un récepteur après l'avoir créé.

    Exécutez la gcloud logging sinks describe commande:

    gcloud logging sinks describe SINK_NAME
    
  3. Si les détails du récepteur contiennent un champ intitulé writerIdentity, alors passez à l'étape suivante. Lorsque les détails n'incluent pas de writerIdentity , vous n'avez pas besoin de configurer d'autorisations de destination pour le récepteur.

  4. Copiez l'identité du rédacteur du récepteur dans le presse-papiers. La chaîne serviceAccount: est de l'identité du compte de service.

    L'identité du rédacteur pour le compte de service est semblable à la suivantes:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  5. Pour ajouter le compte de service en tant que compte principal IAM dans projet de destination, appelez gcloud projects add-iam-policy-binding .

    Avant d'utiliser la commande suivante, effectuez les remplacements suivants:

    • PROJECT_ID: identifiant du projet.
    • PRINCIPAL: identifiant du compte principal que vous souhaitez vous accordez le rôle. Les identifiants des comptes principaux se présentent généralement sous la forme suivante: PRINCIPAL-TYPE:ID Exemple : user:my-user@example.com. Pour obtenir la liste complète des formats que PRINCIPAL_ID peut avoir, consultez la section Identifiants des comptes principaux.
    • ROLE: rôle IAM.

      • Pour les destinations Cloud Storage, ajoutez l'identité du rédacteur du récepteur en tant que compte principal à l'aide d'IAM, Rôle de créateur des objets Storage (roles/storage.objectCreator).
      • Pour les destinations BigQuery, ajoutez l'identité du rédacteur du récepteur en tant que compte principal à l'aide d'IAM, Rôle d'éditeur de données BigQuery (roles/bigquery.dataEditor).
      • Pour les destinations Pub/Sub, y compris Splunk, ajoutez l'identité du rédacteur du récepteur en tant que compte principal à l'aide d'IAM, Rôle d'éditeur Pub/Sub (roles/pubsub.publisher).
      • Pour les destinations des buckets Logging dans différentes projets Google Cloud, ajoutez l'identité du rédacteur du récepteur en tant que compte principal à l'aide d'IAM, puis lui accorder Rôle Rédacteur de bucket de journaux (roles/logging.bucketWriter).
      • Pour les destinations de projets Google Cloud, ajoutez le en tant que compte principal à l'aide d'IAM, puis attribuez-lui Rôle Rédacteur de journaux (roles/logging.logWriter). Plus précisément, le compte principal a besoin Autorisation logging.logEntries.route.

    Exécutez la gcloud projects add-iam-policy-binding commande:

    gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
    

Étape suivante