Ingérer les journaux AWS dans Google Security Operations
Ce document décrit la procédure à suivre pour configurer l'ingestion des journaux AWS CloudTrail et des données contextuelles dans Google Security Operations. Ces étapes s'appliquent également à l'ingestion de journaux provenant d'autres services AWS, tels que AWS GuardDuty, AWS VPC Flow, AWS CloudWatch et AWS Security Hub.
Pour ingérer les journaux d'événements, la configuration dirige les journaux CloudTrail vers un bucket Amazon Simple Storage Service (Amazon S3), éventuellement à l'aide d'une file d'attente Amazon Simple Queue Service (Amazon SQS). Si une file d'attente Amazon SQS est utilisée, Google Security Operations lit les notifications Amazon S3 envoyées à la file d'attente Amazon SQS et extrait les fichiers correspondants du bucket Amazon S3. C'est efficacement une version push d'un flux Amazon S3 et qui peut être utilisée pour d'obtenir un meilleur débit.
La première partie de ce document fournit des étapes concises pour utiliser Amazon S3 en tant que le type de source du flux ou, éventuellement, utiliser Amazon S3 avec Amazon SQS comme flux ; le type de source. La deuxième partie fournit des étapes plus détaillées avec des captures d'écran pour utiliser Amazon S3 comme type de source de flux. L'utilisation d'Amazon SQS n'est pas abordée dans la deuxième partie. La troisième partie explique comment ingérer le contexte AWS des données sur les hôtes, les services, les réseaux VPC et les utilisateurs.
Étapes de base pour ingérer des journaux à partir de S3 ou de S3 avec SQS
Cette section décrit la procédure de base pour ingérer les journaux AWS CloudTrail dans votre instance Google Security Operations. Les étapes suivantes décrivent comment procéder en utilisant Amazon S3 comme type de source de flux ou, si vous le souhaitez, Amazon S3 avec Amazon SQS comme type de source de flux.
Configurer AWS CloudTrail et S3
Dans cette procédure, vous allez configurer les journaux AWS CloudTrail pour qu'ils soient écrits dans un bucket S3.
- Dans la console AWS, recherchez CloudTrail.
- Cliquez sur Créer un essai.
- Indiquez un nom de sentier.
- Sélectionnez Créer un bucket S3. Vous pouvez également choisir d'utiliser un bucket S3 existant.
- Indiquez un nom dans le champ Alias KMS AWS ou sélectionnez une clé KMS AWS existante.
- Vous pouvez conserver les autres paramètres par défaut et cliquer sur Suivant.
- Sélectionnez Type d'événement, ajoutez les événements de données si nécessaire, puis cliquez sur Suivant.
- Vérifiez les paramètres dans Vérifier et créer, puis cliquez sur Créer une piste.
- Dans la console AWS, recherchez Amazon S3 Buckets (Buckets Amazon S3).
- Cliquez sur le bucket de journaux nouvellement créé, puis sélectionnez le dossier AWSLogs. Cliquez ensuite sur Copier l'URI S3 et enregistrez-le pour l'utiliser lors des étapes suivantes.
Créer une file d'attente SQS
Vous pouvez éventuellement utiliser une file d'attente SQS. Si vous utilisez une file d'attente SQS, il doit s'agir d'une file d'attente standard, et non d'une file d'attente FIFO.
Pour en savoir plus sur la création de files d'attente SQS, consultez la page Premiers pas avec Amazon SQS.
Configurer des notifications pour votre file d'attente SQS
Si vous utilisez une file d'attente SQS, configurez des notifications sur votre bucket S3 pour écrire dans votre file d'attente SQS. Veillez à associer une règle d'accès.
Configurer un utilisateur AWS IAM
Configurez un utilisateur AWS IAM que Google Security Operations utilisera pour accéder à la file d'attente SQS (le cas échéant) et au bucket S3.
- Dans la console AWS, recherchez IAM.
- Cliquez sur Utilisateurs, puis sur Ajouter des utilisateurs sur l'écran suivant.
- Attribuez un nom à l'utilisateur (par exemple, chronicle-feed-user), sélectionnez Clé d'accès - Accès programmatique comme Type d'identifiants AWS, puis cliquez sur Suivant : Autorisations.
- À l'étape suivante, sélectionnez Attach existing policies directly (Joindre directement des règles existantes), puis AmazonS3ReadOnlyAccess ou AmazonS3FullAccess, selon le cas. AmazonS3FullAccess est utilisé si Google Security Operations doit effacer les buckets S3 après avoir lu les journaux, afin d'optimiser les coûts de stockage d'AWS S3.
- Nous vous recommandons de remplacer l'étape précédente par la création d'une règle personnalisée pour limiter l'accès au bucket S3 spécifié. Cliquez sur Créer une règle, puis suivez la documentation AWS pour créer une règle personnalisée.
- Lorsque vous appliquez une stratégie, assurez-vous d'avoir inclus
sqs:DeleteMessage
. Google Security Operations ne peut pas supprimer les messages si l'autorisationsqs:DeleteMessage
n'est pas associée à la file d'attente SQS. Tous les messages sont cumulés côté AWS, ce qui entraîne un retard, car Google Security Operations tente à plusieurs reprises de transférer les mêmes fichiers. - Cliquez sur Suivant : Tags.
- Ajoutez des tags si nécessaire, puis cliquez sur Suivant : Vérification.
- Vérifiez la configuration, puis cliquez sur Créer un utilisateur.
- Copiez l'ID de clé d'accès et la clé d'accès secrète de l'utilisateur créé. Vous les utiliserez à l'étape suivante.
Créer le flux
Après avoir effectué les procédures précédentes, créez un flux pour ingérer les journaux AWS de votre bucket Amazon S3 dans votre instance Google Security Operations. Si vous utilisez une file d'attente SQS, sélectionnez Amazon SQS comme type de source au lieu de Amazon S3 dans la procédure suivante.
Pour créer un flux:
- Dans la barre de navigation, sélectionnez Paramètres > Paramètres du SIEM, puis Flux.
- Sur la page Flux, cliquez sur Ajouter.
- Dans la boîte de dialogue Ajouter un flux, sélectionnez Amazon S3 ou Amazon SQS dans la boîte de dialogue Type de source.
- Dans le menu Type de journal, sélectionnez AWS CloudTrail (ou un autre service AWS).
- Cliquez sur Suivant.
Saisissez les paramètres d'entrée de votre flux dans les champs.
Si le type de source est Amazon S3, procédez comme suit :Sélectionnez région, puis indiquez l'URI S3 du bucket Amazon S3 que vous avez copié précédemment. Vous pouvez également ajouter l'URI S3 à l'aide de la variable.
Dans l'exemple suivant, Google Security Operations analyse les journaux chaque fois pour un jour donné.{{datetime("yyyy/MM/dd")}}
s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
Pour URI EST, sélectionnez Répertoires, y compris les sous-répertoires. Sélectionnez l'option appropriée sous Source Deletion Option (Option de suppression de la source). Assurez-vous qu'il correspond aux autorisations du compte Utilisateur IAM que vous avez créé précédemment.
Indiquez l'ID de clé d'accès et la clé d'accès secrète du compte utilisateur IAM que vous avez créé précédemment.
Cliquez sur Suivant, puis sur Terminer.
Procédure détaillée pour ingérer des journaux à partir de S3
Configurer AWS CloudTrail (ou un autre service)
Pour configurer les journaux AWS CloudTrail et les écrire dans le bucket AWS S3 créé dans la procédure précédente, procédez comme suit :
- Dans la console AWS, recherchez CloudTrail.
Cliquez sur Créer un essai.
Indiquez un nom de sentier.
Sélectionnez Créer un bucket S3. Vous pouvez également choisir d'utiliser un bucket S3 existant.
Indiquez un nom dans le champ Alias KMS AWS ou sélectionnez une clé KMS AWS existante.
Vous pouvez conserver les autres paramètres par défaut et cliquer sur Suivant.
Sélectionnez Type d'événement, ajoutez les événements de données (si nécessaire), puis cliquez sur Suivant.
Vérifiez les paramètres de la section Vérifier et créer, puis cliquez sur Créer un essai.
Dans la console AWS, recherchez Buckets Amazon S3.
Cliquez sur le bucket de journaux nouvellement créé, puis sélectionnez le dossier AWSLogs. Cliquez ensuite sur Copier l'URI S3 et enregistrez-le pour l'utiliser aux étapes suivantes.
Configurer un utilisateur IAM AWS
Au cours de cette étape, nous allons configurer un utilisateur AWS IAM que Google Security Operations utilisera pour obtenir des flux de journaux à partir d'AWS.
Dans la console AWS, recherchez IAM.
Cliquez sur Utilisateurs, puis sur Ajouter des utilisateurs dans l'écran suivant.
Indiquez un nom pour l'utilisateur, par exemple chronicle-feed-user, sélectionnez le type d'identifiants AWS pour Access key - Programmatic access (Clé d'accès - Accès programmatique), puis cliquez sur Next: Permissions (Suivant : Autorisations).
À l'étape suivante, sélectionnez Attach existing policies directement (Associer directement des stratégies existantes) et choisissez AmazonS3ReadOnlyAccess (AmazonS3ReadOnlyAccess) ou AmazonS3FullAccess, selon le cas. AmazonS3FullAccess est utilisé si Google Security Operations doit effacer les buckets S3 après avoir lu les journaux, afin d'optimiser les coûts de stockage AWS S3. Cliquez sur Suivant : Tags.
Nous vous recommandons de remplacer l'étape précédente par la création d'une règle personnalisée pour limiter l'accès au bucket S3 spécifié. Cliquez sur Créer une règle, puis suivez la documentation AWS pour créer une règle personnalisée.
Ajoutez des balises si nécessaire, puis cliquez sur Suivant:Vérification.
Vérifiez la configuration, puis cliquez sur Créer un utilisateur.
Copiez l'ID de clé d'accès et la clé d'accès secrète de l'utilisateur créé, afin de les utiliser à l'étape suivante.
Configurer un flux dans Google Security Operations pour ingérer des journaux AWS
- Accédez aux paramètres de Google Security Operations, puis cliquez sur Flux.
- Cliquez sur Ajouter.
- Sélectionnez Amazon S3 pour Type de source.
- Sélectionnez AWS CloudTrail (ou un autre service AWS) comme Type de journal.
- Cliquez sur Suivant.
Sélectionnez region (région) et indiquez l'URI S3 du bucket Amazon S3 que vous avez copié précédemment. Vous pouvez également ajouter l'URI S3 avec :
{{datetime("yyyy/MM/dd")}}
Comme dans l'exemple suivant, afin que Google Security Operations n'analyse les journaux que pour un jour donné :
s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
Sous URI IS A (URI EST A), sélectionnez Directories incluant les sous-répertoires. Sélectionnez une option appropriée sous Source Deletion Option (Option de suppression de la source). Elle doit correspondre aux autorisations de l'utilisateur IAM que nous avons créé précédemment.
Indiquez l'ID de clé d'accès et la clé d'accès secrète du compte utilisateur IAM que nous avons créé précédemment.
Cliquez sur Suivant, puis sur Terminer.
Étapes d'ingestion des données de contexte AWS
Pour ingérer des données de contexte sur les entités AWS (telles que les hôtes, les instances et les utilisateurs), créez un pour chacun des types de journaux suivants, listés par description et par ingestion étiquette:
- HÉBERGEURS AWS EC2 (
AWS_EC2_HOSTS
) - INSTANCES AWS EC2 (
AWS_EC2_INSTANCES
) - VPC AWS EC2 (
AWS_EC2_VPCS
) - AWS IAM (Identity and Access Management) (
AWS_IAM
)
Pour créer un flux pour chaque type de journal listé ci-dessus, procédez comme suit :
- Dans la barre de navigation, sélectionnez Paramètres, Paramètres du SIEM, puis Flux.
- Sur la page Flux, cliquez sur Ajouter. La boîte de dialogue Ajouter un flux s'affiche.
- Dans le menu Type de source, sélectionnez API tierce.
- Dans le menu Type de journal, sélectionnez Hôtes AWS EC2.
- Cliquez sur Suivant.
- Saisissez les paramètres d'entrée du flux dans les champs.
- Cliquez sur Next (Suivant), puis sur Finish (Terminer).
Pour en savoir plus sur la configuration d'un flux pour chaque type de journal, consultez la documentation sur la gestion des flux suivante :
- HÉBERGEURS AWS EC2 (
AWS_EC2_HOSTS
) - INSTANCES AWS EC2 (
AWS_EC2_INSTANCES
) - VPC AWS EC2 (
AWS_EC2_VPCS
) - AWS Identity and Access Management (IAM) (
AWS_IAM
)
Pour obtenir des informations générales sur la création d'un flux, consultez le guide de l'utilisateur sur la gestion des flux ou l'API de gestion des flux.