Connecter Microsoft Sentinel à Amazon Web Services pour ingérer les journaux AWS EKS

Utilisez le connecteur EKS (Elastic Kubernetes Service) basé sur Amazon Web Services (AWS) S3 pour ingérer les journaux d’audit AWS EKS, collectés dans les compartiments AWS S3, pour Microsoft Sentinel. Les journaux d’audit AWS EKS sont des enregistrements détaillés des demandes de serveur d’API, des décisions d’authentification et des activités de cluster au sein de vos clusters Kubernetes. Ces enregistrements contiennent des informations telles que l’heure de réception de la demande, les spécificités de la demande, l’utilisateur qui effectue la demande et l’action entreprise. Cette analyse des journaux est essentielle pour maintenir la sécurité et la conformité des applications conteneurisées s’exécutant sur des clusters EKS.

Ce connecteur dispose d’un script d’intégration basé sur AWS CloudFormation pour simplifier la création des ressources AWS utilisées par le connecteur.

Importante

Vue d’ensemble

Le connecteur de données Amazon Web Services S3 EKS traite les cas d’usage suivants :

  • Surveillance de la sécurité kubernetes et détection des menaces : Analysez les journaux d’audit AWS EKS pour identifier et répondre aux menaces de sécurité telles que l’accès non autorisé, l’escalade de privilèges et les appels d’API suspects au sein de vos clusters Kubernetes. En ingérant ces journaux dans Microsoft Sentinel, vous pouvez utiliser son analytique avancée et son renseignement sur les menaces pour détecter et examiner les activités malveillantes ciblant vos charges de travail conteneurisées.

  • Conformité et audit pour les environnements conteneurisés : Les journaux d’audit AWS EKS fournissent des enregistrements détaillés de toutes les interactions du serveur d’API, qui sont essentielles pour la création de rapports de conformité et l’audit dans les environnements conteneurisés. Le connecteur garantit que ces journaux d’audit sont disponibles dans Microsoft Sentinel pour faciliter l’accès et l’analyse, ce qui permet de répondre aux exigences réglementaires en matière de sécurité des conteneurs.

  • DevSecOps et gouvernance de cluster : Surveillez les activités des développeurs, les modèles d’accès aux ressources et les modifications de configuration au sein de vos clusters EKS pour garantir des pratiques de gouvernance et de sécurité appropriées dans vos workflows DevSecOps.

Cet article explique comment configurer le connecteur Amazon Web Services S3 EKS. Le processus de configuration comprend deux parties : le côté AWS et le côté Microsoft Sentinel. Le processus de chaque côté produit des informations utilisées par l’autre côté. Cette authentification bidirectionnelle crée une communication sécurisée.

Configuration requise

  • Vous devez disposer d’une autorisation d’écriture sur l’espace de travail Microsoft Sentinel.

  • Installez la solution Amazon Web Services à partir du hub de contenu dans Microsoft Sentinel. Si vous avez déjà installé une version antérieure de la solution, mettez à jour la solution dans le hub de contenu pour vous assurer que vous disposez de la dernière version qui inclut ce connecteur. Pour plus d’informations, consultez Découvrir et gérer Microsoft Sentinel contenu prête à l’emploi.

  • Vous devez disposer d’un cluster EKS AWS existant avec la journalisation d’audit activée, ou avoir la possibilité d’activer la journalisation d’audit sur votre cluster EKS pendant le processus d’installation.

  • Vous devez disposer des autorisations AWS IAM appropriées pour :

    • Créer des rôles et des stratégies IAM
    • Créer des compartiments S3 et configurer des stratégies de compartiment
    • Créer des files d’attente SQS et configurer des stratégies de file d’attente
    • Créer des piles CloudFormation
    • Configurer les paramètres de journalisation du cluster EKS
    • Créer des flux de livraison Kinesis Data Firehose
    • Créer des fonctions lambda

Activer et configurer le connecteur Amazon Web Services S3 EKS

Pour activer et configurer le connecteur, effectuez les tâches suivantes :

  • Dans votre environnement AWS :

    La page du connecteur Amazon Web Services S3 EKS dans Microsoft Sentinel fournit des modèles de pile AWS CloudFormation téléchargeables qui automatisent les tâches AWS suivantes :

    • Configurez votre cluster AWS EKS pour envoyer des journaux d’audit à CloudWatch Logs.

    • Créez un flux de livraison Kinesis Data Firehose pour transformer et distribuer des journaux de CloudWatch vers S3.

    • Créez un compartiment S3 pour stocker les journaux d’audit traités.

    • Créez une file d’attente SQS (Simple Queue Service) pour fournir une notification lorsque de nouveaux fichiers journaux sont créés dans S3.

    • Créez un fournisseur d’identité web pour authentifier les utilisateurs auprès d’AWS via OpenID Connect (OIDC).

    • Créez un rôle supposé pour accorder des autorisations aux utilisateurs authentifiés par le fournisseur d’identité web OIDC pour accéder à vos ressources AWS.

    • Attachez les stratégies d’autorisations IAM appropriées pour accorder au rôle supposé l’accès aux ressources appropriées (compartiment S3, SQS).

    • Créez une fonction Lambda pour transformer les journaux d’audit EKS au format attendu par Microsoft Sentinel.

  • Dans Microsoft Sentinel :

    • Configurez le connecteur Amazon Web Services S3 EKS dans le portail Microsoft Sentinel en ajoutant des collecteurs de journaux qui interrogent la file d’attente SQS et récupèrent les données de journal à partir du compartiment S3. Consultez les instructions ci-dessous.

Configurer l’environnement AWS

Pour simplifier le processus d’intégration, la page du connecteur Amazon Web Services S3 EKS dans Microsoft Sentinel fournit des modèles téléchargeables à utiliser avec le service AWS CloudFormation. Le service CloudFormation utilise ces modèles pour créer automatiquement des piles de ressources dans AWS. Ces piles incluent les ressources décrites dans cet article, ainsi que les informations d’identification, les autorisations et les stratégies.

Remarque

Utilisez le processus de configuration automatique. Pour des cas particuliers, consultez les instructions de configuration manuelle.

Préparer les fichiers de modèle

Pour exécuter le script qui configure l’environnement AWS, procédez comme suit :

  1. Dans le Portail Azure, dans le menu de navigation Microsoft Sentinel, développez Configuration, puis sélectionnez Connecteurs de données.

    Dans le portail Defender, dans le menu de lancement rapide, développez Microsoft Sentinel > Configuration et sélectionnez Connecteurs de données.

  2. Sélectionnez Amazon Web Services S3 EKS dans la liste des connecteurs de données.

    Si vous ne voyez pas le connecteur, installez la solution Amazon Web Services à partir du hub de contenu sous Gestion de contenu dans Microsoft Sentinel, ou mettez à jour la solution vers la dernière version.

  3. Dans le volet d’informations du connecteur, sélectionnez Ouvrir la page du connecteur.

    Capture d’écran de la galerie de connecteurs de données montrant le connecteur AWS S3 EKS.

  4. Dans la section Configuration , sous 1. AWS CloudFormation Deployment, sélectionnez le lien AWS CloudFormation Stacks . Cette action ouvre la console AWS dans un nouvel onglet de navigateur.

  5. Revenez à l’onglet du portail dans lequel vous avez Microsoft Sentinel ouvert. Sélectionnez Télécharger sous Modèle 1 : Déploiement de l’authentification OpenID Connect pour télécharger le modèle qui crée le fournisseur d’identité web OIDC. Le modèle est téléchargé en tant que fichier JSON dans votre dossier de téléchargements désigné.

    Remarque

    Si vous disposez déjà d’un fournisseur d’identité web OIDC d’une configuration de connecteur AWS précédente, ignorez cette étape.

  6. Sélectionnez Télécharger sous Modèle 2 : Déploiement des ressources AWS EKS pour télécharger le modèle qui crée les autres ressources AWS. Le modèle est téléchargé en tant que fichier JSON dans votre dossier de téléchargements désigné.

    Capture d’écran de la page de configuration du connecteur AWS S3 EKS.

Créer des piles AWS CloudFormation

Revenez à l’onglet du navigateur de la console AWS, qui est ouvert sur la page AWS CloudFormation pour créer une pile.

Si vous n’êtes pas déjà connecté à AWS, connectez-vous maintenant. Vous êtes redirigé vers la page AWS CloudFormation.

Créer le fournisseur d’identité web OIDC

Importante

Si vous disposez déjà du fournisseur d’identité web OIDC d’une configuration de connecteur AWS précédente, ignorez cette étape et passez à Créer les ressources AWS restantes.
Si vous disposez déjà d’un fournisseur OIDC Connect configuré pour Microsoft Defender pour le cloud, ajoutez Microsoft Sentinel en tant qu’audience à votre fournisseur existant (Commercial : api://1462b192-27f7-4cb9-8523-0f4ecb54b47e, Government :api://d4230588-5f84-4281-a9c7-2c15194b28f7). N’essayez pas de créer un fournisseur OIDC pour Microsoft Sentinel.

Suivez les instructions de la page console AWS pour créer une pile.

  1. Spécifiez un modèle et chargez un fichier de modèle.

  2. Sélectionnez Choisir un fichier et recherchez le modèle 1 : OpenID connect authentication deployment.json fichier que vous avez téléchargé.

  3. Choisissez un nom pour la pile.

  4. Avancez dans le reste du processus et créez la pile.

Créer les ressources AWS restantes

  1. Revenez à la page des piles AWS CloudFormation et créez une pile.

  2. Sélectionnez Choisir un fichier et recherchez le modèle 2 : ressources AWS EKS deployment.json fichier que vous avez téléchargé.

  3. Choisissez un nom pour la pile.

  4. Lorsque vous y êtes invité, entrez les paramètres suivants :

    • EKSClusterName : entrez le nom de votre cluster EKS existant.
    • MICROSOFT SENTINEL ID de l’espace de travail : pour rechercher votre ID d’espace de travail :
      • Dans le Portail Azure, dans le menu de navigation Microsoft Sentinel, développez Configuration, puis sélectionnez Paramètres. Sélectionnez l’onglet Paramètres de l’espace de travail et recherchez l’ID de l’espace de travail dans la page Espace de travail Log Analytics.
      • Dans le portail Defender, dans le menu de lancement rapide, développez Système , puis sélectionnez Paramètres. Sélectionnez Microsoft Sentinel, puis paramètres Log Analytics sous Paramètres pour [WORKSPACE_NAME]. Recherchez l’ID de l’espace de travail dans la page espace de travail Log Analytics, qui s’ouvre dans un nouvel onglet de navigateur.
    • BucketName : entrez un nom unique pour le compartiment S3 où sont stockés les journaux d’audit EKS.
    • SentinelSQSQueueName : entrez un nom pour la file d’attente SQS (par défaut : MicrosoftSentinelEKSSqs).
    • AwsRoleName : entrez un nom pour le rôle IAM (doit commencer par « OIDC_ », valeur par défaut : OIDC_MicrosoftSentinelRoleEKS).
  5. Avancez dans le reste du processus et créez la pile.

  6. Une fois la création de la pile terminée, accédez à la section Sorties de la pile CloudFormation et notez les valeurs suivantes :

    • SentinelRoleArn : ARN du rôle IAM créé pour l’accès Microsoft Sentinel.
    • SentinelSQSQueueURL : URL de la file d’attente SQS.
    • Step1EnableEKSAuditLogging : commande AWS CLI pour activer la journalisation d’audit EKS.
    • Étape 2CreateSubscriptionFilter : commande AWS CLI pour créer le filtre d’abonnement CloudWatch Logs.

Activer la journalisation d’audit EKS et configurer la diffusion en continu des journaux

Après avoir créé les piles CloudFormation, activez la journalisation d’audit sur votre cluster EKS et configurez la diffusion en continu des journaux :

  1. Si la journalisation d’audit n’est pas déjà activée sur votre cluster EKS, exécutez la commande fournie dans la sortie Step1EnableEKSAuditLogging de la pile CloudFormation.

  2. Attendez environ cinq minutes que les journaux d’audit commencent à apparaître dans CloudWatch Logs.

  3. Exécutez la commande fournie dans la sortie Step2CreateSubscriptionFilter pour créer un filtre d’abonnement qui diffuse en continu les journaux d’audit de CloudWatch vers le flux de livraison Kinesis Data Firehose.

  4. La fonction Lambda transforme automatiquement les journaux d’audit EKS au format attendu par Microsoft Sentinel et les remet à S3, où ils déclenchent des notifications SQS pour l’ingestion.

Ajouter des collecteurs de journaux

Lorsque vous créez les piles de ressources et configurez la journalisation d’audit EKS, revenez à l’onglet du navigateur ouvert sur la page du connecteur de données dans Microsoft Sentinel et commencez la deuxième partie du processus de configuration.

  1. Dans la section Configuration , sous 2. Connectez de nouveaux collecteurs, sélectionnez Ajouter un nouveau collecteur.

    Capture d’écran de la deuxième partie de la configuration du connecteur AWS EKS.

  2. Entrez l’ARN de rôle du rôle IAM que vous avez créé. Utilisez la valeur de la sortie SentinelRoleArn de votre pile CloudFormation (par exemple, arn:aws:iam::{AWS_ACCOUNT_ID}:role/OIDC_MicrosoftSentinelRoleEKS).

  3. Entrez l’URL de file d’attente SQS que vous avez créée. Utilisez la valeur de la sortie SentinelSQSQueueURL de votre pile CloudFormation (par exemple, https://sqs.{AWS_REGION}.amazonaws.com/{AWS_ACCOUNT_ID}/MicrosoftSentinelEKSSqs).

  4. Sélectionnez Se connecter pour ajouter le collecteur. Cette action crée une règle de collecte de données pour que l’agent Azure Monitor récupère les journaux et les ingère dans la table AWSEKSLogs_CL dédiée de votre espace de travail Log Analytics.

    Capture d’écran de l’ajout d’un nouveau collecteur pour les journaux EKS.

Vérifier l’ingestion des données

  1. Après avoir configuré le connecteur, accédez à la page Journaux (ou à la page Repérage avancé dans le portail Defender) et exécutez la requête suivante. Si vous obtenez des résultats, le connecteur fonctionne correctement.

    AWSEKSLogs_CL
    | take 10
    
  2. Vous pouvez également exécuter des requêtes plus spécifiques pour explorer vos données d’audit EKS.

    // View recent EKS audit events by verb (API action)
    AWSEKSLogs_CL
    | where TimeGenerated > ago(1h)
    | summarize count() by Verb
    | order by count_ desc
    
    // Monitor authentication decisions
    AWSEKSLogs_CL
    | where TimeGenerated > ago(24h)
    | where AuthDecision != ""
    | summarize count() by AuthDecision, User
    | order by count_ desc
    
    // Track failed requests (non-200 response codes)
    AWSEKSLogs_CL
    | where TimeGenerated > ago(24h)
    | where ResponseCode != 200
    | project TimeGenerated, User, Verb, ObjectRef, ResponseCode, SourceIPs
    | order by TimeGenerated desc
    

Référence de schéma

Les journaux d’audit EKS sont ingérés dans la table AWSEKSLogs_CL avec le schéma suivant :

Column Type Description
TimeGenerated DateHeure Heure à laquelle l’événement d’audit a été généré
AwsAccountId string ID de compte AWS où se trouve le cluster EKS
Région string Région AWS où se trouve le cluster EKS
ClusterName string Nom du cluster EKS
Verbe string Verbe HTTP associé à la requête d’API (GET, POST, PUT, DELETE, etc.)
Utilisateur string Informations sur l’utilisateur qui effectue la demande
SourceIPs Dynamique Tableau d’adresses IP sources d’où provient la requête
UserAgent string Chaîne de l’agent utilisateur du client effectuant la requête
Objectref string Référence à l’objet Kubernetes accessible
ResponseCode int Code de réponse HTTP pour la requête d’API
Phase string Étape du traitement de la demande (RequestReceived, ResponseStarted, ResponseComplete, Panic)
AuthDecision string Décision d’autorisation prise par le serveur d’API
RawEvent Dynamique Données d’événements d’audit brutes complètes pour une analyse avancée

Résolution des problèmes

Problèmes courants et solutions

  • Aucune donnée n’apparaît dans AWSEKSLogs_CL table :

    • Vérifiez que la journalisation d’audit EKS est activée sur votre cluster.
    • Vérifiez que le filtre d’abonnement CloudWatch Logs est correctement configuré.
    • Vérifiez que la fonction Lambda traite les journaux sans erreurs. Vérifiez Les journaux CloudWatch pour les journaux de fonction Lambda.
    • Vérifiez que les notifications de compartiment S3 sont correctement configurées pour déclencher des messages SQS.
  • La création de la pile CloudFormation échoue :

    • Vérifiez que vous disposez des autorisations IAM suffisantes pour créer toutes les ressources requises.
    • Vérifiez que le nom de cluster EKS que vous avez fourni existe dans votre compte.
    • Vérifiez que le nom du compartiment S3 est globalement unique.
  • Erreurs d’authentification :

    • Vérifiez que le fournisseur d’identité web OIDC est correctement configuré.
    • Vérifiez que les autorisations de rôle IAM sont suffisantes pour accéder aux ressources S3 et SQS.
    • Vérifiez que l’ID d’espace de travail utilisé dans le modèle CloudFormation correspond à votre espace de travail Microsoft Sentinel.

Surveillance avancée

Si vous ne l’avez pas déjà fait, implémentez la surveillance de l’intégrité des connecteurs de données afin de savoir quand les connecteurs ne reçoivent pas de données ou rencontrent d’autres problèmes. Pour plus d’informations, consultez Surveiller l’intégrité de vos connecteurs de données.

Étapes suivantes

Dans ce document, vous avez appris à connecter les journaux d’audit AWS EKS à Microsoft Sentinel pour une surveillance complète de la sécurité Kubernetes. Pour en savoir plus sur Microsoft Sentinel, consultez les articles suivants :