Cette page décrit les journaux d'audit créés par Compute Engine dans le cadre des journaux d'audit Cloud.
Aperçu
Les services Google Cloud génèrent des journaux d'audit pour vous aider à déterminer qui fait quoi, où et quand dans vos ressources Google Cloud.
Vos projets Google Cloud ne contiennent que les journaux d'audit des ressources directement intégrées au projet Google Cloud. Les autres ressources Google Cloud, telles que les dossiers, les organisations et les comptes de facturation, contiennent les journaux d'audit de l'entité elle-même.
Pour découvrir Cloud Audit Logs, consultez la page présentation de Cloud Audit Logs. Pour en savoir plus sur le format des journaux d'audit, consultez la page Comprendre les journaux d'audit.
Journaux d'audit disponibles
Les types de journaux d'audit suivants sont disponibles pour Compute Engine :
-
Journaux d'audit pour les activités d'administration
Ils incluent les opérations d'écriture administrateur qui écrivent des métadonnées ou des informations de configuration.
Vous ne pouvez pas les désactiver.
-
Journaux d'audit pour l'accès aux données
Inclut les opérations de lecture administrateur qui lisent les métadonnées ou les informations de configuration. Inclut également les opérations de "lecture de données" et d'écriture de données qui lisent ou écrivent des données fournies par l'utilisateur.
Pour recevoir les journaux d'audit pour l'accès aux données, vous devez les activer explicitement.
-
Journaux d'audit d'événements système
Identifie les actions Google Cloud automatisées qui modifient la configuration des ressources.
Vous ne pouvez pas désactiver les journaux d'audit d'événement système.
Pour obtenir une description plus complète des types de journaux d'audit, consultez la section Types de journaux d'audit.
Opérations auditées
Le tableau suivant récapitule les opérations d'API correspondant à chaque type de journal d'audit dans Compute Engine :
Catégorie de journal d'audit | Sous-type | Opérations Compute Engine | Exemples |
---|---|---|---|
Journaux d'audit pour les activités d'administration | ND |
|
|
Journaux d'audit pour l'accès aux données1 | ADMIN_READ |
|
|
DATA_READ |
Récupérer le contenu de la console du port série | compute.instance.getSerialPortOutput |
|
Journaux d'audit d'événements système | ND |
|
|
1 Journaux d'audit pour l'accès aux données : contrairement aux journaux d'audit associés aux autres services, Compute Engine ne dispose que de journaux d'accès aux données ADMIN_READ
et n'offre généralement pas de journaux DATA_READ
et DATA_WRITE
. En effet, les journaux DATA_READ
et DATA_WRITE
ne sont utilisés que pour les services qui stockent et gèrent des données utilisateur, comme par exemple Cloud Storage, Spanner et Cloud SQL (cela ne s'applique pas à Compute Engine). Il existe une exception à cette règle : la méthode instance.getSerialPortOutput
génère un journal DATA_READ
, car elle lit les données directement à partir de l'instance de VM.
2 Connexion/Déconnexion du port série : pour en savoir plus sur les journaux d'audit de la console série, consultez la section Afficher les journaux d'audit de la console série.
Masquer les données dans les journaux d'audit
Les journaux d'audit enregistrent les données de demande et de réponse des actions d'API effectuées. Cependant, dans les cas suivants, les informations de demande ou de réponse ne sont pas disponibles ou sont masquées :
- Pour les requêtes d'API
instance.setMetadata
etproject.setCommonInstanceMetadata
, la partie des métadonnées du corps de la requête est masquée afin d'éviter la journalisation des informations sensibles envoyées dans les métadonnées. - Les champs sensibles sont masqués dans les requêtes, comme les clés privées pour les certificats SSL et les clés de chiffrement fournies par le client pour les disques.
- Le corps des réponses "get" et "list" est masquée pour éviter la journalisation des informations privées.
Format des journaux d'audit
Les entrées des journaux d'audit comprennent les objets suivants :
L'entrée de journal proprement dite, qui est un objet de type
LogEntry
. Les champs utiles sont les suivants :logName
, qui contient l'ID de ressource et le type de journal d'auditresource
, qui contient la cible de l'opération auditéetimeStamp
, qui indique l'heure à laquelle l'opération auditée a été effectuéeprotoPayload
, qui contient les informations auditées
Les données de journalisation d'audit, qui correspondent à un objet
AuditLog
inclus dans le champprotoPayload
de l'entrée de journalUn objet (facultatif) de type "informations d'audit propres au service". Pour les intégrations précédentes, cet objet est conservé dans le champ
serviceData
de l'objetAuditLog
. Les intégrations ultérieures utilisent le champmetadata
.
Pour en savoir plus sur les autres champs de ces objets, ainsi que sur leur interprétation, consultez la page Comprendre les journaux d'audit.
Nom du journal
Les noms des journaux Cloud Audit Logs incluent des identifiants de ressources qui désignent le projet Google Cloud ou toute autre entité Google Cloud dont ils dépendent et permettent également de déterminer si les journaux contiennent des données sur les activités d'administration, l'accès aux données, les refus de règles ou les événements système.
Voici les noms des journaux d'audit incluant des variables pour les identifiants de ressource :
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy
Nom du service
Les journaux d'audit Compute Engine utilisent les noms de service suivants :
compute.googleapis.com
ssh-serialport.googleapis.com
oslogin.googleapis.com
Pour obtenir la liste de tous les noms de service de l'API Cloud Logging et du type de ressource surveillée correspondant, consultez la section Mapper des services sur des ressources.
Types de ressources
Les journaux d'audit Compute Engine utilisent les types de ressources suivants pour les journaux d'audit :
Catégorie de type de ressource | Description | Exemples |
---|---|---|
Ressource d'API | Cette ressource consigne les opérations de l'API. | api |
Ressource auditée | Cette ressource consigne les opérations Google Cloud. Le type de ressource audité est principalement utilisé pour les nouvelles opérations qui ne correspondent pas aux autres catégories. | audited_resource |
Autoscaler | Cette ressource consigne les opérations de l'autoscaler. | autoscaler |
Ressource de déploiement | Cette ressource consigne les opérations de déploiement. | deployment |
Ressources Cloud Deployment Manager (deployment_manager_* ) |
Cette ressource consigne les opérations Cloud Deployment Manager. Les types de ressources |
|
Ressources Compute Engine (gce_* ) |
Cette ressource consigne les opérations Compute Engine. Les types de ressources |
|
Ressource de sécurité réseau | Cette ressource consigne les opérations de stratégie de sécurité réseau. | network_security_policy |
Ressources Cloud VPN (vpn_* ) |
Cette ressource consigne les opérations Cloud VPN. |
|
Pour obtenir la liste de tous les types de ressources surveillées Cloud Logging et des informations descriptives, consultez la section Types de ressources surveillées.
Identités des appelants
L'adresse IP de l'appelant est conservée dans le champ RequestMetadata.caller_ip
de l'objet AuditLog
. Logging peut masquer certaines identités et adresses IP d'appelant.
Pour en savoir plus sur les informations masquées dans les journaux d'audit, consultez la section Identités des appelants dans les journaux d'audit.
Activer la journalisation d'audit
Les journaux d'audit d'événements système sont toujours activés. Vous ne pouvez pas les désactiver.
Les journaux d'audit pour les activités d'administration sont toujours activés. Vous ne pouvez pas les désactiver.
Les journaux d'audit pour l'accès aux données sont désactivés par défaut et ne sont pas écrits à moins d'être explicitement activés (à l'exception de ceux pour BigQuery, qui ne peuvent pas être désactivés).
Pour savoir comment activer tout ou partie des journaux d'audit d'accès aux données, consultez la page Activer les journaux d'audit des accès aux données.
Autorisations et rôles
Les autorisations et les rôles IAM déterminent votre capacité à accéder aux données des journaux d'audit dans les ressources Google Cloud.
Lorsque vous décidez des autorisations et rôles spécifiques à Logging qui s'appliquent à votre cas d'utilisation, tenez compte des points suivants :
Le rôle Lecteur de journaux (
roles/logging.viewer
) vous donne un accès en lecture seule aux journaux d'audit des activités d'administration, des refus de règles et des événements système. Si vous ne disposez que de ce rôle, vous ne pouvez pas afficher les journaux d'audit d'accès aux données qui se trouvent dans le bucket_Default
.Le rôle Lecteur de journaux privés (
(roles/logging.privateLogViewer
) inclut les autorisations contenues dansroles/logging.viewer
et permet également de lire les journaux d'audit d'accès aux données dans le bucket_Default
.Notez que si ces journaux privés sont stockés dans des buckets définis par l'utilisateur, tout utilisateur autorisé à lire les journaux dans ces buckets peut lire les journaux privés. Pour en savoir plus sur les buckets de journaux, consultez la page Présentation du routage et du stockage.
Pour en savoir plus sur les autorisations et les rôles IAM qui s'appliquent aux données des journaux d'audit, consultez la page Contrôle des accès avec IAM.
Afficher les journaux
Vous pouvez interroger tous les journaux d'audit ou interroger les journaux selon leur nom de journal d'audit. Le nom du journal d'audit inclut l'identifiant de ressource du projet, du dossier, du compte de facturation ou de l'organisation Google Cloud dont vous souhaitez afficher les informations de journalisation d'audit.
Vos requêtes peuvent spécifier des champs LogEntry
indexés. Si vous utilisez la page Analyse de journaux, qui est compatible avec les requêtes SQL, vous pouvez afficher les résultats de votre requête sous forme de graphique.
Pour en savoir plus sur l'interrogation de journaux, consultez les pages suivantes :
- Créer des requêtes dans l'explorateur de journaux
- Interroger et afficher des journaux dans l'Analyse de journaux
- Exemples de requêtes pour des insights sur la sécurité.
Console
Vous pouvez utiliser l'explorateur de journaux de la console Google Cloud pour récupérer les entrées du journal d'audit de votre projet, dossier ou organisation Google Cloud :
-
Dans la console Google Cloud, accédez à la page Explorateur de journaux.
Accéder à l'explorateur de journaux
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.
Sélectionnez un projet, une organisation ou un dossier Google Cloud existant.
Pour afficher tous les journaux d'audit, saisissez l'une des requêtes suivantes dans le champ de l'éditeur de requête, puis cliquez sur Exécuter la requête :
logName:"cloudaudit.googleapis.com"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
Pour afficher les journaux d'audit d'une ressource et d'un type de journal d'audit spécifiques, accédez au volet Générateur de requêtes et procédez comme suit :
Dans Type de ressource, sélectionnez la ressource Google Cloud dont vous souhaitez afficher les journaux d'audit.
Dans Nom du journal, sélectionnez le type de journal d'audit que vous souhaitez afficher :
- Pour les journaux d'audit pour les activités d'administration, sélectionnez activity.
- Pour les journaux d'audit des accès aux données, sélectionnez data_access.
- Pour les journaux d'audit des événements système, sélectionnez system_event.
- Pour les journaux d'audit des refus de règles, sélectionnez policy.
Cliquez sur Exécuter la requête.
Si ces options ne sont pas visibles, cela signifie qu'aucun journal d'audit de ce type n'est disponible dans le projet, le dossier ou l'organisation Google Cloud.
Si vous rencontrez des problèmes lors de la tentative d'affichage de journaux dans l'explorateur de journaux, consultez les informations de dépannage.
Pour en savoir plus sur l'utilisation de l'explorateur de journaux pour effectuer des requêtes, consultez la page Créer des requêtes dans l'explorateur de journaux. Pour en savoir plus sur la synthèse des entrées de journal dans l'explorateur de journaux à l'aide de Gemini, consultez la page Synthétiser les entrées de journal avec l'assistance Gemini.
gcloud
Google Cloud CLI fournit une interface de ligne de commande à l'API Logging. Fournissez un identifiant de ressource valide dans chacun des noms de journaux. Par exemple, si votre requête inclut un PROJECT_ID, l'identifiant de projet que vous fournissez doit faire référence au projet Google Cloud actuellement sélectionné.
Pour lire les entrées de journal d'audit au niveau du projet Google Cloud, exécutez la commande suivante :
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \ --project=PROJECT_ID
Pour lire les entrées de journal d'audit au niveau d'un dossier, exécutez la commande suivante :
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \ --folder=FOLDER_ID
Pour lire les entrées de journal d'audit au niveau de l'organisation, exécutez la commande suivante :
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \ --organization=ORGANIZATION_ID
Pour lire les entrées de journal d'audit au niveau de votre compte de facturation Cloud, exécutez la commande suivante :
gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \ --billing-account=BILLING_ACCOUNT_ID
Ajoutez l'option --freshness
à votre commande pour lire les journaux datant de plus d'une journée.
Pour en savoir plus sur l'utilisation de gcloud CLI, consultez la page gcloud logging read
.
API
Lors de la création de vos requêtes, fournissez un identifiant de ressource valide dans chacun des noms de journaux. Par exemple, si votre requête inclut un PROJECT_ID, l'identifiant de projet que vous fournissez doit faire référence au projet Google Cloud actuellement sélectionné.
Par exemple, pour utiliser l'API Logging afin d'afficher les entrées de journal d'audit au niveau d'un projet, procédez comme suit :
Accédez à la section Essayer cette API dans la documentation de la méthode
entries.list
.Insérez les éléments suivants dans la partie Corps de la requête du formulaire Essayer cette API. En cliquant sur ce formulaire prérempli, vous remplissez automatiquement le corps de la requête mais vous devez fournir un ID de projet PROJECT_ID valide pour chaque nom de journal.
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Cliquez sur Exécuter.
Exemples de requêtes
Pour rechercher des journaux d'audit pour Compute Engine, utilisez les requêtes suivantes dans l'explorateur de journaux :
Nom de la requête | Expression |
---|---|
Erreur d'hôte | resource.type="gce_instance" protoPayload.serviceName="compute.googleapis.com" (protoPayload.methodName:"compute.instances.hostError" OR operation.producer:"compute.instances.hostError") log_id("cloudaudit.googleapis.com/system_event") resource.labels.instance_id="INSTANCE_ID" severity="INFO" |
Maintenance de l'hôte | resource.type="gce_instance" protoPayload.serviceName="compute.googleapis.com" (protoPayload.methodName:"OnHostMaintenance" OR operation.producer:"OnHostMaintenance") log_id("cloudaudit.googleapis.com/system_event") resource.labels.instance_id="INSTANCE_ID" severity=INFO |
Hôte migré | resource.type="gce_instance" protoPayload.serviceName="compute.googleapis.com" (protoPayload.methodName:"compute.instances.migrateOnHostMaintenance" OR operation.producer:"compute.instances.migrateOnHostMaintenance") log_id("cloudaudit.googleapis.com/system_event") resource.labels.instance_id="INSTANCE_ID" severity=INFO |
Instance arrêtée ou préemptée | resource.type="gce_instance" protoPayload.methodName=~"compute.instances.(guestTerminate|preempted)" log_id("cloudaudit.googleapis.com/activity") resource.labels.instance_id="INSTANCE_ID" |
Instance arrêtée par le système d'exploitation invité | resource.type="gce_instance" protoPayload.serviceName="compute.googleapis.com" (protoPayload.methodName:"compute.instances.guestTerminate" OR operation.producer:"compute.instances.guestTerminate") log_id("cloudaudit.googleapis.com/system_event") resource.labels.instance_id="INSTANCE_ID" severity=INFO |
Instance arrêtée lors de la maintenance de l'hôte | resource.type="gce_instance" protoPayload.serviceName="compute.googleapis.com" (protoPayload.methodName:"compute.instances.terminateOnHostMaintenance" OR operation.producer:"compute.instances.terminateOnHostMaintenance") log_id("cloudaudit.googleapis.com/system_event") resource.labels.instance_id="INSTANCE_ID" severity=INFO |
Instance créée | resource.type="gce_instance" protoPayload.methodName:"compute.instances.insert" log_id("cloudaudit.googleapis.com/activity") protoPayload.request.name="INSTANCE_NAME" |
Nom d'instance supprimé | resource.type="gce_instance" protoPayload.methodName:"compute.instances.delete" log_id("cloudaudit.googleapis.com/activity") protoPayload.resourceName:"INSTANCE_NAME" |
ID d'instance supprimé | resource.type="gce_instance" protoPayload.methodName:"compute.instances.delete" log_id("cloudaudit.googleapis.com/activity") resource.labels.instance_id="INSTANCE_ID" |
Instance redémarrée | resource.type="gce_instance" protoPayload.methodName=~ "compute.instances.(stop|reset|automaticRestart| guestTerminate|instanceManagerHaltForRestart)" (log_id("cloudaudit.googleapis.com/activity") OR log_id("cloudaudit.googleapis.com/system_event")) resource.labels.instance_id="INSTANCE_ID" |
Disque persistant créé | resource.type="gce_disk" protoPayload.methodName:"compute.disks.insert" log_id("cloudaudit.googleapis.com/activity") protoPayload.request.name="PD_NAME" |
Disque persistant supprimé | resource.type="gce_disk" protoPayload.methodName:"compute.disks.delete" log_id("cloudaudit.googleapis.com/activity") protoPayload.resourceName="PD_NAME" |
Nœuds ajoutés dans des nœuds à locataire unique | resource.type="gce_node_group" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName=~("compute.nodeGroups.addNodes" OR "compute.nodeGroups.insert") resource.labels.node_group_id="NODE_GROUP_ID" |
Procéder à l'autoscaling des événements dans les nœuds à locataire unique | resource.type="gce_node_group" log_id("cloudaudit.googleapis.com/system_event") protoPayload.methodName=~("compute.nodeGroups.deleteNodes" OR "compute.nodeGroups.addNodes") resource.labels.node_group_id="NODE_GROUP_ID" |
Instantané pris manuellement | resource.type="gce_disk" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName:"compute.disks.createSnapshot" protoPayload.request.sourceDisk:"PD_NAME" protoPayload.request.name="SNAPSHOT_NAME" |
Instantané programmé pris | resource.type="gce_disk" log_id("cloudaudit.googleapis.com/system_event") protoPayload.methodName="ScheduledSnapshots" protoPayload.response.operationType="createSnapshot" protoPayload.response.targetLink="PD_NAME" |
Instantané supprimé manuellement | resource.type="gce_snapshot" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName:"compute.snapshots.delete" protoPayload.resourceName:"SNAPSHOT_NAME" |
Programmation d'instantané créée | resource.type="gce_resource_policy" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName:"compute.resourcePolicies.insert" protoPayload.request.name="SCHEDULE_NAME" |
Programmation d'instantané supprimée | resource.type="gce_resource_policy" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName:"compute.resourcePolicies.delete" protoPayload.request.name="SCHEDULE_NAME" |
Programmation d'instantané associée | resource.type="gce_disk" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName:"compute.disks.addResourcePolicies" protoPayload.request.resourcePolicys:"SCHEDULE_NAME" protoPayload.resourceName:"PD_NAME" |
Programmation d'instantané dissociée | resource.type="gce_disk" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName:"compute.disks.removeResourcePolicies" protoPayload.request.resourcePolicys:"SCHEDULE_NAME" protoPayload.resourceName:"PD_NAME" |
Instance supprimée ou ajoutée au groupe d'instances | resource.type="gce_instance_group" protoPayload.methodName:"compute.instanceGroups.*" log_id("cloudaudit.googleapis.com/activity") resource.labels.instance_group_name="INSTANCE_GROUP_NAME" |
Modèle d'instance défini ou mis à jour pour un groupe d'instances géré | resource.type="gce_instance_group_manager" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName="v1.compute.instanceGroupManagers.setInstanceTemplate" resource.labels.instance_group_manager_name="INSTANCE_GROUP_NAME" |
Scaling vertical et horizontal d'un autoscaler de groupe d'instances géré | resource.type="autoscaler" resource.labels.project_id="PROJECT" resource.labels.autoscaler_name="AUTOSCALER_NAME" |
Règle de pare-feu détectée | resource.type="gce_firewall_rule" AND log_id("cloudaudit.googleapis.com/activity") AND protoPayload.methodName:"firewalls.delete" |
Pour utiliser les exemples de requêtes, procédez comme suit :
Remplacez les variables par vos propres informations de projet, puis copiez l'expression à l'aide de l'icône de presse-papiers content_copy.
-
Dans la console Google Cloud, accédez à la page Explorateur de journaux.
Accéder à l'explorateur de journaux
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Logging.
Activez Afficher la requête pour ouvrir le champ de l'éditeur de requête, puis collez l'expression dans le champ de l'éditeur de requête :
Cliquez sur Exécuter la requête. Les journaux correspondant à votre requête sont répertoriés dans le volet Résultats de la requête.
Acheminer les journaux d'audit
Vous pouvez acheminer les journaux d'audit vers des destinations compatibles de la même manière que vous pouvez acheminer d'autres types de journaux. Voici quelques raisons pour lesquelles vous pouvez acheminer vos journaux d'audit :
Pour conserver les journaux d'audit pendant une période plus longue ou pour utiliser des fonctionnalités de recherche plus puissantes, vous pouvez exporter des copies des journaux d'audit vers Cloud Storage, BigQuery ou Pub/Sub. Avec Pub/Sub, vous avez la possibilité d'acheminer vos journaux vers d'autres applications, d'autres dépôts, ainsi que vers des organisations tierces.
Pour gérer les journaux d'audit à l'échelle de votre organisation, vous pouvez créer des récepteurs agrégés capables d'exporter les journaux pour un projet Google Cloud spécifique ou pour l'ensemble des projets Google Cloud de l'organisation.
- Si les journaux d'audit des accès aux données que vous avez activés entraînent le dépassement du quota d'attribution de journaux défini pour vos projets Google Cloud, vous pouvez créer des récepteurs qui excluent les journaux d'audit des accès aux données de Logging.
Pour obtenir des instructions sur l'acheminement des journaux, consultez la section Acheminer les journaux vers les destinations compatibles.
Tarification
Pour en savoir plus sur les tarifs, consultez la section Synthèse des tarifs Cloud Logging.