Collecter les journaux d'accès AWS API Gateway

Version de l'analyseur : 7.0

Compatible avec :

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)

  1. Accédez à AWS Console > API Gateway.
  2. 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).

  3. 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).
  4. Cliquez sur Enregistrer.

Configurer un flux dans Google SecOps pour ingérer les journaux Amazon API Gateway

  1. Accédez à Paramètres > Gestion des données > Flux. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Flux.
  2. Cliquez sur + Ajouter un flux.
  3. Dans le champ Nom du flux, saisissez Amazon API Gateway - CloudWatch via Firehose.
  4. Sélectionnez Amazon Data Firehose comme type de source.
  5. Sélectionnez Amazon API Gateway comme type de journal.
  6. Cliquez sur Suivant.
  7. 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>
  8. Cliquez sur Suivant.
  9. Vérifiez la configuration du flux, puis cliquez sur Envoyer.
  10. Dans les Détails du flux, cliquez sur Générer une clé secrète, puis copiez la clé secrète.
  11. Copiez l'URL du point de terminaison HTTPS du flux depuis Informations sur le point de terminaison.
  12. Créez une clé API Google Cloud dans API et services > Identifiants > Créer des identifiants > Clé API, puis limitez-la à l'API Chronicle.
  13. Copiez et enregistrez la clé API dans un emplacement sécurisé.

Configurer Amazon Kinesis Data Firehose (directement vers Google SecOps)

  1. Dans la console AWS, accédez à Kinesis > Data Firehose > Create delivery stream (Créer un flux de diffusion).
  2. 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).
  3. Cliquez sur Créer un flux de diffusion. (Par exemple, cwlogs-to-secops.)

Configurer les autorisations IAM et s'abonner au groupe de journaux

  1. Dans la console AWS, accédez à IAM > Policies > Create policy > JSON (IAM > Règles > Créer une règle > JSON).
    1. 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.
  2. Nommez la règle CWLtoFirehoseWrite, puis cliquez sur Créer une règle.

  3. Accédez à IAM > Rôles > Créer un rôle.

  4. 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"
        }
      ]
    }
    
  5. Associez la stratégie CWLtoFirehoseWrite au rôle.

  6. Nommez le rôle CWLtoFirehoseRole, puis cliquez sur Créer un rôle.

  7. Accédez à CloudWatch > Journaux > Groupes de journaux.

  8. Sélectionnez le groupe de journaux API Gateway que vous avez créé précédemment.

  9. Ouvrez l'onglet Filtres d'abonnement, puis cliquez sur Créer.

  10. Choisissez Create Amazon Kinesis Data Firehose subscription filter (Créer un filtre d'abonnement Amazon Kinesis Data Firehose).

  11. 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.
  12. 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.