Intégrer la journalisation à Google SecOps
Ce document explique comment intégrer Cloud Logging à Google Security Operations.
Cas d'utilisation
L'intégration Logging utilise les fonctionnalités Google SecOps pour prendre en charge les cas d'utilisation suivants :
Récupération des journaux d'analyse : exécutez des requêtes avancées pour trouver des événements de sécurité spécifiques dans votre environnement Google Cloud lors d'une investigation.
Chasse aux menaces automatisée : utilisez des playbooks pour interroger périodiquement les journaux à la recherche d'indicateurs de compromission (IoC) connus ou de schémas suspects.
Avant de commencer
Avant de configurer l'intégration Logging dans Google SecOps, effectuez les étapes préalables suivantes :
Créez un compte de service et accordez-lui les rôles nécessaires.
Choisissez et configurez l'une des méthodes d'authentification suivantes :
Option 1 : Workload Identity (recommandée) : cette méthode utilise des jetons d'accès temporaires de courte durée par le biais de l'emprunt d'identité d'un compte de service. Vous n'avez donc pas besoin de stocker de secrets.
Option 2 : clé JSON du compte de service : cette méthode repose sur un fichier de clé secrète statique et durable. N'utilisez cette méthode que si l'authentification Workload Identity n'est pas disponible dans votre environnement.
Créer un compte de service
Pour créer un compte de service pour l'intégration, procédez comme suit :
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.
Cliquez sur Ajouter > Créer un compte de service.
Indiquez un nom (par exemple, "Intégration de la journalisation SecOps") et une description, puis cliquez sur Créer et continuer.
À l'étape Autoriser ce compte de service à accéder au projet, ajoutez le rôle Lecteur de journaux (
roles/logging.viewer).Cliquez sur OK. L'adresse e-mail de ce compte de service est utilisée lors de la configuration.
Configurer les identifiants Workload Identity
Choisissez cette méthode ou la méthode de clé JSON pour authentifier l'intégration. Nous vous recommandons d'utiliser une Workload Identity, car elle utilise
des jetons d'accès temporaires et éphémères à l'aide de l'emprunt d'identité d'un compte de service.
Identifier l'identité unique de l'instance
La dernière étape pour sécuriser l'accès consiste à accorder à votre instance Google SecOps l'autorisation d'usurper l'identité de votre compte de service.
Dans Google SecOps, accédez à Content Hub > Intégrations de réponse.
Recherchez et sélectionnez l'intégration Cloud Logging, puis saisissez l'adresse e-mail de votre compte de service dans Adresse e-mail Workload Identity.
Saisissez un ID de projet valide dans ID du projet de quota.
Cliquez sur Enregistrer > Tester. Le test devrait échouer.
Cliquez sur close_small à droite de Test et recherchez le message d'erreur pour l'adresse e-mail de l'identité commençant par
gke-init-python@...ousoar-python@....Copiez cette adresse e-mail unique.
Autoriser l'identité de l'instance dans Google Cloud
L'autorisation de l'identité unique récupérée permet l'emprunt d'identité du compte de service, ce qui permet à la plate-forme d'agir en votre nom sans clés statiques.
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.
Sélectionnez le compte de service cible, puis accédez à Autorisations > Accorder l'accès.
Collez l'adresse e-mail unique dans le champ Nouveaux comptes principaux, puis attribuez le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator).
Accorder l'accès au projet de quota
L'authentification avec une Workload Identity nécessite un Quota Project ID pour suivre l'utilisation de l'API et la facturation.
Dans la console Google Cloud , accédez à IAM et administration > IAM, puis sélectionnez le projet utilisé pour l'ID du projet de quota.
Recherchez votre compte de service, puis cliquez sur Modifier le compte principal.
Cliquez sur Ajouter un autre rôle, puis sélectionnez Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer).Cliquez sur Enregistrer.
Configurer une clé JSON
Les fichiers de clés secrètes statiques de longue durée nécessitent une gestion manuelle. Cette méthode ne doit être utilisée que si les identifiants Workload Identity ne sont pas disponibles.
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez votre compte de service.
Accédez à l'onglet Clés, puis cliquez sur Ajouter une clé > Créer une clé.
Sélectionnez le type de clé JSON, puis cliquez sur Créer.
Copiez l'intégralité du contenu du fichier téléchargé et collez-le dans
User's Service Accountlors de la configuration.
Paramètres d'intégration
L'intégration Logging nécessite les paramètres suivants :
| Paramètre | Description |
|---|---|
API Root |
Facultatif. URL de base de l'API Cloud Logging (par exemple, |
User's Service Account |
Facultatif. Contenu complet du fichier JSON de la clé du compte de service. N'utilisez ce paramètre que si vous vous authentifiez à l'aide d'une clé JSON. |
Workload Identity Email |
Facultatif. Adresse e-mail du client de votre compte de service. N'utilisez ce paramètre que si vous vous authentifiez à l'aide d'identifiants Workload Identity. |
Project ID |
Facultatif. ID du projet à utiliser dans l'intégration. Si aucune valeur n'est fournie, l'intégration récupère l'ID à partir des identifiants du compte de service. |
Quota Project ID |
Facultatif. ID du projet utilisé pour l'utilisation de l'API et la facturation. Ce paramètre est obligatoire lors de l'authentification à l'aide d'identifiants Workload Identity. |
Organization ID |
Facultatif. ID d'organisation utilisé pour définir le champ d'application des requêtes. |
Verify SSL |
Facultatif. Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion au serveur de journalisation. Cette option est activée par défaut. |
Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.
Vous pourrez apporter des modifications ultérieurement, si nécessaire. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.
Actions
Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis Votre espace de travail et Effectuer une action manuelle.
Exécuter la requête
Utilisez l'action Exécuter une requête pour exécuter des requêtes personnalisées dans Logging.
Cette action ne s'applique pas aux entités Google SecOps.
Entrées d'action
L'action Exécuter la requête nécessite les paramètres suivants :
| Paramètre | Description |
|---|---|
Project ID |
Optional ID du projet à utiliser dans l'intégration. Si vous ne définissez pas de valeur pour ce paramètre, l'intégration récupère l'ID du projet à partir de votre compte de service Google Cloud . |
Organization ID |
Optional ID d'organisation à utiliser dans l'intégration. Si vous ne définissez pas de valeur pour ce paramètre, l'intégration récupère l'ID du projet à partir de votre compte de service Google Cloud . |
Query |
Obligatoire Requête permettant de trouver les journaux. |
Time Frame |
Optional Période à partir de laquelle récupérer les résultats. Si vous sélectionnez Voici les valeurs possibles :
Last Hour. |
Start Time |
Optional Heure de début pour récupérer les résultats. Ce paramètre est obligatoire si vous avez sélectionné l'option Pour configurer ce paramètre, utilisez le format ISO 8601. |
End Time |
Optional Heure de fin pour récupérer les résultats. Si vous ne définissez pas de valeur pour ce paramètre et que vous sélectionnez l'option Pour configurer ce paramètre, utilisez le format ISO 8601. |
Max Results To Return |
Optional Nombre maximal de résultats à renvoyer. La valeur par défaut est 50. |
Sorties d'action
L'action Exécuter la requête fournit les sorties suivantes :
| Type de résultat de l'action | Disponibilité |
|---|---|
| Pièce jointe au mur des cas | Non disponible |
| Lien vers le mur des cas | Non disponible |
| Tableau du mur des cas | Non disponible |
| Table d'enrichissement | Non disponible |
| Résultat JSON | Disponible |
| Messages de sortie | Disponible |
| Résultat du script | Disponible |
Résultat JSON
L'exemple suivant décrit le résultat JSON reçu lors de l'utilisation de l'action Exécuter la requête :
[{
"protoPayload": {
"@type": "type.googleapis.com/google.cloud.audit.AuditLog",
"authenticationInfo": {
"principalEmail": "system:clouddns"
},
"authorizationInfo": [
{
"granted": true,
"permission": "io.k8s.coordination.v1.leases.update",
"resource": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock"
}
],
"methodName": "io.k8s.coordination.v1.leases.update",
"requestMetadata": {
"callerIp": "192.0.2.6",
"callerSuppliedUserAgent": "clouddns-leader-election"
},
"resourceName": "coordination.k8s.io/v1/namespaces/kube-system/leases/clouddns-lock",
"serviceName": "k8s.io",
"status": {
"code": 0
}
},
"insertId": "ID",
"resource": {
"type": "k8s_cluster",
"labels": {
"cluster_name": "CLUSTER_NAME",
"project_id": "PROJECT_ID",
"location": "us-central1"
}
},
"timestamp": "2024-09-18T09:46:38.647428Z",
"labels": {
"authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \"system:clouddns\" of ClusterRole \"system:clouddns-role\" to User \"system:clouddns\"",
"authorization.k8s.io/decision": "allow"
},
"logName": "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity",
"operation": {
"id": "ID",
"producer": "k8s.io",
"first": true,
"last": true
},
"receiveTimestamp": "2024-09-18T09:46:39.063264993Z"
}]
Messages de sortie
L'action Exécuter la requête fournit les messages de sortie suivants :
| Message de sortie | Description du message |
|---|---|
|
L'action a réussi. |
Error executing action "Execute Query". Reason:
ERROR_REASON |
Échec de l'action. Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants. |
Résultat du script
Le tableau suivant décrit les valeurs de sortie des résultats du script lorsque vous utilisez l'action Exécuter la requête :
| Nom du résultat du script | Valeur |
|---|---|
is_success |
True ou False |
Ping
Utilisez l'action Ping pour tester la connectivité à Logging.
Cette action ne s'applique pas aux entités Google SecOps.
Entrées d'action
Aucune.
Sorties d'action
L'action Ping fournit les résultats suivants :
| Type de résultat de l'action | Disponibilité |
|---|---|
| Pièce jointe au mur des cas | Non disponible |
| Lien vers le mur des cas | Non disponible |
| Tableau du mur des cas | Non disponible |
| Table d'enrichissement | Non disponible |
| Résultat JSON | Non disponible |
| Messages de sortie | Disponible |
| Résultat du script | Disponible |
Messages de sortie
L'action Ping fournit les messages de sortie suivants :
| Message de sortie | Description du message |
|---|---|
Successfully connected to the Cloud Logging server with
the provided connection parameters! |
L'action a réussi. |
Failed to connect to the Cloud Logging server! Error is
ERROR_REASON |
Échec de l'action. Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants. |
Résultat du script
Le tableau suivant décrit les valeurs de sortie des résultats du script lorsque vous utilisez l'action Ping :
| Nom du résultat du script | Valeur |
|---|---|
is_success |
True ou False |
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.