Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurez une journalisation centralisée à l'échelle de l'entreprise à l'aide de Terraform
Créée par Aarti Rajput (AWS), Yashwant Patel (AWS) et Nishtha Yadav (AWS)
Récapitulatif
La journalisation centralisée est vitale pour l'infrastructure cloud d'une entreprise, car elle fournit une visibilité sur ses opérations, sa sécurité et sa conformité. Au fur et à mesure que votre entreprise adapte son AWS environnement à plusieurs comptes, une stratégie structurée de gestion des journaux devient fondamentale pour exécuter les opérations de sécurité, répondre aux exigences d'audit et atteindre l'excellence opérationnelle.
Ce modèle fournit un cadre évolutif et sécurisé pour centraliser les journaux provenant de multiples services, afin de permettre la gestion Comptes AWS des journaux à l'échelle de l'entreprise dans le cadre de déploiements complexes. AWS La solution est automatisée à l'aide de Terraform, un outil d'infrastructure en tant que code (IaC) HashiCorp qui garantit des déploiements cohérents et répétables et minimise la configuration manuelle. En combinant Amazon CloudWatch Logs, Amazon Data Firehose et Amazon Simple Storage Service (Amazon S3), vous pouvez mettre en œuvre un pipeline robuste d'agrégation et d'analyse des journaux qui fournit :
Gestion centralisée des journaux au sein de votre organisation dans AWS Organizations
Collecte de journaux automatisée avec contrôles de sécurité intégrés
Traitement évolutif des journaux et stockage durable
Rapports de conformité et pistes d'audit simplifiés
Informations opérationnelles et surveillance en temps réel
La solution collecte les journaux à partir des AWS Lambda conteneurs, des fonctions et des instances de base de données Amazon Elastic Kubernetes Service (Amazon EKS) via Logs. CloudWatch Il transmet automatiquement ces journaux vers un compte de journalisation dédié à l'aide de filtres CloudWatch d'abonnement. Firehose gère le pipeline de streaming de journaux à haut débit vers Amazon S3 pour un stockage à long terme. Amazon Simple Queue Service (Amazon SQS) est configuré pour recevoir des notifications d'événements Amazon S3 lors de la création d'un objet. Cela permet l'intégration avec les services d'analyse, notamment :
Amazon OpenSearch Service pour la recherche dans les journaux, la visualisation et les analyses en temps réel
Amazon Athena pour les requêtes basées sur SQL
Amazon EMR pour le traitement à grande échelle
Lambda pour une transformation personnalisée
Amazon QuickSight pour les tableaux de bord
Toutes les données sont cryptées à l'aide de AWS Key Management Service (AWS KMS), et l'ensemble de l'infrastructure est déployée à l'aide de Terraform pour une configuration cohérente dans tous les environnements.
Cette approche de journalisation centralisée permet aux entreprises d'améliorer leur niveau de sécurité, de respecter les exigences de conformité et d'optimiser l'efficacité opérationnelle de leur AWS infrastructure.
Conditions préalables et limitations
Prérequis
Une zone de landing zone pour votre organisation créée en utilisant AWS Control Tower
Account Factory pour Terraform (AFT), déployé et configuré avec les comptes requis
Terraform
pour le provisionnement de l'infrastructure AWS Identity and Access Management Rôles et politiques (IAM) pour l'accès entre comptes
Pour obtenir des instructions sur la configuration AWS Control Tower des comptes AFT et Application, consultez la section Epics.
Comptes obligatoires
Votre organisation AWS Organizations doit inclure les comptes suivants :
Compte d'application : un ou plusieurs comptes sources sur lesquels Services AWS (Amazon EKS, Lambda et Amazon RDS) s'exécutent et génèrent des journaux
Compte Log Archive : un compte dédié pour le stockage et la gestion centralisés des journaux
Versions du produit
AWS Control Tower version 3.1 ou ultérieure
Terraform version 0.15.0
ou ultérieure
Architecture
Le schéma suivant illustre une architecture de journalisation AWS centralisée qui fournit une solution évolutive pour collecter, traiter et stocker les journaux de plusieurs comptes d'applications dans un compte Log Archive dédié. Cette architecture gère efficacement les journaux provenant Services AWS notamment d'Amazon RDS, Amazon EKS et Lambda, et les achemine via un processus rationalisé vers les compartiments S3 régionaux du compte Log Archive.

Le flux de travail comprend cinq processus :
Processus de journalisation
Le processus de flux de journaux commence dans les comptes de l'application, où sont Services AWS générés différents types de journaux, tels que les journaux généraux, les journaux d'erreurs, les journaux d'audit, les journaux de requêtes lentes d'Amazon RDS, les journaux du plan de contrôle d'Amazon EKS et les journaux d'exécution et d'erreur de Lambda.
CloudWatch sert de point de collecte initial. Il rassemble ces journaux au niveau du groupe de journaux au sein de chaque compte d'application.
Dans CloudWatch, les filtres d'abonnement déterminent quels journaux doivent être transférés au compte central. Ces filtres vous permettent de contrôler de manière précise le transfert des journaux, afin que vous puissiez spécifier des modèles de journal exacts ou des flux de journaux complets à des fins de centralisation.
Transfert de journaux entre comptes
Les journaux sont transférés vers le compte Log Archive. CloudWatch les filtres d'abonnement facilitent le transfert entre comptes et préservent le contexte régional.
L'architecture établit plusieurs flux parallèles pour gérer efficacement différentes sources de journaux, afin de garantir des performances et une évolutivité optimales.
Traitement des journaux dans le compte Log Archive
Dans le compte Log Archive, Firehose traite les flux de journaux entrants.
Chaque région gère des flux de diffusion Firehose dédiés qui peuvent transformer, convertir ou enrichir les logs selon les besoins.
Ces flux Firehose fournissent les journaux traités aux compartiments S3 du compte Log Archive, qui se trouve dans la même région que les comptes de l'application source (région A dans le schéma) afin de respecter les exigences de souveraineté des données.
Notifications et flux de travail supplémentaires
Lorsque les logs atteignent leurs compartiments S3 de destination, l'architecture implémente un système de notification à l'aide d'Amazon SQS.
Les files d'attente SQS régionales permettent un traitement asynchrone et peuvent déclencher des flux de travail, des analyses ou des systèmes d'alerte supplémentaires en fonction des journaux stockés.
AWS KMS pour la sécurité
L'architecture intègre des éléments AWS KMS de sécurité. AWS KMS fournit des clés de chiffrement pour les compartiments S3. Cela garantit que tous les journaux stockés maintiennent le chiffrement au repos tout en conservant le chiffrement régional pour répondre aux exigences de résidence des données.
Outils
Services AWS
Amazon CloudWatch est un service de surveillance et d'observabilité qui collecte des données opérationnelles et de surveillance sous forme de journaux, de mesures et d'événements. Il fournit une vue unifiée des AWS ressources, des applications et des services qui s'exécutent sur AWS et sur des serveurs sur site.
CloudWatch Les filtres d'abonnement aux journaux sont des expressions qui correspondent à un modèle des événements de journal entrants et fournissent les événements de journal correspondants à la AWS ressource spécifiée pour un traitement ou une analyse ultérieurs.
AWS Control Tower Account Factory For Terraform (AFT) met en place un pipeline Terraform pour vous aider à approvisionner et à personnaliser des comptes dans. AWS Control Tower AFT fournit un provisionnement de comptes basé sur Terraform tout en vous permettant de gérer vos comptes avec. AWS Control Tower
Amazon Data Firehose fournit des données de streaming en temps réel vers des destinations telles qu'Amazon S3, Amazon Redshift et Amazon Service. OpenSearch Il s'adapte automatiquement au débit de vos données et ne nécessite aucune administration continue.
Amazon Elastic Kubernetes Service (Amazon EKS) est un service d'orchestration de conteneurs géré qui facilite le déploiement, la gestion et le dimensionnement d'applications conteneurisées à l'aide de Kubernetes. Il gère automatiquement la disponibilité et l'évolutivité des nœuds du plan de contrôle Kubernetes.
AWS Key Management Service (AWS KMS) crée et contrôle les clés de chiffrement pour chiffrer vos données. AWS KMS s'intègre Services AWS à d'autres services pour vous aider à protéger les données que vous stockez avec ces services.
AWS Lambdaest un service de calcul sans serveur qui vous permet d'exécuter du code sans provisionner ni gérer de serveurs. Il adapte automatiquement vos applications en exécutant du code en réponse à chaque déclencheur, et ne facture que le temps de calcul que vous utilisez.
Amazon Relational Database Service (Amazon RDS) est un service de base de données relationnelle géré qui facilite la configuration, l'exploitation et le dimensionnement d'une base de données relationnelle dans le cloud. Il fournit une capacité rentable et redimensionnable tout en automatisant les tâches d'administration fastidieuses.
Amazon Simple Queue Service (Amazon SQS) est un service de mise en file d'attente de messages qui vous permet de découpler et de dimensionner les microservices, les systèmes distribués et les applications sans serveur. Il élimine la complexité de la gestion et de l'exploitation d'un intergiciel orienté message.
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui offre évolutivité, disponibilité des données, sécurité et performances. Il peut stocker et récupérer n'importe quelle quantité de données n'importe où sur le Web.
Autres outils
Terraform
est un outil d'infrastructure en tant que code (IaC) HashiCorp qui vous aide à créer et à gérer des ressources cloud et sur site.
Code
Le code de ce modèle est disponible dans le référentiel de journalisation GitHub centralisé
Bonnes pratiques
Utilisez plusieurs Comptes AWS au sein d'une même organisation dans AWS Organizations. Cette pratique permet une gestion centralisée et une journalisation standardisée entre les comptes.
Configurez les compartiments S3 avec le versionnement, les politiques de cycle de vie et la réplication entre régions. Mettez en œuvre le chiffrement et la journalisation des accès pour des raisons de sécurité et de conformité.
Mettez en œuvre des normes de journalisation communes en utilisant le format JSON avec des horodatages et des champs standard. Utilisez une structure de préfixes et une corrélation cohérentes IDs pour faciliter le suivi et l'analyse.
Activez les contrôles de sécurité grâce au AWS KMS chiffrement et à l'accès avec le moindre privilège. Maintenez une AWS CloudTrail surveillance et une rotation régulière des clés pour une sécurité renforcée.
Configurez CloudWatch des métriques et des alertes pour le suivi des livraisons. Surveillez les coûts et les performances grâce à des notifications automatisées.
Configurez les politiques de rétention Amazon S3 pour répondre aux exigences de conformité et activez la journalisation des accès au serveur Amazon S3 pour suivre toutes les demandes adressées à vos compartiments S3. Tenez à jour la documentation relative aux politiques relatives aux compartiments S3 et aux règles de cycle de vie. Révisez régulièrement les journaux d'accès, les autorisations des compartiments et les configurations de stockage afin de garantir la conformité et les meilleures pratiques en matière de sécurité.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Configurez un AWS Control Tower environnement avec AFT. |
| Administrateur AWS |
Activez le partage des ressources pour l'organisation. |
| Administrateur AWS |
Vérifiez ou approvisionnez les comptes de l'application. | Pour configurer de nouveaux comptes d'application pour votre cas d'utilisation, créez-les via AFT. Pour plus d'informations, voir Provisionner un nouveau compte avec AFT dans la AWS Control Tower documentation. | Administrateur AWS |
Tâche | Description | Compétences requises |
---|---|---|
Copiez |
| DevOps ingénieur |
Vérifiez et modifiez les paramètres d'entrée pour configurer le compte de l'application. | Au cours de cette étape, vous configurez le fichier de configuration pour créer des ressources dans les comptes d'applications, notamment les groupes de CloudWatch journaux, les filtres CloudWatch d'abonnement, les rôles et politiques IAM, ainsi que les détails de configuration pour les fonctions Amazon RDS, Amazon EKS et Lambda. Dans votre
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Copiez |
| DevOps ingénieur |
Vérifiez et modifiez les paramètres d'entrée pour configurer le compte Log Archive. | Au cours de cette étape, vous configurez le fichier de configuration pour créer des ressources dans le compte Log Archive, notamment les flux de diffusion Firehose, les compartiments S3, les files d'attente SQS, ainsi que les rôles et politiques IAM. Dans le
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Option 1 - Déployez les fichiers de configuration Terraform depuis AFT. | Dans AFT, le pipeline AFT est déclenché une fois que vous avez envoyé le code contenant les modifications de configuration dans le GitHub Après avoir apporté des modifications à vos fichiers Terraform (
NoteSi vous utilisez une autre branche (par exemple | DevOps ingénieur |
Option 2 - Déployez le fichier de configuration Terraform manuellement. | Si vous n'utilisez pas AFT ou si vous souhaitez déployer la solution manuellement, vous pouvez utiliser les commandes Terraform suivantes à partir des dossiers
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Vérifiez les filtres d'abonnement. | Pour vérifier que les filtres d'abonnement transfèrent correctement les journaux des groupes de journaux du compte de l'application vers le compte Log Archive :
| DevOps ingénieur |
Vérifiez les streams Firehose. | Pour vérifier que les streams Firehose contenus dans le compte Log Archive traitent correctement les journaux de l'application :
| DevOps ingénieur |
Validez les compartiments S3 centralisés. | Pour vérifier que les compartiments S3 centralisés reçoivent et organisent correctement les journaux :
| DevOps ingénieur |
Validez les files d'attente SQS. | Pour vérifier que les files d'attente SQS reçoivent des notifications pour les nouveaux fichiers journaux :
| DevOps ingénieur |
Tâche | Description | Compétences requises |
---|---|---|
Option 1 - Désaffecter le fichier de configuration Terraform d'AFT. | Lorsque vous supprimez les fichiers de configuration Terraform et que vous appliquez les modifications, AFT lance automatiquement le processus de suppression des ressources.
| DevOps ingénieur |
Option 2 — Nettoyez les ressources Terraform manuellement. | Si vous n'utilisez pas AFT ou si vous souhaitez nettoyer les ressources manuellement, utilisez les commandes Terraform suivantes à partir des dossiers
| DevOps ingénieur |
Résolution des problèmes
Problème | Solution |
---|---|
La destination CloudWatch Logs n'a pas été créée ou est inactive. | Validez les éléments suivants :
|
Le filtre d'abonnement a échoué ou est bloqué en attente. | Vérifiez les éléments suivants :
|
Le flux de livraison Firehose n'affiche aucun enregistrement entrant. | Vérifiez les paramètres suivants :
|