Ce document explique comment créer et gérer des vues de journaux sur vos buckets Cloud Logging à l'aide de la gcloud CLI. Les vues de journaux vous offrent un contrôle avancé et précis sur l'accès aux journaux dans vos buckets de journaux.
Pour obtenir des informations générales sur le modèle de stockage Logging, consultez la page Présentation du routage et du stockage.
À propos des vues de journaux
Les vues de journaux vous permettent d'accorder à un utilisateur l'accès uniquement à un sous-ensemble des journaux stockés dans un bucket de journaux. Prenons l'exemple d'un scénario dans lequel vous stockez les journaux de votre organisation dans un projet central. Vous pouvez créer une vue de journal pour chaque projet contribuant aux journaux dans le bucket de journaux. Vous pouvez ensuite accorder à chaque utilisateur l'accès à une ou plusieurs vues de journaux, et ainsi limiter les journaux qu'ils peuvent consulter.
Cloud Logging crée automatiquement une vue _AllLogs
pour chaque bucket de journaux et une vue _Default
pour le bucket de journaux _Default
:
- Vue
_AllLogs
: vous pouvez consulter tous les journaux du bucket de journaux. - Vue
_Default
: vous pouvez afficher tous les journaux d'audit qui ne concernent pas l'accès aux données dans le bucket de journaux.
Vous ne pouvez pas modifier les vues créées automatiquement par Cloud Logging. Toutefois, vous pouvez supprimer la vue _AllLogs
.
Vous pouvez créer jusqu'à 30 vues de journal par bucket de journaux.
Chaque vue de journal contient un filtre qui limite les entrées de journal visibles dans la vue. Les filtres peuvent contenir des opérateurs logiques AND
et NOT
. Toutefois, ils ne peuvent pas inclure d'opérateurs logiques OR
.
Les filtres peuvent comparer les valeurs suivantes:
Une source de données utilisant la fonction
source
La fonctionsource
renvoie les entrées de journal d'une ressource particulière dans la hiérarchie des organisations, des dossiers et des projets Google Cloud.Un ID de journal utilisant la fonction
log_id
La fonctionlog_id
renvoie les entrées de journal correspondant à l'argumentLOG_ID
donné dans le champlogName
.Un type de ressource valide utilisant la comparaison
resource.type=
FIELD_NAME.
Par exemple, le filtre suivant capture les entrées de journal stdout
Compute Engine d'un projet Google Cloud appelé myproject
:
source("projects/myproject") AND resource.type = "gce_instance" AND log_id("stdout")
Pour en savoir plus sur la syntaxe de filtrage, consultez Comparaisons.
Avant de commencer
Avant de créer ou de mettre à jour une vue de journal, procédez comme suit:
Si vous ne l'avez pas déjà fait, dans le projet Google Cloud approprié, créez un bucket Logging pour lequel vous souhaitez configurer une vue de journal personnalisée.
-
Pour obtenir les autorisations nécessaires pour créer, afficher, mettre à jour et supprimer des vues de journaux, demandez à votre administrateur de vous attribuer le rôle IAM Rédacteur de configuration des journaux (
roles/logging.configWriter
) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Installez Google Cloud CLI.
Déterminez les journaux que vous souhaitez inclure dans la vue. Utilisez ces informations pour spécifier le filtre de la vue du journal.
Déterminez qui doit avoir accès à la vue du journal. Les comptes principaux disposant du rôle
roles/logging.viewAccessor
peuvent consulter les journaux dans n'importe quelle vue de journal. Cependant, Cloud Logging accepte les conditions IAM. Les conditions vous permettent d'accorder à un compte principal l'accès à une vue de journal spécifique. Pour en savoir plus, consultez Accorder l'accès à une vue de journal.
Créer une vue de journal
Pour créer une vue de journal, exécutez la commande gcloud logging views update
.
Vous pouvez créer jusqu'à 30 vues de journal par bucket de journaux.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- VIEW_ID: identifiant de la vue du journal.
- BUCKET_NAME: nom du bucket de journaux.
- LOCATION: emplacement du bucket de journaux.
- FILTER: filtre définissant la vue du journal. Lorsque ce champ est vide, la vue de journal inclut tous les journaux. Par exemple, pour filtrer les journaux d'instances de VM Compute Engine, saisissez
"resource.type=gce_instance"
. - DESCRIPTION: description de la vue du journal. Par exemple, vous pouvez saisir la ligne suivante pour la description
"Compute logs"
.
Exécutez la commande gcloud logging views create
:
Linux, macOS ou Cloud Shell
gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Windows (PowerShell)
gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Windows (cmd.exe)
gcloud logging views create VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Cette commande ne fournit pas de réponse. Pour confirmer les modifications, vous pouvez exécuter la commande gcloud logging views list
.
Répertorier les vues de journaux d'un bucket de journaux
Pour répertorier les vues de journaux créées pour un bucket de journaux, utilisez la commande gcloud logging views list
.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- BUCKET_NAME: nom du bucket de journaux.
- LOCATION: emplacement du bucket de journaux.
Exécutez la commande gcloud logging views list
:
Linux, macOS ou Cloud Shell
gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION
Windows (PowerShell)
gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION
Windows (cmd.exe)
gcloud logging views list --bucket=BUCKET_NAME --location=LOCATION
Les données de réponse sont une liste de vues de journaux. Pour chaque vue de journal, le filtre est affiché avec les dates de création et de dernière mise à jour. Lorsque les dates de création et de mise à jour sont vides, la vue de journal a été créée lors de la création du projet Google Cloud. L'exemple de sortie suivant montre que deux ID de vue, _AllLogs
et compute
, se trouvent sur le bucket de journaux interrogé:
VIEW_ID: _AllLogs FILTER: CREATE_TIME: UPDATE_TIME: VIEW_ID: compute FILTER: resource.type="gce_instance" CREATE_TIME: 2024-02-20T17:41:17.405162921Z UPDATE_TIME: 2024-02-20T17:41:17.405162921Z
Accorder l'accès à une vue de journal
Les comptes principaux disposant du rôle roles/logging.viewAccessor
sur un projet Google Cloud peuvent consulter les journaux dans n'importe quelle vue de journal. Cependant, Cloud Logging accepte les conditions IAM.
Les conditions vous permettent d'accorder à un compte principal l'accès à une vue de journal spécifique.
Les conditions IAM sont spécifiées dans la liaison de rôle pour un projet Google Cloud. Une stratégie d'autorisation est limitée à 20 liaisons de rôle qui incluent le même rôle et le même compte principal, mais des expressions de condition différentes.
Pour ajouter des utilisateurs à une vue afin de leur permettre d'accéder aux journaux, procédez comme suit :
gcloud
Récupérez la stratégie IAM du projet et écrivez-la dans un fichier local au format JSON. Avant d'exécuter la commande suivante, remplacez PROJECT_ID par l'ID du projet qui contient le bucket de journaux:
gcloud projects get-iam-policy PROJECT_ID --format json > output.json
Modifiez le fichier JSON que vous avez créé et ajoutez une condition IAM permettant à l'utilisateur de lire le bucket de journaux que vous avez créé.
Par exemple, l'exemple suivant spécifie une liaison qui accorde le rôle
"roles/logging.viewAccessor"
aux membres spécifiés, mais seulement pour une seule vue de journal:{ "bindings": [ { "members": [ "user:username@gmail.com" ], "role": "roles/logging.viewAccessor", "condition": { "title": "Bucket reader condition example", "description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.", "expression": "resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\"" } } ], "etag": "BwWd_6eERR4=", "version": 3 }
Mettez à jour la stratégie IAM :
gcloud projects set-iam-policy PROJECT_ID output.json
Console
Dans le projet dans lequel vous avez créé le bucket de journaux, procédez comme suit:
-
Dans le panneau de navigation de la console Google Cloud, sélectionnez IAM :
Cliquez sur
Accorder l'accès.Dans le champ Nouveaux comptes principaux, ajoutez le compte de messagerie de l'utilisateur.
Dans le menu déroulant Sélectionnez un rôle, sélectionnez Accesseur de vues de journaux.
Ce rôle fournit aux utilisateurs un accès en lecture à toutes les vues. Pour limiter l'accès des utilisateurs à une vue spécifique, ajoutez une condition basée sur le nom de la ressource.
Cliquez sur Ajouter une condition IAM.
Saisissez un titre et une description pour la condition.
Dans le menu déroulant Type de condition, sélectionnez Ressource > Nom.
Dans le menu déroulant Opérateur, sélectionnez est.
Dans le champ Valeur, saisissez l'ID de la vue des journaux, en incluant le chemin d'accès complet à la vue.
Exemple :
projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID
Cliquez sur Enregistrer pour ajouter la condition.
Cliquez sur Enregistrer pour définir les autorisations.
Mettre à jour une vue de journal
Pour mettre à jour ou modifier une vue de journal, utilisez la commande gcloud logging views update
.
Si vous ne connaissez pas l'ID de la vue, consultez la section Répertorier les vues de journaux.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- VIEW_ID: identifiant de la vue du journal.
- BUCKET_NAME: nom du bucket de journaux.
- LOCATION: emplacement du bucket de journaux.
- FILTER: filtre définissant la vue du journal. Lorsque ce champ est vide, la vue de journal inclut tous les journaux. Par exemple, pour filtrer les journaux d'instances de VM Compute Engine, saisissez
"resource.type=gce_instance"
. - DESCRIPTION: description de la vue du journal. Par exemple, vous pouvez saisir la ligne suivante pour la description
"New description for the log view"
.
Exécutez la commande gcloud logging views update
:
Linux, macOS ou Cloud Shell
gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Windows (PowerShell)
gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Windows (cmd.exe)
gcloud logging views update VIEW_ID --bucket=BUCKET_NAME --location=LOCATION --log-filter=FILTER --description=DESCRIPTION
Cette commande ne fournit pas de réponse. Pour confirmer les modifications, vous pouvez exécuter la commande gcloud logging views describe
.
Supprimer une vue de journal
Pour supprimer une vue de journal, exécutez la commande gcloud logging views delete
.
Si vous ne connaissez pas l'ID de la vue, consultez la section Répertorier les vues de journaux.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- VIEW_ID: identifiant de la vue du journal.
- BUCKET_NAME: nom du bucket de journaux.
- LOCATION: emplacement du bucket de journaux.
Exécutez la commande gcloud logging views delete
:
Linux, macOS ou Cloud Shell
gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (PowerShell)
gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (cmd.exe)
gcloud logging views delete VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
La réponse confirme la suppression. L'exemple suivant montre la réponse à la suppression d'une vue de journal nommée tester
:
Deleted [tester].
Décrire une vue de journal
Pour obtenir des informations détaillées sur une vue de journal, exécutez la commande gcloud logging views describe
.
Si vous ne connaissez pas l'ID de la vue, consultez la section Répertorier les vues de journaux.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- VIEW_ID: identifiant de la vue du journal.
- BUCKET_NAME: nom du bucket de journaux.
- LOCATION: emplacement du bucket de journaux.
Exécutez la commande gcloud logging views describe
:
Linux, macOS ou Cloud Shell
gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (PowerShell)
gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
Windows (cmd.exe)
gcloud logging views describe VIEW_ID --bucket=BUCKET_NAME --location=LOCATION
La réponse inclut toujours la description et le nom complet de la vue de journal. Il inclut également le filtre, lorsque le champ de filtre n'est pas vide. Voici un exemple de réponse:
createTime: '2024-02-20T17:41:17.405162921Z' filter: resource.type="gce_instance" name: projects/my-project/locations/global/buckets/my-bucket/views/compute updateTime: '2024-02-20T17:41:17.405162921Z'
Afficher les journaux associés à une vue de journal
Pour afficher les journaux dans une vue de journal, assurez-vous de disposer du rôle Accesseur de vue des journaux (roles/logging.viewAccessor
) pour la vue de journal:
-
Dans le panneau de navigation de la console Google Cloud, sélectionnez Logging, puis Explorateur de journaux :
Cliquez sur Affiner le champ d'application pour afficher le panneau Affiner le champ d'application. Vous pouvez alors sélectionner le bucket de journaux et la vue de journaux que vous souhaitez utiliser pour afficher vos journaux.
Pour en savoir plus, consultez la documentation sur l'explorateur de journaux.
Étapes suivantes
Configurer l'accès au niveau du champ