Ce document explique comment utiliser les rôles et autorisations Identity and Access Management (IAM) pour contrôler l'accès aux données des journaux dans l'API Logging, l'explorateur de journaux et la Google Cloud CLI.
Présentation
Les autorisations et les rôles IAM déterminent votre capacité à accéder aux données des journaux dans l'API Logging, l'explorateur de journaux et la Google Cloud CLI.
Un rôle est un ensemble d'autorisations. Vous ne pouvez pas accorder directement une autorisation principale. À la place, vous lui accordez un rôle. Lorsque vous accordez un rôle à un compte principal, vous lui accordez toutes les autorisations associées à ce rôle. Vous pouvez attribuer plusieurs rôles au même compte principal.
Pour utiliser Logging dans une ressource Google Cloud, telle qu'un projet, un dossier, un bucket ou une organisation Google Cloud, un compte principal doit disposer d'un rôle IAM contenant les autorisations appropriées.
Rôles prédéfinis
IAM fournit des rôles prédéfinis permettant d'accorder un accès précis à des ressources Google Cloud spécifiques et d'empêcher tout accès indésirable à d'autres ressources. Google Cloud crée et gère ces rôles, et met automatiquement à jour leurs autorisations si nécessaire, par exemple lorsque Logging ajoute de nouvelles fonctionnalités.
Le tableau suivant répertorie les rôles prédéfinis pour Logging. Pour chaque rôle, le tableau affiche son titre, sa description, les autorisations qu'il contient et le type de ressource de niveau le plus bas auquel il peut être attribué. Vous pouvez attribuer les rôles prédéfinis au niveau du projet Google Cloud ou, dans la plupart des cas, de tout type de niveau supérieur dans la hiérarchie Google Cloud. Pour définir de façon plus précise le rôle d'accesseur de vues de journaux au niveau du bucket, utilisez les attributs de ressources pour les conditions IAM.
Pour obtenir la liste de toutes les autorisations individuelles contenues dans un rôle, consultez la section Obtenir les métadonnées du rôle.
Role | Permissions |
---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
|
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
|
Logs Configuration Writer( Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs. Lowest-level resources where you can grant this role:
|
|
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
|
Log Link Accessor( Ability to see links for a bucket. |
|
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
|
Private Logs Viewer( Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs. Lowest-level resources where you can grant this role:
|
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
|
Les sections suivantes fournissent des informations supplémentaires pour vous aider à choisir les rôles qui s'appliquent aux cas d'utilisation de vos comptes principaux.
Rôles Logging
Pour autoriser un utilisateur à effectuer toutes les actions dans Logging, attribuez-lui le rôle Administrateur Logging (
roles/logging.admin
).Pour permettre à un utilisateur de créer et de modifier des configurations de journalisation, telles que des récepteurs, des buckets, des vues, des liens, des métriques basées sur les journaux ou des exclusions, accordez le rôle "Rédacteur de configuration des journaux" (
roles/logging.configWriter
).Pour permettre à un utilisateur de lire des journaux dans les buckets
_Required
et_Default
, utilisez l'explorateur de journaux et la page "Analyse de journaux", attribuez l'un des rôles suivants:- Pour accéder à tous les journaux du bucket
_Required
et à la vue_Default
sur le bucket_Default
, accordez le rôle Lecteur de journaux (roles/logging.viewer
). - Pour accéder à tous les journaux des buckets
_Required
et_Default
, y compris les journaux d'accès aux données, attribuez le rôle Lecteur de journaux privés (roles/logging.privateLogViewer
).
- Pour accéder à tous les journaux du bucket
Pour permettre à un utilisateur de lire les journaux stockés dans un bucket défini par l'utilisateur, accordez le rôle Accesseur de vue des journaux (
roles/logging.viewAccessor
). Vous pouvez limiter l'autorisation à une vue de journal spécifique sur un bucket spécifique à l'aide d'une condition IAM. Consultez la section Accorder l'accès à une vue de journal.Pour permettre à un utilisateur d'accéder à des champs
LogEntry
restreints, le cas échéant, dans un bucket donné, accordez le rôle "Accesseur de champs de journaux" (roles/logging.fieldAccessor
). Pour en savoir plus, consultez Configurer l'accès au niveau du champ.Pour permettre à un utilisateur d'écrire des journaux à l'aide de l'API Logging, accordez le rôle "Rédacteur de journaux" (
roles/logging.logWriter
). Ce rôle n'accorde pas de droits de lecture.Pour autoriser le compte de service d'un récepteur à acheminer les journaux vers un bucket situé dans un autre projet Google Cloud, attribuez-lui le rôle Rédacteur de bucket de journaux (
roles/logging.bucketWriter
). Pour savoir comment accorder des autorisations à un compte de service, consultez la section Définir des autorisations de destination.
Rôles au niveau du projet
Pour accorder un accès en lecture à la plupart des services Google Cloud, accordez le rôle Lecteur (
roles/viewer
).Ce rôle inclut toutes les autorisations accordées par le rôle Lecteur de journaux (
roles/logging.viewer
).Pour accorder un accès éditeur à la plupart des services Google Cloud, accordez le rôle Éditeur (
roles/editor
).Ce rôle inclut toutes les autorisations accordées par le rôle Lecteur de journaux (
roles/logging.viewer
), ainsi que les autorisations permettant d'écrire des entrées de journal, de supprimer des journaux et de créer des métriques basées sur les journaux. Toutefois, ce rôle ne permet pas aux utilisateurs de créer des récepteurs, de lire les journaux d'audit pour l'accès aux données qui se trouvent dans le bucket_Default
, ni de lire les journaux qui se trouvent dans des buckets de journaux définis par l'utilisateur.Pour accorder un accès complet à la plupart des services Google Cloud, accordez le rôle Propriétaire (
roles/owner
).
Attribution des rôles…
Pour savoir comment accorder un rôle à un compte principal, consultez la section Accorder, modifier et révoquer les accès.
Vous pouvez attribuer plusieurs rôles au même utilisateur. Pour obtenir la liste des autorisations contenues dans un rôle, consultez la section Obtenir les métadonnées du rôle.
Si vous essayez d'accéder à une ressource Google Cloud et que vous ne disposez pas des autorisations nécessaires, contactez le compte principal répertorié comme propriétaire de la ressource.
Rôles personnalisés
Pour créer un rôle personnalisé avec des autorisations Logging, procédez comme suit :
Pour un rôle accordant des autorisations pour l'API Logging, choisissez des autorisations dans la section Autorisations des API, puis suivez les instructions pour créer un rôle personnalisé.
Pour un rôle accordant des autorisations d'utilisation de l'explorateur de journaux, choisissez parmi les groupes d'autorisations figurant dans la section Autorisations de console, puis suivez les instructions pour créer un rôle personnalisé
Pour un rôle accordant des autorisations d'utilisation de
gcloud logging
, consultez la section Autorisations de la ligne de commande sur cette page, puis suivez les instructions pour créer un rôle personnalisé.
Pour plus d'informations sur les rôles personnalisés, voir Comprendre les rôles personnalisés IAM.
Autorisations pour l'API Logging
Les méthodes de l'API Logging nécessitent des autorisations IAM spécifiques. Le tableau suivant répertorie les autorisations requises par les méthodes d'API.
Si vous êtes intéressé par les journaux conservés dans les organisations, les comptes de facturation et les dossiers Google Cloud, notez que ces ressources possèdent leurs propres méthodes API pour logs
et sinks
. Plutôt que de répéter toutes les méthodes dans le tableau, seules les méthodes projects
sont affichées individuellement.
Méthode de journalisation | Autorisation requise | Type de ressource |
---|---|---|
billingAccounts.logs.* |
logging.logs.* (voir projects.logs.* ) |
Comptes de facturation |
billingAccounts.sinks.* |
logging.sinks.* (voir projects.sinks.* .) |
Comptes de facturation |
billingAccounts.locations.buckets.* |
logging.buckets.* (voir projects.locations.buckets.* .) |
Comptes de facturation |
entries.list |
logging.logEntries.list oulogging.privateLogEntries.list |
projets, organisations, dossiers, comptes de facturation |
entries.tail |
logging.logEntries.list oulogging.privateLogEntries.list |
projets, organisations, dossiers, comptes de facturation |
entries.write |
logging.logEntries.create |
projets, organisations, dossiers, comptes de facturation |
folders.logs.* |
logging.logs.* (voir projects.logs.* ) |
folders |
folders.sinks.* |
logging.sinks.* (voir projects.sinks.* ) |
folders |
folders.locations.buckets.* |
logging.buckets.* (voir projects.locations.buckets.* ) |
folders |
monitoredResourceDescriptors.list |
(aucune) | (aucun) |
organizations.logs.* |
logging.logs.* (voir projects.logs.* ) |
organizations |
organizations.sinks.* |
logging.sinks.* (voir projects.sinks.* ) |
organizations |
organizations.locations.buckets.* |
logging.buckets.* (voir projects.locations.buckets.* ) |
organizations |
projects.exclusions.create |
logging.exclusions.create |
Projets |
projects.exclusions.delete |
logging.exclusions.delete |
Projets |
projects.exclusions.get |
logging.exclusions.get |
Projets |
projects.exclusions.list |
logging.exclusions.list |
Projets |
projects.exclusions.patch |
logging.exclusions.update |
Projets |
projects.logs.list |
logging.logs.list |
Projets |
projects.logs.delete |
logging.logs.delete |
Projets |
projects.sinks.list |
logging.sinks.list |
Projets |
projects.sinks.get |
logging.sinks.get |
Projets |
projects.sinks.create |
logging.sinks.create |
Projets |
projects.sinks.update |
logging.sinks.update |
Projets |
projects.sinks.delete |
logging.sinks.delete |
Projets |
projects.locations.buckets.list |
logging.buckets.list |
Projets |
projects.locations.buckets.get |
logging.buckets.get |
Projets |
projects.locations.buckets.patch |
logging.buckets.update |
Projets |
projects.locations.buckets.create |
logging.buckets.create |
Projets |
projects.locations.buckets.delete |
logging.buckets.delete |
Projets |
projects.locations.buckets.undelete |
logging.buckets.undelete |
Projets |
projects.metrics.list |
logging.logMetrics.list |
Projets |
projects.metrics.get |
logging.logMetrics.get |
Projets |
projects.metrics.create |
logging.logMetrics.create |
Projets |
projects.metrics.update |
logging.logMetrics.update |
Projets |
projects.metrics.delete |
logging.logMetrics.delete |
projet |
Autorisations pour la console Google Cloud
Le tableau suivant répertorie les autorisations nécessaires pour utiliser l'explorateur de journaux.
Dans le tableau, a.b.{x,y}
signifie a.b.x
et a.b.y
.
Activité de la console | Autorisations requises |
---|---|
Accès minimal en lecture seule | logging.logEntries.list logging.logs.list logging.logServiceIndexes.list logging.logServices.list resourcemanager.projects.get |
Possibilité d'afficher les journaux d'audit concernant l'accès aux données | Ajouter logging.privateLogEntries.list |
Possibilité d'afficher des métriques basées sur les journaux | Ajouter logging.logMetrics. {list , get } |
Possibilité d'afficher des récepteurs | Ajouter logging.sinks. {list , get } |
Possibilité d'afficher l'utilisation des journaux | Ajouter logging.usage.get |
Possibilité d'exclure les journaux | Ajouter logging.exclusions. {list , create , get , update , delete } |
Possibilité d'utiliser des récepteurs | Ajouter logging.sinks.{list , create , get , update , delete } |
Possibilité de créer des métriques basées sur les journaux | Ajouter logging.logMetrics. {list , create , get , update , delete } |
Possibilité d'enregistrer des requêtes | Ajouter logging.queries. {list , create , get , update , delete } |
Possibilité de partager des requêtes | Ajouter logging.queries.share |
Possibilité d'utiliser des requêtes récentes | Ajouter logging.queries. {create , list } |
Autorisations pour la ligne de commande
Les commandes gcloud logging
sont contrôlées par les autorisations IAM.
Pour utiliser l'une des commandes gcloud logging
, les comptes principaux doivent disposer de l'autorisation serviceusage.services.use
.
Un compte principal doit également disposer du rôle IAM correspondant à la ressource du journal et au cas d'utilisation. Pour en savoir plus, consultez la section Autorisations de l'interface de ligne de commande.
Autorisations pour les ensembles de données BigQuery associés
La liste suivante décrit les rôles prédéfinis et les autorisations correspondantes pour gérer vos ensembles de données BigQuery associés:
Les rôles Administrateur Logging (
roles/logging.admin
) et Rédacteur de configuration des journaux (roles/logging.configWriter
) contiennent les autorisations suivantes:logging.links.list
logging.links.create
logging.links.get
logging.links.delete
Les rôles Accesseur de liens de journaux (
roles/logging.linkViewer
), Lecteur de journaux privés (roles/logging.privateLogViewer
) et Lecteur de journaux (roles/logging.viewer
) contiennent les autorisations suivantes:logging.links.list
logging.links.get
Les rôles et autorisations précédemment répertoriés ne s'appliquent qu'aux pages Logging, comme la page "Analyse de journaux". Si vous utilisez l'interface BigQuery pour gérer vos ensembles de données, vous aurez peut-être besoin de rôles et d'autorisations BigQuery distincts. Pour en savoir plus, consultez la page Contrôle des accès avec IAM pour BigQuery.
Autorisations de routage des journaux
Pour en savoir plus sur la définition des contrôles d'accès lors de la création et de la gestion des récepteurs pour acheminer les journaux, consultez la section Définir les autorisations de destination.
Notez que la gestion des filtres d'exclusion est intégrée à la configuration des récepteurs. Toutes les autorisations liées à la gestion des récepteurs, y compris la définition de filtres d'exclusion, sont incluses dans les autorisations logging.sinks.*
. Lors de la création d'un rôle personnalisé qui inclut des autorisations permettant de gérer les filtres d'exclusion, ajoutez les autorisations logging.sinks.*
au rôle plutôt que d'ajouter les autorisations logging.exclusions.*
.
Une fois que vos entrées de journal ont été acheminées vers une destination compatible, l'accès aux copies de journaux est contrôlé entièrement par les autorisations et les rôles IAM sur les destinations : Cloud Storage, BigQuery ou Pub/Sub.
Autorisations pour les métriques basées sur les journaux
Voici un récapitulatif des rôles et autorisations dont un compte principal a besoin pour accéder aux métriques basées sur les journaux :
Le rôle Rédacteur de configuration des journaux (
roles/logging.configWriter
) permet aux comptes principaux de répertorier, créer, obtenir, mettre à jour et supprimer des métriques basées sur les journaux.Le rôle Lecteur de journaux (
roles/logging.viewer
) contient les autorisations nécessaires pour afficher les métriques existantes. Plus précisément, un compte principal a besoin des autorisationslogging.logMetrics.get
etlogging.logMetrics.list
pour afficher les métriques existantes.Le rôle Lecteur Monitoring (
roles/monitoring.viewer
) dispose des autorisations nécessaires pour lire les données TimeSeries. Plus précisément, un compte principal a besoin de l'autorisationmonitoring.timeSeries.list
pour lire les données de séries temporelles.Les rôles Administrateur Logging (
roles/logging.admin
), Éditeur de projet (roles/editor
) et Propriétaire de projet (roles/owner
) disposent des autorisations nécessaires pour créer des métriques basées sur les journaux. Plus précisément, un compte principal a besoin de l'autorisationlogging.logMetrics.create
pour créer des métriques basées sur les journaux.
Autorisations pour les alertes basées sur les journaux
Pour créer et gérer des alertes basées sur les journaux, un compte principal doit disposer des rôles et autorisations Logging et Monitoring suivants:
-
Pour obtenir les autorisations nécessaires pour lire les journaux et gérer les règles de notification Logging, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur Logging (
roles/logging.admin
) sur votre 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.
-
Pour obtenir les autorisations dont vous avez besoin pour gérer les règles d'alerte et les canaux utilisés par les alertes basées sur les journaux, demandez à votre administrateur de vous accorder les rôles IAM suivants dans votre projet:
-
Éditeur Monitoring AlertPolicy (
roles/monitoring.alertPolicyEditor
) -
Éditeur Monitoring NotificationChannel (
roles/monitoring.notificationChannelEditor
)
-
Éditeur Monitoring AlertPolicy (
-
Pour obtenir les autorisations dont vous avez besoin pour créer une règle d'alerte dans la Google Cloud CLI, demandez à votre administrateur de vous attribuer le rôle IAM Consommateur d'utilisation du service (
roles/serviceusage.serviceUsageConsumer
) sur votre projet.
Champs d'application de l'accès à Logging
Les niveaux d'accès représentent l'ancienne méthode de spécification des autorisations associées aux comptes de service sur vos instances de VM Compute Engine.
Les champs d'application d'accès suivants s'appliquent à l'API Logging :
Champ d'application d'accès | Autorisations accordées |
---|---|
https://www.googleapis.com/auth/logging.read | roles/logging.viewer |
https://www.googleapis.com/auth/logging.write | roles/logging.logWriter |
https://www.googleapis.com/auth/logging.admin | Accès complet à l'API Logging. |
https://www.googleapis.com/auth/cloud-platform | Accès complet à l'API Logging et à toutes les autres API Google Cloud activées |
Pour en savoir plus sur l'utilisation de cette ancienne méthode pour définir les niveaux d'accès de vos comptes de service, consultez la page Autorisations de compte de service.