Automatisez l'évaluation des ressources AWS - Recommandations AWS

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.

Automatisez l'évaluation des ressources AWS

Créée par Naveen Suthar (AWS), Arun Bagal (AWS), Manish Garg (AWS) et Sandeep Gawande (AWS)

Référentiel de code : infrastructure-assessment-iac-automation

Environnement : PoC ou pilote

Technologies : infrastructure DevOps, gestion et gouvernance, opérations, sans serveur

Services AWS : Amazon Athena ; AWS CloudTrail ; AWS Lambda ; Amazon S3 ; Amazon QuickSight

Récapitulatif

Ce modèle décrit une approche automatisée pour configurer les fonctionnalités d'évaluation des ressources à l'aide de l'AWS Cloud Development Kit (AWS CDK). En utilisant ce modèle, les équipes opérationnelles collectent les détails de l'audit des ressources de manière automatisée et consultent les détails de toutes les ressources déployées dans un compte AWS sur un tableau de bord unique. Cela est utile dans les cas d'utilisation suivants :

Cette solution aidera également l'équipe de direction à obtenir des informations sur les ressources et les activités d'un compte AWS à partir d'un tableau de bord unique.

Remarque : Amazon QuickSight est un service payant. Avant de l'exécuter pour analyser les données et créer un tableau de bord, consultez les QuickSight tarifs Amazon.

Conditions préalables et limitations

Prérequis

Limites

  • Cette solution est déployée sur un seul compte AWS.

  • La solution ne suivra pas les événements survenus avant son déploiement, sauf si AWS CloudTrail a déjà été configuré et stocké des données dans un compartiment S3.

Versions du produit

  • AWS CDK version 2.55.1 ou ultérieure

  • Python version 3.9 ou ultérieure

Architecture

Pile technologique cible

  • Amazon Athena

  • AWS CloudTrail

  • AWS Glue

  • AWS Lambda

  • Amazon QuickSight

  • Amazon S3

Architecture cible

Le code AWS CDK déploiera toutes les ressources nécessaires pour configurer les fonctionnalités d'évaluation des ressources dans un compte AWS. Le schéma suivant montre le processus d'envoi de CloudTrail journaux vers AWS Glue, Amazon Athena et. QuickSight

Évaluation des ressources AWS avec AWS Glue, Amazon Athena et Amazon dans le cadre d'un processus QuickSight en six étapes.
  1. CloudTrail envoie les journaux vers un compartiment S3 à des fins de stockage.

  2. Une notification d'événement invoque une fonction Lambda qui traite les journaux et génère des données filtrées.

  3. Les données filtrées sont stockées dans un autre compartiment S3.

  4. Un robot d'exploration AWS Glue est configuré sur les données filtrées qui se trouvent dans le compartiment S3 afin de créer un schéma dans la table du catalogue de données AWS Glue.

  5. Les données filtrées sont prêtes à être consultées par Amazon Athena.

  6. Les données demandées sont accessibles à des QuickSight fins de visualisation.

Automatisation et évolutivité

  • Cette solution peut être étendue d'un compte AWS à plusieurs comptes AWS s'il existe une CloudTrail piste à l'échelle de l'organisation dans AWS Organizations. En déployant CloudTrail au niveau de l'organisation, vous pouvez également utiliser cette solution pour récupérer les détails de l'audit des ressources pour toutes les ressources requises.

  • Ce modèle utilise les ressources sans serveur AWS pour déployer la solution.

Outils

Services AWS

  • Amazon Athena est un service de requête interactif qui vous permet d'analyser les données directement dans Amazon S3 à l'aide du SQL standard.

  • AWS Cloud Development Kit (AWS CDK) est un framework de développement logiciel qui vous aide à définir et à provisionner l'infrastructure du cloud AWS sous forme de code.

  • AWS vous CloudFormation aide à configurer les ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie sur les comptes AWS et les régions AWS.

  • AWS vous CloudTrail aide à auditer la gouvernance, la conformité et le risque opérationnel de votre compte AWS.

  • AWS Glue est un service d'extraction, de transformation et de chargement (ETL) entièrement géré. Il vous aide à classer, nettoyer, enrichir et déplacer les données de manière fiable entre les magasins de données et les flux de données. Ce modèle utilise un robot d'exploration AWS Glue et une table du catalogue de données AWS Glue.

  • AWS Lambda est un service de calcul qui vous permet d'exécuter du code sans avoir à approvisionner ou à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.

  • Amazon QuickSight est un service de business intelligence (BI) à l'échelle du cloud qui vous permet de visualiser, d'analyser et de rapporter vos données dans un tableau de bord unique.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

Référentiel de code

Le code de ce modèle est disponible dans le GitHub infrastructure-assessment-iac-automationréférentiel.

Le référentiel de code contient les fichiers et dossiers suivants :

  • libdossier — Le CDK AWS construit des fichiers Python utilisés pour créer des ressources AWS

  • src/lambda_code— Le code Python exécuté dans la fonction Lambda

  • requirements.txt— La liste de toutes les dépendances Python qui doivent être installées

  • cdk.json— Le fichier d'entrée fournissant les valeurs requises pour faire tourner les ressources

Bonnes pratiques

Configurez la surveillance et les alertes pour la fonction Lambda. Pour plus d'informations, consultez la section Surveillance et résolution des problèmes des fonctions Lambda. Pour connaître les meilleures pratiques générales relatives à l'utilisation des fonctions Lambda, consultez la documentation AWS.

Épopées

TâcheDescriptionCompétences requises

Clonez le dépôt sur votre machine locale.

Pour cloner le référentiel, exécutez la commande git clone https://github.com/aws-samples/infrastructure-assessment-iac-automation.git.

AWS DevOps, DevOps ingénieur

Configurez l'environnement virtuel Python et installez les dépendances requises.

Pour configurer l'environnement virtuel Python, exécutez les commandes suivantes.

cd infrastructure-assessment-iac-automation python3 -m venv .venv source .venv/bin/activate

Pour configurer les dépendances requises, exécutez la commandepip install -r requirements.txt.

AWS DevOps, DevOps ingénieur

Configurez l'environnement AWS CDK et synthétisez le code AWS CDK.

  1. Pour configurer l'environnement AWS CDK dans votre compte AWS, exécutez la commandecdk bootstrap aws://ACCOUNT-NUMBER/REGION.

  2. Pour convertir le code en configuration de CloudFormation pile AWS, exécutez la commandecdk synth.

AWS DevOps, DevOps ingénieur
TâcheDescriptionCompétences requises

Exportez des variables pour le compte et la région où la pile sera déployée.

Pour fournir des informations d'identification AWS pour AWS CDK à l'aide de variables d'environnement, exécutez les commandes suivantes.

export CDK_DEFAULT_ACCOUNT=<12 Digit AWS Account Number> export CDK_DEFAULT_REGION=<region>
AWS DevOps, DevOps ingénieur

Configurez le profil de la CLI AWS.

Pour configurer le profil de la CLI AWS pour le compte, suivez les instructions de la documentation AWS.

AWS DevOps, DevOps ingénieur
TâcheDescriptionCompétences requises

Déployez des ressources dans le compte.

Pour déployer des ressources dans le compte AWS à l'aide d'AWS CDK, procédez comme suit :

  1. À la racine du référentiel cloné, dans le cdk.json fichier, entrez les paramètres suivants :

    • s3_context

    • ct_context

    • kms_context

    • lambda_context

    • glue_context

    • qs_context

    Ces valeurs définissent les configurations et la nomenclature des ressources. Les valeurs par défaut sont définies et peuvent être modifiées si nécessaire.

    Remarque : pour éviter une erreur indiquant que le compartiment S3 existe déjà, assurez-vous de fournir des noms uniques pour s3_context les output sections ct et.

  2. Pour déployer des ressources, exécutez la commandecdk deploy.

    La cdk deploy commande crée une CloudTrail ressource pour consigner les événements et enregistrer le fichier journal dans le compartiment S3 d'entrée. Les fichiers journaux du parcours seront traités par la fonction Lambda. Les résultats filtrés sont stockés dans le compartiment S3 de sortie et sont prêts à être utilisés par Amazon Athena et Amazon. QuickSight

AWS DevOps

Exécutez le robot d'exploration AWS Glue et créez la table du catalogue de données.

Un robot d'exploration AWS Glue est utilisé pour maintenir le schéma de données dynamique. La solution crée et met à jour des partitions dans la table du catalogue de données AWS Glue en exécutant régulièrement le crawler, comme défini par le planificateur de crawler AWS Glue. Une fois les données disponibles dans le compartiment S3 de sortie, procédez comme suit pour exécuter le robot d'exploration AWS Glue et créer le schéma de table du catalogue de données à des fins de test :

  1. Connectez-vous à l'AWS Management Console et accédez à la console AWS Glue.

  2. Dans le volet de navigation, sous Catalogue de données, sélectionnez Crawlers.

  3. Sélectionnez le iac-tool-qa-resource-iac-json-crawler crawler.

  4. Lancez le crawler.

  5. Une fois le robot d'exploration exécuté avec succès, il crée une table du catalogue de données AWS Glue. AWS QuickSight utilisera le tableau pour visualiser les données.

Remarque : Le code AWS CDK configure le robot d'exploration AWS Glue pour qu'il s'exécute à un moment précis, mais vous pouvez également l'exécuter à la demande.

AWS DevOps, DevOps ingénieur

Déployez la QuickSight construction.

  1. Pour déployer la QuickSight construction, décommentez le code entre #QuickSight setup - start et #QuickSight setup – ends dansresource_iac_tool_stack.py.

  2. Après avoir décommenté, exécutez la cdk deploy commande pour créer QuickSight DataSource et QuickSight DataSet dans le QuickSight compte.

AWS DevOps, DevOps ingénieur

Créez le QuickSight tableau de bord.

Pour créer l'exemple de QuickSight tableau de bord et d'analyse, procédez comme suit :

  1. Accédez à la QuickSight console et sélectionnez la région AWS dans laquelle les ressources sont déployées.

  2. Dans le volet de navigation, choisissez Datasets et vérifiez qu'un ensemble de données nommé ct-operations-iac-ds a été créé dans le jeu de QuickSight données Amazon.

    Si vous ne voyez pas le jeu de données, redéployez la QuickSight construction.

  3. Sélectionnez le ct-operations-iac-ds jeu de données, puis choisissez UTILISER DANS L'ANALYSE.

  4. Sélectionnez la feuille par défaut.

  5. Sélectionnez les colonnes correspondantes dans la liste des champs sur le côté gauche.

  6. Après avoir sélectionné les colonnes requises, sélectionnez le type visuel approprié pour afficher les données.

Pour plus d'informations, consultez Démarrage d'une analyse dans Amazon QuickSight et Types visuels dans Amazon QuickSight.

AWS DevOps, DevOps ingénieur
TâcheDescriptionCompétences requises

Supprimez les ressources AWS.

  1. Pour supprimer les ressources AWS déployées par la solution, exécutez la commandecdk destroy.

  2. Supprimez tous les objets des deux compartiments S3, puis retirez les compartiments.

    Pour plus d'informations, consultez la section Suppression d'un bucket.

AWS DevOps, DevOps ingénieur
TâcheDescriptionCompétences requises

Surveillez et nettoyez les ressources créées manuellement.

(Facultatif) Si votre organisation a des exigences de conformité pour créer des ressources à l'aide des outils IaC, vous pouvez garantir la conformité en utilisant l'automatisation des outils d'évaluation des ressources AWS pour récupérer les ressources provisionnées manuellement. Vous pouvez également utiliser l'outil pour importer les ressources dans un outil IaC ou pour les recréer. Pour surveiller les ressources provisionnées manuellement, effectuez les tâches de haut niveau suivantes :

  1. Déployez l'automatisation de l'outil d'évaluation des ressources AWS.

  2. Configurez une fonction Lambda pour interroger quotidiennement les tables Athena, trouver les données pertinentes sur les ressources provisionnées manuellement et les exporter vers un fichier de valeurs séparées par des virgules (CSV).

  3. Une fois la fonction Lambda exécutée, une notification contenant les données requises peut être envoyée aux parties prenantes concernées.

  4. Pour une conservation plus longue, le fichier .csv peut être stocké dans le compartiment S3.

  5. Sur la base des informations contenues dans le fichier .csv, supprimez les ressources créées manuellement ou importez-les dans une solution iAc existante.

AWS DevOps, DevOps ingénieur

Résolution des problèmes

ProblèmeSolution

AWS CDK renvoie des erreurs.

Pour obtenir de l'aide concernant les problèmes liés au CDK AWS, consultez la section Résolution des problèmes courants liés au CDK AWS.

Ressources connexes

Informations supplémentaires

Comptes multiples

Pour configurer les informations d'identification de l'interface de ligne de commande AWS pour plusieurs comptes, utilisez les profils AWS. Pour plus d'informations, consultez la section Configurer plusieurs profils dans Configuration de l'interface de ligne de commande AWS.

Commandes AWS CDK

Lorsque vous travaillez avec AWS CDK, gardez à l'esprit les commandes utiles suivantes :

  • Répertorie toutes les piles de l'application

    cdk ls
  • Émet le modèle AWS synthétisé CloudFormation

    cdk synth
  • Déploie la pile sur votre compte AWS et votre région par défaut

    cdk deploy
  • Compare la pile déployée avec l'état actuel

    cdk diff
  • Ouvre la documentation du kit AWS CDK

    cdk docs