Collecter les journaux d'accès AWS API Gateway
Version de l'analyseur : 7.0
Ce document explique comment ingérer les journaux d'accès Amazon API Gateway dans Google Security Operations à l'aide d'AWS CloudWatch Logs et de Kinesis Data Firehose. Amazon API Gateway fournit des API REST et HTTP pour créer et gérer des API à grande échelle. Les journaux d'accès permettent de surveiller l'utilisation des API et de résoudre les problèmes. Cette intégration diffuse ces journaux dans Google SecOps pour analyse et surveillance.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Instance Google SecOps
- Accès privilégié à AWS
Activer la journalisation des accès Amazon API Gateway (vers CloudWatch Logs)
- Accédez à AWS Console > API Gateway.
Pour les API REST :
- Ouvrez votre étape > Journaux/Traçage > activez la journalisation des accès.
Format de journal : sélectionnez JSON.
{ "requestId":"$context.requestId", "ip":"$context.identity.sourceIp", "requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod", "routeKey":"$context.routeKey", "status":"$context.status", "protocol":"$context.protocol", "responseLength":"$context.responseLength", "integrationLatency":"$context.integrationLatency", "error":"$context.error.message" }Groupe de journaux CloudWatch Logs : choisissez ou créez un groupe de journaux (par exemple,
/aws/apigateway/access).
Pour les API HTTP :
- Sélectionnez votre API > Surveiller > Journalisation.
- Sélectionnez Étape > Modifier.
- Activez la journalisation des accès.
- Utilisez le même format de journal JSON que ci-dessus.
- Groupe de journaux CloudWatch Logs : choisissez ou créez un groupe de journaux (par exemple,
/aws/apigateway/access).
Cliquez sur Enregistrer.
Configurer un flux dans Google SecOps pour ingérer les journaux Amazon API Gateway
- Accédez à Paramètres > Gestion des données > Flux. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Flux.
- Cliquez sur + Ajouter un flux.
- Dans le champ Nom du flux, saisissez
Amazon API Gateway - CloudWatch via Firehose. - Sélectionnez Amazon Data Firehose comme type de source.
- Sélectionnez Amazon API Gateway comme type de journal.
- Cliquez sur Suivant.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Séparateur de division :
n(facultatif) - Espace de noms de l'élément :
aws.api_gateway - Libellés d'ingestion : par exemple,
source=apigw_access,aws_region=<your-region>
- Séparateur de division :
- Cliquez sur Suivant.
- Vérifiez la configuration du flux, puis cliquez sur Envoyer.
- Dans les Détails du flux, cliquez sur Générer une clé secrète, puis copiez la clé secrète.
- Copiez l'URL du point de terminaison HTTPS du flux depuis Informations sur le point de terminaison.
- Créez une clé API Google Cloud dans API et services > Identifiants > Créer des identifiants > Clé API, puis limitez-la à l'API Chronicle.
- Copiez et enregistrez la clé API dans un emplacement sécurisé.
Configurer Amazon Kinesis Data Firehose (directement vers Google SecOps)
- Dans la console AWS, accédez à Kinesis > Data Firehose > Create delivery stream (Créer un flux de diffusion).
- Fournissez les informations de configuration suivantes :
- Source : sélectionnez PUT direct ou autres sources.
- Destination : sélectionnez Point de terminaison HTTP.
- URL du point de terminaison HTTP : saisissez
ENDPOINT_URL?key=API_KEY(utilisez l'URL du point de terminaison HTTPS du flux et la clé API de l'étape précédente). - Méthode HTTP : sélectionnez POST.
- Clé d'accès : collez la clé secrète générée dans le flux.
- Conseils de mise en mémoire tampon : définissez Taille de la mémoire tampon = 1 Mio, Intervalle de mise en mémoire tampon = 60 secondes.
- Compression : sélectionnez Désactivé.
- Sauvegarde S3 : sélectionnez Désactivée.
- Conservez les valeurs par défaut des paramètres retry (nouvelle tentative) et logging (journalisation).
- Cliquez sur Créer un flux de diffusion. (Par exemple,
cwlogs-to-secops.)
Configurer les autorisations IAM et s'abonner au groupe de journaux
- Dans la console AWS, accédez à IAM > Policies > Create policy > JSON (IAM > Règles > Créer une règle > JSON).
- Dans l'éditeur JSON, saisissez la stratégie suivante :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops" } ] }- Remplacez
<region>et<account-id>par votre région et votre ID de compte AWS.
Nommez la règle
CWLtoFirehoseWrite, puis cliquez sur Créer une règle.Accédez à IAM > Rôles > Créer un rôle.
Sélectionnez Règle de confiance personnalisée, puis saisissez les informations suivantes :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.<your-region>.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Associez la stratégie
CWLtoFirehoseWriteau rôle.Nommez le rôle
CWLtoFirehoseRole, puis cliquez sur Créer un rôle.Accédez à CloudWatch > Journaux > Groupes de journaux.
Sélectionnez le groupe de journaux API Gateway que vous avez créé précédemment.
Ouvrez l'onglet Filtres d'abonnement, puis cliquez sur Créer.
Choisissez Create Amazon Kinesis Data Firehose subscription filter (Créer un filtre d'abonnement Amazon Kinesis Data Firehose).
Ensuite, procédez à la configuration des éléments suivants, comme indiqué :
- Destination : flux de diffusion
cwlogs-to-secops. - Autorisation accordée : rôle
CWLtoFirehoseRole. - Nom du filtre : saisissez
all-events. - Motif de filtre : laissez ce champ vide pour envoyer tous les événements.
- Destination : flux de diffusion
Cliquez sur Démarrer la diffusion.
Journal des modifications
Afficher le journal des modifications de cet analyseur
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.