SEC10-BP05 Préallouer les accès - AWS Well-Architected Framework

SEC10-BP05 Préallouer les accès

Vérifiez que les intervenants en cas d'incident disposent du bon accès préalablement alloué dans AWS afin de réduire le temps d'investigation jusqu'à la reprise.

Anti-modèles courants :

  • Utilisation du compte racine pour la réponse aux incidents.

  • Modification des comptes utilisateur existants.

  • Manipulation des autorisations IAM directement lors de la fourniture d'une élévation de privilèges juste-à-temps.

Niveau d'exposition au risque si cette bonne pratique n'est pas respectée : Moyen

Directives d'implémentation

AWS recommande de réduire ou de supprimer l'utilisation des informations d'identification durables dans la mesure du possible et de privilégier les informations d'identification temporaire à la place, ainsi que les mécanismes d'élévation des privilèges juste-à-temps. Les informations d'identification durables sont sujettes aux risques de sécurité et augmentent les frais généraux opérationnels. Pour la plupart des tâches de gestion et de réponse aux incidents, nous vous recommandons de mettre en œuvre la fédération d'identité parallèlement à l'élévation temporaire pour l'accès administratif. Dans le cadre de ce modèle, un utilisateur demande une élévation à un niveau de privilège plus élevé (par exemple un rôle de réponse aux incidents) et, si l'utilisateur est admissible à cette élévation, une demande est envoyée à un approbateur. Si la demande est approuvée, l'utilisateur reçoit un ensemble d'informations d'identification AWS temporaires qui peuvent être utilisées afin d'exécuter les tâches. Une fois que ces informations d'identification ont expiré, l'utilisateur doit soumettre une nouvelle demande d'élévation.

Nous vous recommandons d'utiliser une élévation temporaire des privilèges dans la plupart des cas de réponse aux incidents. Dans cette optique, la meilleure solution consiste à utiliser AWS Security Token Service et les politiques de session afin de délimiter l'accès.

Dans certains cas, les identités fédérées ne sont pas disponibles, par exemple :

  • Panne liée à la compromission d'un fournisseur d'identité (IdP).

  • Mauvaise configuration ou erreur humaine entraînant la panne d'un système de gestion d'accès fédéré.

  • Activité malveillante, par exemple un déni de service distribué (DDoS) ou une indisponibilité du système.

Dans les cas précédents, il doit y avoir un accès d'urgence de type Break Glass configuré afin de permettre l'analyse et la correction rapide des incidents. Nous vous recommandons également d'utiliser un utilisateur IAM disposant des autorisations appropriées pour effectuer des tâches et accéder aux ressources AWS. Utilisez des informations d'identification racine uniquement pour les tâches qui requièrent un accès en tant qu'utilisateur root. Pour vérifier que les intervenants en cas d'incident disposent d'un niveau d'accès approprié à AWS et aux autres systèmes pertinents, nous vous recommandons de pré-allouer des comptes utilisateur dédiés. Les comptes utilisateur requièrent un accès privilégié et doivent être étroitement contrôlés et surveillés. Les comptes doivent être créés avec le moins de privilèges requis pour effectuer les tâches nécessaires et le niveau d'accès doit être basé sur les playbooks créés dans le cadre du plan de gestion des incidents.

Utilisez des utilisateurs et des rôles spécialement conçus et dédiés au titre de bonne pratique. L'élévation temporaire de l'accès des utilisateurs ou des rôles via l'ajout de politiques IAM ne permet pas de savoir clairement de quel type d'accès bénéficiaient les utilisateurs pendant l'incident et peut empêcher la révocation des privilèges élevés au niveau supérieur.

Il est important de supprimer autant de dépendances que possible afin de vérifier que l'accès peut être obtenu dans le plus grand nombre possible de scénarios de défaillance. Afin de vous faciliter la tâche, créez un playbook permettant de vérifier que les utilisateurs chargés des réponses en cas d'incident ont été créés en tant qu'utilisateurs AWS Identity and Access Management dans un compte de sécurité dédié et qu'ils ne sont pas gérés via une solution d'authentification unique ou de fédération existante. Chaque intervenant en cas d'incident doit avoir son propre compte nommé. La configuration du compte doit appliquer une politique stricte de gestion des mots de passe et une authentification multifactorielle (MFA). Si les playbooks de réponse aux incidents ne nécessitent qu'un accès à la AWS Management Console, l'utilisateur ne doit pas avoir de clés d'accès configurées et il doit lui être explicitement interdit de créer des clés d'accès. Cela peut être configuré avec des politiquesIAM ou des politiques de contrôle de service (SCP), comme mentionné dans les bonnes pratiques de sécurité AWS pour les SCP AWS Organizations. Les utilisateurs ne doivent pas avoir d'autres privilèges que la capacité d'assumer des rôles de réponse aux incidents dans d'autres comptes.

Pendant un incident, il peut être nécessaire d'accorder l'accès à d'autres personnes internes ou externes afin de prendre en charge les activités d'analyse, de correction ou de reprise. Dans ce cas, utilisez le mécanisme de playbook mentionné précédemment. Celui-ci doit comporter un processus permettant de s'assurer que tout accès supplémentaire est révoqué immédiatement après l'incident.

Pour s'assurer que l'utilisation des rôles de réponse aux incidents peut être correctement surveillée et vérifiée, il est essentiel que les comptes utilisateur IAM créés à cette fin ne soient pas partagés entre les personnes et que l'utilisateur root Compte AWS ne soit pas utilisé, sauf si cela s'avère nécessaire pour une tâche spécifique. Si l'utilisateur root est requis (par exemple, l'accès IAM à un compte spécifique n'est pas disponible), utilisez un processus distinct avec un playbook disponible afin de vérifier la disponibilité du mot de passe utilisateur root et du jeton d'authentification multifactorielle.

Pour configurer les politiques IAM des rôles de réponse aux incidents, pensez à utiliser IAM Access Analyzer pour générer des politiques basées sur les journaux AWS CloudTrail. Pour cela, accordez à l'administrateur l'accès au rôle de réponse aux incidents sur un compte hors production et exécutez vos playbooks. Une fois que vous aurez terminé, vous pourrez créer une politique autorisant uniquement les mesures prises. Cette politique peut ensuite être appliquée à tous les rôles de réponse aux incidents dans tous les comptes. Vous pouvez éventuellement créer une politique IAM distincte pour chaque playbook afin de faciliter la gestion et la vérification. Les exemples de playbooks peuvent comprendre des plans d'intervention pour les rançongiciels, les atteintes à la protection des données, la perte d'accès à la production et d'autres scénarios.

Utilisez les comptes utilisateur de réponse aux incidents pour assumer les rôles IAM dédiés de réponse aux incidents dans d'autres Comptes AWS. Ces rôles doivent être configurés de façon à pouvoir être assumés uniquement par les utilisateurs du compte de sécurité et la relation de confiance doit exiger que le principal appelant ait été authentifié au moyen de l'authentification multifactorielle. Les rôles doivent utiliser des politiques IAM à portée limitée afin de contrôler l'accès. Assurez-vous que toutes les demandes AssumeRole pour ces rôles sont consignées dans CloudTrail et font l'objet d'une alerte, et que toutes les mesures prises en utilisant ces rôles sont consignées.

Il est vivement recommandé de nommer les comptes utilisateur IAM et les rôles IAM afin d'en faciliter la recherche dans les journaux CloudTrail. Par exemple, les comptes IAM pourraient être nommés <USER_ID>-BREAK-GLASS et les rôles IAM pourraient être nommés BREAK-GLASS-ROLE.

CloudTrail est utilisé pour consigner l'activité de l'API dans vos comptes AWS et doit être utilisé pour configurer les alertes sur l'utilisation des rôles de réponse aux incidents. Consultez la publication de blog sur la configuration des alertes lorsque les clés racine sont utilisées. Les instructions peuvent être modifiées de façon à configurer la métrique Amazon CloudWatch de filtre à filtre sur les événements AssumeRole liés au rôle IAM de réponse aux incidents :

{ $.eventName = "AssumeRole" && $.requestParameters.roleArn = "<INCIDENT_RESPONSE_ROLE_ARN>" && $.userIdentity.invokedBy NOT EXISTS && $.eventType != "AwsServiceEvent" }

Dans la mesure où les rôles de réponse aux incidents sont susceptibles d'avoir un niveau d'accès élevé, il est important que ces alertes soient transmises à un vaste groupe et qui y donnera suite rapidement.

Lors d'un incident, il est possible qu'un intervenant ait besoin d'accéder à des systèmes qui ne sont pas sécurisés directement par IAM. Il peut notamment s'agir d'instances Amazon Elastic Compute Cloud, de bases de données Amazon Relational Database Service ou de plateformes de logiciel en tant que service (SaaS). Il est vivement recommandé d'utiliser AWS Systems Manager Session Manager plutôt que des protocoles natifs tels que SSH ou RDP pour tous les accès administratifs aux instances Amazon EC2. Cet accès peut être contrôlé à l'aide d'IAM, qui est sécurisé et vérifié. Il est également possible d'automatiser certaines parties de vos playbooks en utilisant des documents AWS Systems Manager,qui permettent de réduire les erreurs utilisateur et d'améliorer le temps de récupération. Pour accéder aux bases de données et aux outils tiers, nous recommandons de stocker les informations d'identification dans AWS Secrets Manager et d'accorder l'accès aux rôles des intervenants en cas d'incident.

En dernier lieu, la gestion des comptes utilisateur IAM de réponse aux incidents doit être ajoutée à vos processus d'entrées, de changements et de sorties. Elle doit également être vérifiée et testée régulièrement afin de vous assurer que seul l'accès prévu est autorisé.

Ressources

Documents connexes :

Vidéos connexes :

Exemples connexes :