Cloud Logging utilise les rôles et les autorisations Identity and Access Management (IAM) pour vous permettre de contrôler qui peut afficher, écrire et gérer les ressources Logging. Vos rôles IAM déterminent si vous pouvez créer des récepteurs ou des buckets de journaux, lire les données de journaux stockées dans un bucket de journaux ou accéder à des pages telles que l'explorateur de journaux. Lorsque vous exécutez une commande de l'API Cloud Logging ou de Google Cloud CLI, vos rôles IAM déterminent également si vous êtes autorisé à exécuter la commande.
Présentation
Vos rôles IAM déterminent les actions que vous pouvez effectuer dans Logging. Un rôle est un ensemble d'autorisations. 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.
Les rôles IAM sont accordés sur une ressource, telle qu'un projet, un dossier, un bucket ou une organisation Google Cloud . Par exemple, vous pouvez accorder à un compte principal le rôle "Lecteur de journaux" (roles/logging.viewer) sur un projet Google Cloud particulier.
Les sections Rôles prédéfinis et Rôles Logging de cette page fournissent des informations complètes sur les rôles et les autorisations Logging. D'autres sections de cette page fournissent des informations sur les rôles ou les autorisations pour des cas d'utilisation spécifiques.
Le reste de cette section explique comment accorder à un compte principal l'accès à des buckets de journaux ou lui accorder l'accès à certaines entrées de journal d'un bucket de journaux.
Accorder l'accès aux buckets de journaux
Le rôle Lecteur de journaux (roles/logging.viewer) permet à un compte principal d'accéder à toutes les données de journaux stockées dans les buckets de journaux _Required et _Default, à l'exception des journaux d'accès aux données. Si un compte principal doit accéder aux journaux d'accès aux données, attribuez-lui le rôle de lecteur de journaux privés (roles/logging.privateLogViewer).
Pour les buckets de journaux personnalisés, vous pouvez accorder l'accès à la vue _AllLogs ou à une vue de journaux personnalisée. Logging crée automatiquement la vue _AllLogs, qui inclut toutes les entrées de journal du bucket de journaux. Pour accorder l'accès à une vue de journaux, vous devez ajouter une liaison IAM à la stratégie IAM associée à la vue de journaux ou au projet. Pour en savoir plus, consultez Contrôler l'accès à une vue de journal.
Logging accepte également les tags sur les buckets de journaux, ce qui peut vous aider à comprendre vos coûts. Vous pouvez également utiliser des tags pour empêcher un utilisateur de supprimer un bucket de journaux. Pour en savoir plus, consultez Utiliser des tags pour gérer l'accès aux buckets de journaux.
Accorder l'accès à certaines entrées de journal dans un bucket de journaux
Pour accorder à un compte principal l'accès à certaines entrées de journal stockées dans un bucket de journaux, créez une vue de journal, puis accordez au compte principal l'accès à la vue de journal. Par exemple, vous pouvez créer une vue de journal sur le bucket de journaux _Default qui n'inclut que les entrées de journal dont le type de ressource est une instance Compute Engine.
Pour en savoir plus sur la création de vues de journaux et les différentes stratégies que vous pouvez utiliser pour accorder l'accès à la vue, consultez Configurer des vues de journaux sur un bucket de journaux.
Rôles prédéfinis
IAM fournit des rôles prédéfinis pour accorder un accès précis à des ressources Google Cloud spécifiques et 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 liste les rôles prédéfinis pour Logging. Pour chaque rôle, le tableau affiche le titre du rôle, sa description, les autorisations qu'il contient et le type de ressource de niveau le plus bas auquel les rôles peuvent être attribués. Vous pouvez attribuer les rôles prédéfinis au niveau du projet Google Cloud ou, dans la plupart des cas, à n'importe quel niveau supérieur de la hiérarchie des ressources. Pour limiter le rôle "Accesseur de vue de journaux" à une vue de journaux sur un bucket, utilisez des attributs de ressource pour les conditions IAM.
Pour obtenir la liste de toutes les autorisations individuelles contenues dans un rôle, consultez 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 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 Viewer( Provides access to view logs. 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. |
|
SQL Alert Writer Beta( Ability to write SQL Alerts. |
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Cloud Logging Service Agent( Grants a Cloud Logging Service Account the ability to create and link datasets. |
|
Les sections suivantes fournissent des informations supplémentaires pour vous aider à déterminer les rôles qui s'appliquent aux cas d'utilisation de vos comptes principaux.
Rôles Logging
Pour permettre à un utilisateur d'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, attribuez-lui le rôle "Rédacteur de configuration des journaux" (
roles/logging.configWriter). Ce rôle vous permet de créer ou de modifier les éléments suivants :Pour permettre à un utilisateur de lire les journaux dans les buckets
_Requiredet_Defaultou d'utiliser la page Explorateur de journaux, attribuez l'un des rôles suivants :- Pour accéder à tous les journaux du bucket
_Requiredet à la vue_Defaultdu bucket_Default, attribuez le rôle Lecteur de journaux (roles/logging.viewer). - Pour accéder à tous les journaux des buckets
_Requiredet_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 dans toutes les vues de journaux d'un projet, attribuez-lui le rôle IAM
roles/logging.viewAccessorsur le projet.Pour permettre à un utilisateur de lire uniquement les journaux d'une vue de journaux spécifique, vous avez deux options :
Créez une stratégie IAM pour la vue de journaux, puis ajoutez-y une liaison IAM qui accorde au compte principal l'accès à la vue de journaux.
Attribuez au compte principal le rôle IAM de
roles/logging.viewAccessorsur le projet contenant la vue de journaux, mais associez une condition IAM pour limiter l'attribution à la vue de journaux spécifique.
Pour en savoir plus sur la création de vues de journaux et l'octroi d'accès, consultez Configurer des vues de journaux sur un bucket de journaux.
Pour permettre à un utilisateur d'écrire des journaux à l'aide de l'API Logging, attribuez-lui le rôle "Rédacteur de journaux" (
roles/logging.logWriter). Ce rôle n'accorde pas de droits de lecture.Pour permettre au compte de service d'un récepteur d'acheminer les journaux vers un bucket d'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 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 , attribuez le rôle "Lecteur" (
roles/viewer).Ce rôle inclut toutes les autorisations accordées par le rôle de visionneuse de journaux (
roles/logging.viewer).Pour accorder un accès Éditeur à la plupart des services Google Cloud , attribuez le rôle Éditeur (
roles/editor).Ce rôle inclut toutes les autorisations accordées par le rôle de visionneuse de journaux (
roles/logging.viewer), ainsi que les autorisations d'écriture d'entrées de journal et de suppression de journaux. Toutefois, ce rôle ne permet pas aux utilisateurs de créer des récepteurs, de lire les journaux d'audit des accès aux données qui se trouvent dans le bucket_Defaultni 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 , attribuez le rôle "Propriétaire" (
roles/owner).
Attribution des rôles…
Pour savoir comment attribuer un rôle à un compte principal, consultez 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 indiqué 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 en savoir plus sur les rôles personnalisés, consultez Comprendre les rôles personnalisés IAM.
Autorisations Cloud Logging
Le tableau suivant est une liste partielle des autorisations nécessaires pour des fonctionnalités spécifiques de Cloud Logging. Ce tableau peut vous aider à identifier les autorisations dont vous avez besoin pour utiliser des pages telles que 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 |
| Afficher les journaux d'audit des accès aux données | logging.privateLogEntries.list |
| Afficher les récepteurs | logging.sinks.{list, get} |
| Afficher l'utilisation des journaux | logging.usage.get |
| Télécharger les journaux | logging.logEntries.{list, download}
Une seule de ces autorisations est nécessaire pour télécharger les journaux. Les rôles contenant les autorisations de téléchargement des journaux doivent être accordés au niveau du projet. Vous ne pouvez pas télécharger de journaux si un rôle contenant ces autorisations est accordé dans le fichier de stratégie IAM d'une vue de journaux. |
| Répertorier et afficher les champs d'application de journaux | logging.logScopes.{get, list} |
| Afficher le champ d'application des journaux par défaut | observability.scopes.get |
| Exclure des journaux | logging.exclusions.{list, create, get, update, delete}
Lorsque vous créez un rôle personnalisé incluant des autorisations pour gérer les filtres "Exclure", ajoutez les autorisations |
| Créer et utiliser des récepteurs | logging.sinks.{list, create, get, update, delete}
Lorsque vous créez un récepteur, vous devez également attribuer au compte de service un rôle IAM qui lui permet d'écrire des entrées de journal dans la destination. Pour en savoir plus, consultez Définir les autorisations de destination. Une fois vos entrées de journal acheminées vers une destination compatible, l'accès à ces entrées est entièrement contrôlé par les autorisations et les rôles IAM sur la destination. |
| Enregistrer et utiliser des requêtes privées | logging.queries.usePrivatelogging.queries.{listShared,getShared} |
| Enregistrer et utiliser des requêtes partagées | logging.queries.{share, getShared, updateShared, deleteShared,
listShared} |
| Créer et gérer des champs d'application des journaux | logging.logScopes.{create, delete, get, list, update} |
| Définir et gérer le champ d'action des journaux par défaut | observability.scopes.{get, update} |
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 Autorisations de l'interface de ligne de commande.