Création d'un rapport contenant les résultats de l'analyseur d'accès réseau relatifs à l'accès Internet entrant sur plusieurs comptes 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.

Création d'un rapport contenant les résultats de l'analyseur d'accès réseau relatifs à l'accès Internet entrant sur plusieurs comptes AWS

Créée par Mike Virgilio (AWS)

Récapitulatif

L'accès Internet entrant involontaire aux ressources AWS peut présenter des risques pour le périmètre de données d'une organisation. Network Access Analyzer est une fonctionnalité d'Amazon Virtual Private Cloud (Amazon VPC) qui vous aide à identifier les accès réseau non intentionnels à vos ressources sur Amazon Web Services (AWS). Vous pouvez utiliser Network Access Analyzer pour définir vos exigences en matière d'accès au réseau et pour identifier les chemins réseau potentiels qui ne répondent pas à vos exigences. Vous pouvez utiliser Network Access Analyzer pour effectuer les opérations suivantes :

  1. Identifiez les ressources AWS accessibles sur Internet via des passerelles Internet.

  2. Vérifiez que vos clouds privés virtuels (VPCs) sont correctement segmentés, par exemple en isolant les environnements de production et de développement et en séparant les charges de travail transactionnelles.

Network Access Analyzer analyse les conditions d' end-to-endaccessibilité du réseau et ne se limite pas à un seul composant. Pour déterminer si une ressource est accessible à Internet, Network Access Analyzer évalue la passerelle Internet, les tables de routage VPC, les listes de contrôle d'accès réseau (ACLs), les adresses IP publiques sur les interfaces réseau élastiques et les groupes de sécurité. Si l'un de ces composants empêche l'accès à Internet, Network Access Analyzer ne génère aucun résultat. Par exemple, si une instance Amazon Elastic Compute Cloud (Amazon EC2) possède un groupe de sécurité ouvert qui autorise le trafic en provenance 0/0 mais que l'instance se trouve dans un sous-réseau privé qui n'est pas routable depuis une passerelle Internet, Network Access Analyzer ne générera aucun résultat. Cela fournit des résultats très fidèles afin que vous puissiez identifier les ressources réellement accessibles depuis Internet.

Lorsque vous exécutez Network Access Analyzer, vous utilisez les étendues d'accès réseau pour définir vos exigences en matière d'accès au réseau. Cette solution identifie les chemins réseau entre une passerelle Internet et une interface réseau élastique. Dans ce modèle, vous déployez la solution dans un compte AWS centralisé de votre organisation, géré par AWS Organizations, et elle analyse tous les comptes de l'organisation, quelle que soit la région AWS.

Cette solution a été conçue avec les éléments suivants à l'esprit :

  • Les CloudFormation modèles AWS réduisent l'effort requis pour déployer les ressources AWS selon ce modèle.

  • Vous pouvez ajuster les paramètres des CloudFormation modèles et du script naa-script.sh au moment du déploiement afin de les personnaliser en fonction de votre environnement.

  • Les scripts Bash provisionnent et analysent automatiquement les étendues d'accès réseau pour plusieurs comptes, en parallèle.

  • Un script Python traite les résultats, extrait les données, puis consolide les résultats. Vous pouvez choisir de consulter le rapport consolidé contenant les résultats de Network Access Analyzer au format CSV ou dans AWS Security Hub. Un exemple de rapport CSV est disponible dans la section Informations supplémentaires de ce modèle.

  • Vous pouvez corriger les résultats ou les exclure des analyses futures en les ajoutant au fichier naa-exclusions.csv.

Conditions préalables et limitations

Prérequis

  • Un compte AWS pour l'hébergement de services et d'outils de sécurité, géré en tant que compte membre d'une organisation dans AWS Organizations. Dans ce modèle, ce compte est appelé compte de sécurité.

  • Dans le compte de sécurité, vous devez disposer d'un sous-réseau privé avec accès Internet sortant. Pour obtenir des instructions, consultez la section Créer un sous-réseau dans la documentation Amazon VPC. Vous pouvez établir un accès à Internet à l'aide d'une passerelle NAT ou d'un point de terminaison VPC d'interface.

  • Accès au compte de gestion AWS Organizations ou à un compte doté d'autorisations d'administrateur déléguées pour CloudFormation. Pour obtenir des instructions, voir Enregistrer un administrateur délégué dans la CloudFormation documentation.

  • Activez un accès fiable entre AWS Organizations et CloudFormation. Pour obtenir des instructions, consultez la section Activer l'accès sécurisé avec AWS Organizations dans la CloudFormation documentation.

  • Si vous téléchargez les résultats sur Security Hub, Security Hub doit être activé dans le compte et dans la région AWS où l' EC2 instance est mise en service. Pour plus d'informations, consultez Configuration d'AWS Security Hub.

Limites

  • Les chemins réseau entre comptes ne sont actuellement pas analysés en raison des limites de la fonctionnalité Network Access Analyzer.

  • Les comptes AWS cibles doivent être gérés en tant qu'organisation dans AWS Organizations. Si vous n'utilisez pas AWS Organizations, vous pouvez mettre à jour le CloudFormation modèle naa-execrole.yaml et le script naa-script.sh pour votre environnement. Vous fournissez plutôt une liste des comptes AWS IDs et des régions dans lesquels vous souhaitez exécuter le script.

  • Le CloudFormation modèle est conçu pour déployer l' EC2 instance dans un sous-réseau privé doté d'un accès Internet sortant. L'agent AWS Systems Manager (agent SSM) nécessite un accès sortant pour atteindre le point de terminaison du service Systems Manager, et vous avez besoin d'un accès sortant pour cloner le référentiel de code et installer les dépendances. Si vous souhaitez utiliser un sous-réseau public, vous devez modifier le modèle naa-resources.yaml pour associer une adresse IP élastique à l'instance. EC2

Architecture

Pile technologique cible

  • Analyseur d’accès réseau

  • EC2 Instance Amazon

  • Rôles dans AWS Identity and Access Management (IAM)

  • Compartiment Amazon Simple Storage Service (Amazon S3)

  • Rubrique Amazon Simple Notification Service (Amazon SNS)

  • AWS Security Hub (option 2 uniquement)

Architecture cible

Option 1 : accéder aux résultats dans un compartiment Amazon S3

Schéma d'architecture permettant d'accéder au rapport des résultats de l'analyseur d'accès réseau dans un compartiment Amazon S3

Le schéma montre le processus suivant :

  1. Si vous exécutez la solution manuellement, l'utilisateur s'authentifie auprès de l' EC2 instance à l'aide du Gestionnaire de session, puis exécute le script naa-script.sh. Ce script shell exécute les étapes 2 à 7.

    Si vous exécutez automatiquement la solution, le script naa-script.sh démarre automatiquement selon le calendrier que vous avez défini dans l'expression cron. Ce script shell exécute les étapes 2 à 7. Pour plus d'informations, voir Automatisation et mise à l'échelle à la fin de cette section.

  2. L' EC2 instance télécharge le dernier fichier naa-exception.csv depuis le compartiment S3. Ce fichier est utilisé ultérieurement dans le processus lorsque le script Python traite les exclusions.

  3. L' EC2 instance assume le rôle NAAEC2Role IAM, qui accorde des autorisations pour accéder au compartiment S3 et pour assumer les rôles NAAExecRole IAM dans les autres comptes de l'organisation.

  4. L' EC2 instance assume le rôle NAAExecRole IAM dans le compte de gestion de l'organisation et génère une liste des comptes de l'organisation.

  5. L' EC2 instance assume le rôle NAAExecRole IAM dans les comptes membres de l'organisation (appelés comptes de charge de travail dans le schéma d'architecture) et effectue une évaluation de la sécurité de chaque compte. Les résultats sont stockés sous forme de fichiers JSON sur l' EC2 instance.

  6. L' EC2 instance utilise un script Python pour traiter les fichiers JSON, extraire les champs de données et créer un rapport CSV.

  7. L' EC2 instance télécharge le fichier CSV dans le compartiment S3.

  8. Une EventBridge règle Amazon détecte le téléchargement du fichier et utilise une rubrique Amazon SNS pour envoyer un e-mail informant l'utilisateur que le rapport est complet.

  9. L'utilisateur télécharge le fichier CSV depuis le compartiment S3. L'utilisateur importe les résultats dans le modèle Excel et les examine.

Option 2 : accéder aux résultats dans AWS Security Hub

Schéma d'architecture permettant d'accéder aux résultats de l'analyseur d'accès au réseau via AWS Security Hub

Le schéma montre le processus suivant :

  1. Si vous exécutez la solution manuellement, l'utilisateur s'authentifie auprès de l' EC2 instance à l'aide du Gestionnaire de session, puis exécute le script naa-script.sh. Ce script shell exécute les étapes 2 à 7.

    Si vous exécutez automatiquement la solution, le script naa-script.sh démarre automatiquement selon le calendrier que vous avez défini dans l'expression cron. Ce script shell exécute les étapes 2 à 7. Pour plus d'informations, voir Automatisation et mise à l'échelle à la fin de cette section.

  2. L' EC2 instance télécharge le dernier fichier naa-exception.csv depuis le compartiment S3. Ce fichier est utilisé ultérieurement dans le processus lorsque le script Python traite les exclusions.

  3. L' EC2 instance assume le rôle NAAEC2Role IAM, qui accorde des autorisations pour accéder au compartiment S3 et pour assumer les rôles NAAExecRole IAM dans les autres comptes de l'organisation.

  4. L' EC2 instance assume le rôle NAAExecRole IAM dans le compte de gestion de l'organisation et génère une liste des comptes de l'organisation.

  5. L' EC2 instance assume le rôle NAAExecRole IAM dans les comptes membres de l'organisation (appelés comptes de charge de travail dans le schéma d'architecture) et effectue une évaluation de la sécurité de chaque compte. Les résultats sont stockés sous forme de fichiers JSON sur l' EC2 instance.

  6. L' EC2 instance utilise un script Python pour traiter les fichiers JSON et extraire les champs de données à importer dans Security Hub.

  7. L' EC2 instance importe les résultats de l'analyseur d'accès réseau dans Security Hub.

  8. Une EventBridge règle Amazon détecte l'importation et utilise une rubrique Amazon SNS pour envoyer un e-mail informant l'utilisateur que le processus est terminé.

  9. L'utilisateur consulte les résultats dans Security Hub.

Automatisation et évolutivité

Vous pouvez planifier cette solution pour exécuter le script naa-script.sh automatiquement selon un calendrier personnalisé. Pour définir un calendrier personnalisé, modifiez le paramètre dans le modèle naa-resources.yaml CloudFormation . CronScheduleExpression Par exemple, la valeur par défaut de 0 0 * * 0 exécute la solution tous les dimanches à minuit. Une valeur de 0 0 * 1-12 0 exécuterait la solution à minuit le premier dimanche de chaque mois. Pour plus d'informations sur l'utilisation des expressions cron, consultez les expressions Cron et rate dans la documentation de Systems Manager.

Si vous souhaitez ajuster le calendrier une fois la NAA-Resources pile déployée, vous pouvez modifier manuellement le calendrier cron dans/etc/cron.d/naa-schedule.

Outils

Services AWS

  • Amazon Elastic Compute Cloud (Amazon EC2) fournit une capacité de calcul évolutive dans le cloud AWS. Vous pouvez lancer autant de serveurs virtuels que vous le souhaitez et les augmenter ou les diminuer rapidement.

  • Amazon EventBridge est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, les fonctions AWS Lambda, les points de terminaison d'appel HTTP utilisant des destinations d'API ou les bus d'événements dans d'autres comptes AWS.

  • AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.

  • AWS Organizations est un service de gestion de comptes qui vous aide à consolider plusieurs comptes AWS au sein d'une organisation que vous créez et gérez de manière centralisée.

  • AWS Security Hub fournit une vue complète de votre état de sécurité dans AWS. Il vous permet également de vérifier que votre environnement AWS est conforme aux normes du secteur de la sécurité et aux meilleures pratiques.

  • Amazon Simple Notification Service (Amazon SNS) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.

  • 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.

  • AWS Systems Manager vous aide à gérer vos applications et votre infrastructure exécutées dans le cloud AWS. Il simplifie la gestion des applications et des ressources, réduit le délai de détection et de résolution des problèmes opérationnels et vous aide à gérer vos ressources AWS en toute sécurité à grande échelle. Ce modèle utilise Session Manager, une fonctionnalité de Systems Manager.

Référentiel de code

Le code de ce modèle est disponible dans le référentiel d'analyse multi-comptes de GitHub Network Access Analyzer. Le référentiel de code contient les fichiers suivants :

  • naa-script.sh — Ce script bash est utilisé pour démarrer une analyse Network Access Analyzer de plusieurs comptes AWS, en parallèle. Comme défini dans le CloudFormation modèle naa-resources.yaml, ce script est automatiquement déployé dans le dossier de l'instance. /usr/local/naa EC2

  • naa-resources.yaml — Vous utilisez ce CloudFormation modèle pour créer une pile dans le compte de sécurité de l'organisation. Ce modèle déploie toutes les ressources requises pour ce compte afin de prendre en charge la solution. Cette pile doit être déployée avant le modèle naa-execrole.yaml.

    Remarque : Si cette pile est supprimée et redéployée, vous devez reconstruire l'ensemble de NAAExecRole piles afin de rétablir les dépendances entre comptes entre les rôles IAM.

  • naa-execrole.yaml — Vous utilisez ce CloudFormation modèle pour créer un stack set qui déploie le rôle NAAExecRole IAM dans tous les comptes de l'organisation, y compris le compte de gestion.

  • naa-processfindings.py — Le script naa-script.sh appelle automatiquement ce script Python pour traiter les sorties JSON de Network Access Analyzer, exclure toute ressource dont le fonctionnement a été vérifié dans le fichier naa-exclusions.csv, puis générer un fichier CSV contenant les résultats consolidés ou importer les résultats dans Security Hub.

Épopées

TâcheDescriptionCompétences requises

Clonez le référentiel de code.

  1. Dans une interface de ligne de commande, remplacez votre répertoire de travail par l'emplacement où vous souhaitez stocker les fichiers d'exemple.

  2. Entrez la commande suivante.

    git clone https://github.com/aws-samples/network-access-analyzer-multi-account-analysis.git

AWS DevOps

Passez en revue les modèles.

  1. Dans le dépôt cloné, ouvrez les fichiers naa-resources.yaml et naa-execrole.yaml.

  2. Passez en revue les ressources créées par ces modèles et ajustez-les en fonction des besoins de votre environnement. Pour plus d'informations, consultez la section Utilisation des modèles dans la CloudFormation documentation.

  3. Enregistrez et fermez les fichiers naa-resources.yaml et naa-execrole.yaml.

AWS DevOps
TâcheDescriptionCompétences requises

Fournir des ressources dans le compte de sécurité.

À l'aide du modèle naa-resources.yaml, vous créez une CloudFormation pile qui déploie toutes les ressources requises dans le compte de sécurité. Pour obtenir des instructions, consultez la section Création d'une pile dans la CloudFormation documentation. Notez les points suivants lors du déploiement de ce modèle :

  1. Sur la page Spécifier le modèle, sélectionnez Le modèle est prêt, puis téléchargez le fichier naa-resources.yaml.

  2. Sur la page Spécifier les détails de la pile, dans le champ Nom de la pile, entrezNAA-Resources.

  3. Dans la section Paramètres, entrez les informations suivantes :

    • VPCId— Sélectionnez un VPC dans le compte.

    • SubnetId— Sélectionnez un sous-réseau privé ayant accès à Internet.

      Remarque : Si vous sélectionnez un sous-réseau public, il est possible que l' EC2 instance ne se voie pas attribuer d'adresse IP publique car le CloudFormation modèle, par défaut, ne fournit ni n'attache d'adresse IP élastique.

    • InstanceType— Conservez le type d'instance par défaut.

    • InstanceImageId— Conservez la valeur par défaut.

    • KeyPairName— Si vous utilisez SSH pour l'accès, spécifiez le nom d'une paire de clés existante.

    • PermittedSSHInbound— Si vous utilisez SSH pour l'accès, spécifiez un bloc CIDR autorisé. Si vous n'utilisez pas SSH, conservez la valeur par défaut de127.0.0.1.

    • BucketName— La valeur par défaut estnaa-<accountID>-<region>. Vous pouvez le modifier selon vos besoins. Si vous spécifiez une valeur personnalisée, l'ID du compte et la région sont automatiquement ajoutés à la valeur spécifiée.

    • EmailAddress— Spécifiez une adresse e-mail pour une notification Amazon SNS lorsque l'analyse est terminée.

      Remarque : La configuration de l'abonnement Amazon SNS doit être confirmée avant la fin de l'analyse, sinon aucune notification ne sera envoyée.

    • NAAEC2Role— Conservez la valeur par défaut, sauf si vos conventions de dénomination exigent un nom différent pour ce rôle IAM.

    • NAAExecRole— Conserve la valeur par défaut à moins qu'un autre nom ne soit utilisé lors du déploiement du fichier naa-execrole.yaml

    • Parallelism— Spécifiez le nombre d'évaluations parallèles à effectuer.

    • Regions— Spécifiez les régions AWS que vous souhaitez analyser.

    • ScopeNameValue— Spécifiez le tag qui sera attribué au scope. Cette balise est utilisée pour déterminer l'étendue de l'accès au réseau.

    • ExclusionFile— Spécifiez le nom du fichier d'exclusion. Les entrées de ce fichier seront exclues des résultats.

    • FindingsToCSV— Spécifiez si les résultats doivent être envoyés au format CSV. Les valeurs acceptées sont true etfalse.

    • FindingsToSecurityHub— Spécifiez si les résultats doivent être importés dans Security Hub. Les valeurs acceptées sont true etfalse.

    • EmailNotificationsForSecurityHub— Spécifiez si l'importation des résultats dans Security Hub doit générer des notifications par e-mail. Les valeurs acceptées sont true etfalse.

    • ScheduledAnalysis— Si vous souhaitez que la solution s'exécute automatiquement selon un calendriertrue, entrez puis personnalisez le calendrier dans le CronScheduleExpression paramètre. Si vous ne souhaitez pas exécuter la solution automatiquement, entrezfalse.

    • CronScheduleExpression— Si vous exécutez la solution automatiquement, entrez une expression cron pour définir le calendrier. Pour plus d'informations, voir Automatisation et mise à l'échelle dans la section Architecture de ce modèle.

  1. Sur la page de révision, sélectionnez Les ressources suivantes nécessitent des fonctionnalités : [AWS::IAM::Role], puis choisissez Create Stack.

  2. Une fois la pile créée avec succès, dans la CloudFormation console, dans l'onglet Outputs, copiez le NAAEC2Role Amazon Resource Name (ARN). Vous utiliserez cet ARN ultérieurement lors du déploiement du fichier naa-execrole.yaml.

AWS DevOps

Fournissez le rôle IAM dans les comptes des membres.

Dans le compte de gestion AWS Organizations ou dans un compte doté d'autorisations d'administrateur déléguées pour CloudFormation, utilisez le modèle naa-execrole.yaml pour créer un stack set. CloudFormation Le stack set déploie le rôle NAAExecRole IAM dans tous les comptes membres de l'organisation. Pour obtenir des instructions, consultez la section Créer un ensemble de piles avec des autorisations gérées par les services dans la CloudFormation documentation. Notez les points suivants lors du déploiement de ce modèle :

  1. Sous Préparer le modèle, sélectionnez Le modèle est prêt, puis téléchargez le fichier naa-execrole.yaml.

  2. Sur la page Spécifier StackSet les détails, nommez l'ensemble de pilesNAA-ExecRole.

  3. Dans la section Paramètres, entrez les informations suivantes :

    • AuthorizedARN— Entrez l'NAAEC2RoleARN que vous avez copié lors de la création de la NAA-Resources pile.

    • NAARoleName— Conservez la valeur par défaut, NAAExecRole sauf si un autre nom a été utilisé lors du déploiement du fichier naa-resources.yaml.

  4. Sous Autorisations, choisissez Autorisations gérées par le service.

  5. Sur la page Définir les options de déploiement, sous Cibles de déploiement, choisissez Déployer vers l'organisation et acceptez toutes les valeurs par défaut.

    Remarque : si vous souhaitez que les piles soient déployées simultanément sur tous les comptes membres, définissez le nombre maximal de comptes simultanés et la tolérance d'échec sur une valeur élevée, telle que 100.

  6. Sous Régions de déploiement, choisissez la région dans laquelle l' EC2 instance de Network Access Analyzer est déployée. Les ressources IAM étant mondiales et non régionales, le rôle IAM est déployé dans toutes les régions actives.

  7. Sur la page de révision, sélectionnez Je reconnais qu'AWS CloudFormation peut créer des ressources IAM avec des noms personnalisés, puis choisissez Create StackSet.

  8. Surveillez l'onglet Stack instances (pour le statut des comptes individuels) et l'onglet Opérations (pour le statut général) afin de déterminer quand le déploiement est terminé.

AWS DevOps

Attribuez le rôle IAM dans le compte de gestion.

À l'aide du modèle naa-execrole.yaml, vous créez une CloudFormation pile qui déploie le rôle NAAExecRole IAM dans le compte de gestion de l'organisation. Le stack set que vous avez créé précédemment ne déploie pas le rôle IAM dans le compte de gestion. Pour obtenir des instructions, consultez la section Création d'une pile dans la CloudFormation documentation. Notez les points suivants lors du déploiement de ce modèle :

  1. Sur la page Spécifier le modèle, sélectionnez Le modèle est prêt, puis téléchargez le fichier naa-execrole.yaml.

  2. Sur la page Spécifier les détails de la pile, dans le champ Nom de la pile, entrezNAA-ExecRole.

  3. Dans la section Paramètres, entrez les informations suivantes :

    • AuthorizedARN— Entrez l'NAAEC2RoleARN que vous avez copié lors de la création de la NAA-Resources pile.

    • NAARoleName— Conservez la valeur par défaut, NAAExecRole sauf si un autre nom a été utilisé lors du déploiement du fichier naa-resources.yaml.

  4. Sur la page de révision, sélectionnez Les ressources suivantes nécessitent des fonctionnalités : [AWS::IAM::Role], puis choisissez Create Stack.

AWS DevOps
TâcheDescriptionCompétences requises

Personnalisez le script shell.

  1. Connectez-vous au compte de sécurité de l'organisation.

  2. À l'aide du gestionnaire de session, connectez-vous à l' EC2 instance de Network Access Analyzer que vous avez précédemment provisionnée. Pour obtenir des instructions, voir Se connecter à votre instance Linux à l'aide du gestionnaire de session. Si vous ne parvenez pas à vous connecter, consultez la section Dépannage de ce modèle.

  3. Entrez les commandes suivantes pour ouvrir le fichier naa-script.sh afin de le modifier.

    sudo -i cd /usr/local/naa vi naa-script.sh
  4. Passez en revue et modifiez les paramètres et variables ajustables de ce script en fonction des besoins de votre environnement. Pour plus d'informations sur les options de personnalisation, consultez les commentaires au début du script.

    Par exemple, au lieu d'obtenir une liste de tous les comptes membres de l'organisation à partir du compte de gestion, vous pouvez modifier le script pour spécifier le compte AWS IDs ou les régions AWS que vous souhaitez scanner, ou vous pouvez référencer un fichier externe contenant ces paramètres.

  5. Enregistrez et fermez le fichier naa-script.sh.

AWS DevOps

Analysez les comptes cibles.

  1. Entrez les commandes suivantes : Cela exécute le script naa-script.sh.

    sudo -i cd /usr/local/naa screen ./naa-script.sh

    Remarques :

    • La screen commande permet au script de continuer à s'exécuter en cas d'expiration de la connexion ou de perte de l'accès à la console.

    • Une fois le scan lancé, vous pouvez forcer le détachement de l'écran en appuyant sur Ctrl+A D. L'écran se détache et vous pouvez fermer la connexion à l'instance pendant que l'analyse se poursuit.

    • Pour reprendre une session détachée, connectez-vous à l'instance, entrez sudo -i puis entrezscreen -r.

  2. Surveillez la sortie pour détecter toute erreur afin de vous assurer que le script fonctionne correctement. Pour un exemple de sortie, consultez la section Informations supplémentaires de ce modèle.

  3. Attendez que l’analyse se termine. Si vous avez configuré les notifications par e-mail, vous recevez un e-mail lorsque les résultats ont été chargés dans le compartiment S3 ou importés dans Security Hub.

AWS DevOps

Option 1 — Récupérez les résultats depuis le compartiment S3.

  1. Téléchargez le fichier CSV depuis le naa-<accountID>-<region> bucket. Pour obtenir des instructions, consultez la section Téléchargement d'un objet dans la documentation Amazon S3.

  2. Supprimez le fichier CSV du compartiment S3. Il s'agit d'une bonne pratique en matière d'optimisation des coûts. Pour obtenir des instructions, consultez Supprimer des objets dans la documentation Amazon S3.

AWS DevOps

Option 2 — Vérifiez les résultats dans Security Hub.

  1. Ouvrez la console Security Hub à l'adresse https://console.aws.amazon.com/securityhub/.

  2. Choisissez Findings dans le volet de navigation.

  3. Consultez les résultats de l'analyseur d'accès réseau. Pour obtenir des instructions, consultez la section Affichage des listes de résultats et des informations détaillées dans la documentation de Security Hub.

    Remarque : Vous pouvez rechercher des résultats en ajoutant un titre, en commençant par un filtre et en saisissantNetwork Access Analyzer.

AWS DevOps
TâcheDescriptionCompétences requises

Corriger les résultats.

Corrigez tous les résultats auxquels vous souhaitez remédier. Pour plus d'informations et pour connaître les meilleures pratiques relatives à la création d'un périmètre autour de vos identités, ressources et réseaux AWS, consultez Création d'un périmètre de données sur AWS (livre blanc AWS).

AWS DevOps

Excluez les ressources dont les chemins réseau ont été vérifiés.

Si Network Access Analyzer génère des résultats pour des ressources qui devraient être accessibles depuis Internet, vous pouvez ajouter ces ressources à une liste d'exclusion. La prochaine fois que Network Access Analyzer s'exécutera, il ne générera aucun résultat pour cette ressource.

  1. Accédez au script naa-script.sh /usr/local/naa, puis ouvrez-le. Notez la valeur de la S3_EXCLUSION_FILE variable.

  2. Si la valeur de la S3_EXCLUSION_FILE variable esttrue, téléchargez le fichier naa-exclusions.csv depuis le naa-<accountID>-<region> bucket. Pour obtenir des instructions, consultez la section Téléchargement d'un objet dans la documentation Amazon S3.

    Si la valeur de la S3_EXCLUSION_FILE variable estfalse, naviguez jusqu'au fichier naa-exclusions.csv, /usr/local/naa puis ouvrez-le.

    Remarque : Si la valeur de la S3_EXCLUSION_FILE variable estfalse, le script utilise une version locale du fichier d'exclusions. Si vous modifiez ultérieurement la valeur entrue, le script remplace la version locale par le fichier du compartiment S3.

  3. Dans le fichier naa-exclusions.csv, entrez les ressources que vous souhaitez exclure. Entrez une ressource par ligne et utilisez le format suivant.

    <resource_id>,<secgroup_id>,<sgrule_cidr>,<sgrule_portrange>,<sgrule_protocol>

    Voici un exemple de ressource.

    eni-1111aaaaa2222bbbb,sg-3333ccccc4444dddd,0.0.0.0/0,80 to 80,tcp

  4. Enregistrez et fermez le fichier naa-exclusions.csv.

  5. Si vous avez téléchargé le fichier naa-exclusions.csv depuis le compartiment S3, chargez la nouvelle version. Pour obtenir des instructions, consultez la section Chargement d'objets dans la documentation Amazon S3.

AWS DevOps
TâcheDescriptionCompétences requises

Mettez à jour le script naa-script.sh.

Si vous souhaitez mettre à jour le script naa-script.sh vers la dernière version du dépôt, procédez comme suit :

  1. Connectez-vous à l' EC2 instance à l'aide du gestionnaire de session. Pour obtenir des instructions, voir Se connecter à votre instance Linux à l'aide du gestionnaire de session.

  2. Entrez la commande suivante.

    sudo -i
  3. Accédez au répertoire des scripts naa-script.sh.

    cd /usr/local/naa
  4. Entrez la commande suivante pour stocker le script local afin de pouvoir fusionner les modifications personnalisées dans la version la plus récente.

    git stash
  5. Entrez la commande suivante pour obtenir la dernière version du script.

    git pull
  6. Entrez la commande suivante pour fusionner le script personnalisé avec la dernière version du script.

    git stash pop
AWS DevOps
TâcheDescriptionCompétences requises

Supprimez toutes les ressources déployées.

Vous pouvez laisser les ressources déployées dans les comptes.

Si vous souhaitez déprovisionner toutes les ressources, procédez comme suit :

  1. Supprimez la NAA-ExecRole pile provisionnée dans le compte de gestion. Pour obtenir des instructions, consultez la section Suppression d'une pile dans la CloudFormation documentation.

  2. Supprimez le NAA-ExecRole stack set provisionné dans le compte de gestion de l'organisation ou dans le compte d'administrateur délégué. Pour obtenir des instructions, voir Supprimer un ensemble de piles dans la CloudFormation documentation.

  3. Supprimez tous les objets du compartiment naa-<accountID>-<region> S3. Pour obtenir des instructions, consultez Supprimer des objets dans la documentation Amazon S3.

  4. Supprimez la NAA-Resources pile provisionnée dans le compte de sécurité. Pour obtenir des instructions, consultez la section Suppression d'une pile dans la CloudFormation documentation.

AWS DevOps

Résolution des problèmes

ProblèmeSolution

Impossible de se connecter à l' EC2 instance à l'aide du gestionnaire de session.

L'agent SSM doit être capable de communiquer avec le point de terminaison Systems Manager. Procédez comme suit :

  1. Vérifiez que le sous-réseau sur lequel l' EC2 instance est déployée dispose d'un accès Internet.

  2. Redémarrez l' EC2 instance.

Lorsque vous déployez le stack set, la CloudFormation console vous invite àEnable trusted access with AWS Organizations to use service-managed permissions.

Cela indique que l'accès sécurisé n'a pas été activé entre AWS Organizations et CloudFormation. Un accès sécurisé est requis pour déployer le stack set géré par les services. Cliquez sur le bouton pour activer l'accès sécurisé. Pour plus d'informations, consultez la section Activer l'accès sécurisé dans la CloudFormation documentation.

Ressources connexes

Informations supplémentaires

Exemple de sortie de console

L'exemple suivant montre le résultat de la génération de la liste des comptes cibles et de l'analyse des comptes cibles.

[root@ip-10-10-43-82 naa]# ./naa-script.sh download: s3://naa-<account ID>-us-east-1/naa-exclusions.csv to ./naa-exclusions.csv AWS Management Account: <Management account ID> AWS Accounts being processed... <Account ID 1> <Account ID 2> <Account ID 3> Assessing AWS Account: <Account ID 1>, using Role: NAAExecRole Assessing AWS Account: <Account ID 2>, using Role: NAAExecRole Assessing AWS Account: <Account ID 3>, using Role: NAAExecRole Processing account: <Account ID 1> / Region: us-east-1 Account: <Account ID 1> / Region: us-east-1 – Detecting Network Analyzer scope... Processing account: <Account ID 2> / Region: us-east-1 Account: <Account ID 2> / Region: us-east-1 – Detecting Network Analyzer scope... Processing account: <Account ID 3> / Region: us-east-1 Account: <Account ID 3> / Region: us-east-1 – Detecting Network Analyzer scope... Account: <Account ID 1> / Region: us-east-1 – Network Access Analyzer scope detected. Account: <Account ID 1> / Region: us-east-1 – Continuing analyses with Scope ID. Accounts with many resources may take up to one hour Account: <Account ID 2> / Region: us-east-1 – Network Access Analyzer scope detected. Account: <Account ID 2> / Region: us-east-1 – Continuing analyses with Scope ID. Accounts with many resources may take up to one hour Account: <Account ID 3> / Region: us-east-1 – Network Access Analyzer scope detected. Account: <Account ID 3> / Region: us-east-1 – Continuing analyses with Scope ID. Accounts with many resources may take up to one hour

Exemples de rapports CSV

Les images suivantes sont des exemples de sortie CSV.

Exemple 1 du rapport CSV généré par cette solution.

Exemple 2 du rapport CSV généré par cette solution.