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.
Surveiller l'activité de l'utilisateur IAM root
Créée par Mostefa Brougui () AWS
Dépôt de code : aws-iam-root-user-activity-monitor | Environnement : PoC ou pilote | Technologies : sécurité, identité, conformité ; gestion et gouvernance |
Charge de travail : toutes les autres charges de travail | AWSservices : Amazon EventBridge ; AWS Lambda ; Amazon SNS ; AWS Identity and Access Management |
Récapitulatif
Chaque compte Amazon Web Services (AWS) possède un utilisateur root. Dans le cadre des meilleures pratiques de sécurité pour AWS Identity and Access Management (IAM), nous vous recommandons d'utiliser l'utilisateur root pour effectuer les tâches que seul l'utilisateur root peut effectuer. Pour obtenir la liste complète, consultez la section Tâches nécessitant les informations d'identification de l'utilisateur root dans le Guide de référence sur la gestion des AWS comptes. Étant donné que l'utilisateur root dispose d'un accès complet à toutes vos AWS ressources et informations de facturation, nous vous recommandons de ne pas utiliser ce compte et de le surveiller pour détecter toute activité susceptible d'indiquer que les informations d'identification de l'utilisateur root ont été compromises.
À l'aide de ce modèle, vous configurez une architecture basée sur les événements
Lorsque les informations d'identification de l'utilisateur IAM root sont utilisées, Amazon CloudWatch AWS CloudTrail enregistre l'activité dans le journal et dans le journal, respectivement. Dans le compte Spoke, une EventBridge règle Amazon envoie l'événement au bus d'événements central du compte hub. Dans le compte du hub, une EventBridge règle envoie l'événement à une fonction AWS Lambda. La fonction utilise une rubrique Amazon Simple Notification Service (AmazonSNS) qui vous informe de l'activité de l'utilisateur root.
Dans ce modèle, vous utilisez un AWS CloudFormation modèle pour déployer les services de surveillance et de gestion des événements dans les comptes Spoke. Vous utilisez un modèle HashiCorp Terraform pour déployer les services de gestion des événements et de notification dans le compte du hub.
Conditions préalables et limitations
Prérequis
Autorisations pour déployer AWS des ressources dans votre AWS environnement.
Autorisations pour déployer des ensembles de CloudFormation piles. Pour plus d'informations, consultez la section Conditions requises pour les opérations relatives aux ensembles de piles (CloudFormation documentation).
Terraform installé et prêt à l'emploi. Pour plus d'informations, consultez Get Started — AWS
(documentation Terraform). Une trace existante dans chaque compte Spoke. Pour plus d'informations, consultez Getting started with AWS CloudTrail (CloudTrail documentation).
Le journal est configuré pour envoyer des événements à CloudWatch Logs. Pour plus d'informations, consultez la section Envoi d'événements aux CloudWatch journaux (CloudTrail documentation).
Vos comptes hub and spoke doivent être gérés par AWS des Organizations.
Architecture
Le schéma suivant illustre les éléments de base de la mise en œuvre.
Lorsque les informations d'identification de l'utilisateur IAM root sont utilisées, CloudWatch CloudTrail enregistrez l'activité dans le journal et dans le journal, respectivement.
Dans le compte Spoke, une EventBridge règle envoie l'événement au bus d'événements central du compte hub.
Dans le compte du hub, une EventBridge règle envoie l'événement à une fonction Lambda.
La fonction Lambda utilise une SNS rubrique Amazon qui vous informe de l'activité de l'utilisateur root.
Outils
AWSservices
AWS CloudFormationvous aide à configurer les AWS ressources, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie, quels que soient les AWS comptes et les régions.
AWS CloudTrailvous aide à auditer la gouvernance, la conformité et le risque opérationnel de votre AWS compte.
Amazon CloudWatch Logs vous aide à centraliser les journaux de tous vos systèmes, applications et AWS services afin que vous puissiez les surveiller et les archiver en toute sécurité.
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 HTTP d'invocation utilisant des API destinations ou les bus d'événements dans d'autres comptes. AWS
AWSIdentity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
AWSLambda 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 Simple Notification Service (AmazonSNS) 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.
Autres outils et services
Terraform
est une CLI application permettant de provisionner et de gérer l'infrastructure et les ressources du cloud à l'aide de code, sous forme de fichiers de configuration.
Référentiel de code
Le code source et les modèles de ce modèle sont disponibles dans un GitHub référentiel
Un modèle Terraform contenant les ressources que vous déployez dans le compte du hub
Un CloudFormation modèle que vous déployez en tant qu'instance stack set dans les comptes Spoke
La structure globale du référentiel est la suivante.
. |__README.md |__spoke-stackset.yaml |__hub.tf |__root-activity-monitor-module |__main.tf # contains Terraform code to deploy resources in the Hub account |__iam # contains IAM policies JSON files |__ lambda-assume-policy.json # contains trust policy of the IAM role used by the Lambda function |__ lambda-policy.json # contains the IAM policy attached to the IAM role used by the Lambda function |__outputs # contains Lambda function zip code
La section Epics fournit des step-by-step instructions pour déployer les modèles.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Clonez le référentiel d'exemples de code. |
| Général AWS |
Mettez à jour le modèle Terraform. |
| Général AWS |
Déployez les ressources sur le compte du AWS hub. |
| Général AWS |
Tâche | Description | Compétences requises |
---|---|---|
Déployez le CloudFormation modèle. |
Pour plus d'informations et d'instructions, voir Création d'un ensemble de piles (CloudFormation documentation). | Général AWS |
Tâche | Description | Compétences requises |
---|---|---|
Utilisez les informations d'identification de l'utilisateur root. |
| Général AWS |
Ressources connexes
Bonnes pratiques en matière de sécurité (IAMdocumentation)
Travailler avec StackSets (CloudFormation documentation)
Commencer
(documentation Terraform)
Informations supplémentaires
Amazon GuardDuty est un service de surveillance continue de la sécurité qui analyse et traite les journaux afin d'identifier les activités inattendues et potentiellement non autorisées dans votre AWS environnement. Comme alternative à cette solution, si vous l'avez activée GuardDuty, elle peut vous avertir lorsque les informations d'identification de l'utilisateur root ont été utilisées. Le GuardDuty résultat estPolicy:IAMUser/RootCredentialUsage
, et la gravité par défaut est faible. Pour plus d'informations, consultez Gérer les GuardDuty résultats d'Amazon.