Collecter les journaux AWS Control Tower

Compatible avec :

Ce document explique comment ingérer des journaux AWS Control Tower dans Google Security Operations. AWS Control Tower permet de gérer la gouvernance, la conformité et la surveillance de la sécurité dans plusieurs comptes AWS. Cette intégration vous permet d'analyser les journaux d'AWS Control Tower pour une meilleure visibilité et une meilleure sécurité.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Instance Google SecOps
  • Accès privilégié à AWS

Configurer le bucket Amazon S3

  1. Créez un bucket Amazon S3 en suivant ce guide de l'utilisateur : Créer un bucket.
  2. Enregistrez le nom et la région du bucket pour une utilisation ultérieure.
  3. Créez un utilisateur en suivant ce guide : Créer un utilisateur IAM.
  4. Sélectionnez l'utilisateur créé.
  5. Sélectionnez l'onglet Informations d'identification de sécurité.
  6. Cliquez sur Créer une clé d'accès dans la section Clés d'accès.
  7. Sélectionnez Service tiers comme Cas d'utilisation.
  8. Cliquez sur Suivant.
  9. Facultatif : ajoutez un tag de description.
  10. Cliquez sur Créer une clé d'accès.
  11. Cliquez sur Télécharger le fichier CSV pour enregistrer la clé d'accès et la clé d'accès secrète pour une utilisation ultérieure.
  12. Cliquez sur OK.
  13. Sélectionnez l'onglet Autorisations.
  14. Cliquez sur Ajouter des autorisations dans la section Règles d'autorisation.
  15. Sélectionnez Ajouter des autorisations.
  16. Sélectionnez Joindre directement des règles.
  17. Recherchez et sélectionnez les règles AmazonS3FullAccess et CloudWatchLogsFullAccess.
  18. Cliquez sur Suivant.
  19. Cliquez sur Ajouter des autorisations.

Configurer CloudTrail dans AWS Control Tower

  1. Connectez-vous à l'AWS Management Console.
  2. Accédez à AWS Control Tower.
  3. Dans la barre de recherche, saisissez CloudTrail et sélectionnez-le dans la liste des services.
  4. Cliquez sur Create Trail (Créer un parcours) pour créer un parcours.

  5. Spécifiez les paramètres de la trace :

    • Nom du sentier : donnez un nom explicite au sentier (par exemple, ControlTowerTrail).
    • Appliquer la trace à toutes les régions : assurez-vous de sélectionner Oui pour Appliquer la trace à toutes les régions.
    • Événements de gestion : assurez-vous que les événements Lecture/Écriture sont définis sur Tous.
    • Facultatif : Événements de données : activez les événements de données S3 et Lambda pour capturer l'activité détaillée des données.
    • Facultatif : Validation des fichiers journaux : activez cette option pour vous assurer que les fichiers journaux ne sont pas falsifiés une fois stockés.
  6. Dans le sélecteur Événement, choisissez d'enregistrer les événements de gestion et les événements de données.

Configurer CloudTrail

  1. Accédez à la console IAM AWS.
  2. Cliquez sur Rôles.
  3. Recherchez le rôle utilisé par CloudTrail AWSServiceRoleForCloudTrail (il est créé automatiquement lorsque vous configurez CloudTrail).
  4. Dans l'onglet Autorisations du rôle, cliquez sur Attacher des règles.
  5. Recherchez CloudTrailS3DeliveryPolicy.
  6. Cochez la case à côté du règlement CloudTrailS3DeliveryPolicy.
  7. Cliquez sur Attach policy (Attacher la stratégie).
  8. Accédez à la console AWS CloudTrail.
  9. Dans la section Emplacement de stockage, sélectionnez S3 comme destination des fichiers journaux.
  10. Sélectionnez le bucket S3 que vous avez créé précédemment.
  11. Cliquez sur Autoriser lorsque vous êtes invité à accorder à CloudTrail l'autorisation d'écrire des journaux dans le bucket de votre choix.
  12. Vérifiez vos paramètres, puis cliquez sur Créer (ou Enregistrer les modifications si vous modifiez un parcours existant).

Configurer des flux

Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :

  • Paramètres SIEM> Flux
  • Plate-forme de contenu > Packs de contenu

Configurer des flux à partir de Paramètres SIEM > Flux

Pour configurer plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.

Pour configurer un seul flux :

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux AWS Control Tower).
  5. Sélectionnez Amazon S3 comme Type de source.
  6. Sélectionnez AWS Control Tower comme type de journal.
  7. Cliquez sur Suivant.
  8. Spécifiez les valeurs des paramètres d'entrée suivants :

    • Région : région dans laquelle se trouve le bucket Amazon S3.
    • URI S3 : URI du bucket.
      • s3://your-log-bucket-name/
        • Remplacez your-log-bucket-name par le nom réel de votre bucket S3.
    • L'URI est : sélectionnez Répertoire ou Répertoire incluant les sous-répertoires, selon la structure de votre bucket.
    • Options de suppression de la source : sélectionnez l'option de suppression en fonction de vos préférences d'ingestion.

    • ID de clé d'accès : clé d'accès de l'utilisateur disposant des autorisations de lecture du bucket S3.

    • Clé d'accès secrète : clé secrète de l'utilisateur avec les autorisations nécessaires pour lire le bucket S3.

    • Espace de noms de l'élément : espace de noms de l'élément.

    • Libellés d'ingestion : libellé à appliquer aux événements de ce flux.

  9. Cliquez sur Suivant.

  10. Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.

Configurer des flux depuis le Hub de contenu

Indiquez les valeurs des champs suivants :

  • Région : région dans laquelle se trouve le bucket Amazon S3.
  • URI S3 : URI du bucket.
    • s3://your-log-bucket-name/
      • Remplacez your-log-bucket-name par le nom réel de votre bucket S3.
  • L'URI est : sélectionnez Répertoire ou Répertoire incluant les sous-répertoires, selon la structure de votre bucket.
  • Options de suppression de la source : sélectionnez l'option de suppression en fonction de vos préférences d'ingestion.
  • ID de clé d'accès : clé d'accès de l'utilisateur disposant des autorisations de lecture du bucket S3.

  • Clé d'accès secrète : clé secrète de l'utilisateur avec les autorisations nécessaires pour lire le bucket S3.

Options avancées

  • Nom du flux : valeur préremplie qui identifie le flux.
  • Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
  • Espace de noms de l'élément : espace de noms associé au flux.
  • Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.

Table de mappage UDM

Champ du journal Mappage UDM Logique
awsAccountId target.user.group_identifiers ID du compte AWS associé à l'événement.
digestPublicKeyFingerprint target.file.sha1 Empreinte de la clé publique utilisée pour signer le résumé.
digestPublicKeyFingerprint target.resource.attribute.labels.value Empreinte de la clé publique utilisée pour signer le résumé.
digestS3Bucket target.resource.name Nom du bucket S3 dans lequel le résumé est stocké.
digestS3Object target.file.full_path Chemin d'accès à l'objet de synthèse dans le bucket S3.
digestSignatureAlgorithm network.tls.cipher Algorithme utilisé pour signer le condensé.
digestSignatureAlgorithm target.resource.attribute.labels.value Algorithme utilisé pour signer le condensé.
digestStartTime metadata.event_timestamp Heure de début de la période du récapitulatif. Utilisé comme heure de l'événement si eventTime n'est pas disponible.
eventCategory security_result.category_details Catégorie de l'événement.
eventID metadata.product_log_id Identifiant unique de l'événement.
eventName metadata.product_event_type Nom de l'événement.
eventName security_result.summary Nom de l'événement, utilisé pour générer le récapitulatif des résultats de sécurité.
eventSource target.application Source de l'événement.
eventTime metadata.event_timestamp Heure à laquelle l'événement s'est produit.
eventType additional.fields.value.string_value Le type d'événement.
logFiles.hashValue about.file.sha256 Hachage SHA-256 du fichier journal.
logFiles.s3Bucket about.resource.name Nom du bucket S3 dans lequel le fichier journal est stocké.
logFiles.s3Object about.file.full_path Chemin d'accès à l'objet de fichier journal dans le bucket S3.
previousDigestHashValue target.file.sha256 Hachage SHA-256 du condensé précédent.
recipientAccountId target.resource.attribute.labels.value ID de compte AWS du destinataire de l'événement.
Records.awsRegion principal.location.name Région AWS dans laquelle l'événement s'est produit.
Records.errorCode security_result.rule_id Code d'erreur associé à la requête, le cas échéant.
Records.errorMessage security_result.description Message d'erreur associé à la requête, le cas échéant.
Records.eventCategory security_result.category_details Catégorie de l'événement.
Records.eventID metadata.product_log_id Identifiant unique de l'événement.
Records.eventName metadata.product_event_type Nom de l'événement.
Records.eventName security_result.summary Nom de l'événement, utilisé pour générer le récapitulatif des résultats de sécurité.
Records.eventSource target.application Source de l'événement.
Records.eventTime metadata.event_timestamp Heure à laquelle l'événement s'est produit.
Records.eventType additional.fields.value.string_value Le type d'événement.
Records.requestID target.resource.attribute.labels.value ID de la demande.
Records.requestParameters.groupName target.group.group_display_name Nom du groupe, le cas échéant, associé à la demande.
Records.requestParameters.userName src.user.userid Nom de l'utilisateur, le cas échéant, associé à la demande.
Records.requestParameters.userName src.user.user_display_name Nom de l'utilisateur, le cas échéant, associé à la demande.
Records.responseElements.ConsoleLogin security_action Résultat de la tentative de connexion à la console.
Records.responseElements.ConsoleLogin security_result.summary Résultat de la tentative de connexion à la console, utilisé pour générer le récapitulatif des résultats de sécurité.
Records.sourceIPAddress principal.hostname Adresse IP du compte principal. Utilisé comme nom d'hôte s'il ne s'agit pas d'une adresse IP valide.
Records.sourceIPAddress principal.ip Adresse IP du compte principal.
Records.tlsDetails.cipherSuite network.tls.cipher Suite de chiffrement utilisée pour la connexion TLS.
Records.tlsDetails.tlsVersion network.tls.version Version de TLS utilisée pour la connexion.
Records.userAgent network.http.user_agent User-agent de la requête.
Records.userIdentity.accessKeyId additional.fields.value.string_value ID de clé d'accès utilisé pour la requête.
Records.userIdentity.accountId principal.user.group_identifiers ID de compte AWS de l'utilisateur.
Records.userIdentity.arn principal.user.attribute.labels.value ARN de l'utilisateur.
Records.userIdentity.arn target.user.userid ARN de l'utilisateur. Utilisé comme ID utilisateur si le nom d'utilisateur n'est pas disponible.
Records.userIdentity.principalId principal.user.product_object_id ID principal de l'utilisateur.
Records.userIdentity.sessionContext.attributes.mfaAuthenticated principal.user.attribute.labels.value Indique si l'authentification multifacteur a été utilisée pour la requête.
Records.userIdentity.sessionContext.sessionIssuer.userName principal.user.userid Nom d'utilisateur de l'utilisateur ayant émis la session.
Records.userIdentity.type principal.resource.type Type d'identité utilisé pour la requête.
Records.userIdentity.userName target.user.userid Le nom d'utilisateur de l'utilisateur.
- extensions.auth.mechanism Définissez-le sur "REMOTE".
- metadata.event_type Définissez la valeur sur "STATUS_UPDATE", "USER_RESOURCE_ACCESS", "USER_LOGIN" ou "GENERIC_EVENT" en fonction de eventName.
- metadata.log_type Défini sur "AWS_CONTROL_TOWER".
- metadata.product_name Définissez la valeur sur "AWS Control Tower".
- metadata.vendor_name Défini sur "AWS".
- principal.asset.attribute.cloud.environment Défini sur "AMAZON_WEB_SERVICES".
- security_result.action Définissez la valeur sur "ALLOW" (AUTORISER) ou "BLOCK" (BLOQUER) en fonction du code d'erreur.
- security_result.severity Définissez-le sur "INFORMATIONAL".

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.