Comment configurer AWS IAM : éléments, fonctionnalités et composants

AWS

Amazon Web Services (AWS) propose des services d’infrastructure informatique (IaaS, Infrastructure as a Service) aux entreprises sous la forme de services Web communément regroupés sous le terme de « cloud computing ». AWS propose une plateforme d’infrastructure dans le cloud très fiable, évolutive et peu coûteuse, à laquelle des centaines de milliers d’entreprises font confiance. AWS IAM est un service Web qui vous permet de gérer de manière sécurisée les accès aux ressources Amazon.

Pour comprendre comment configurer AWS IAM, il est d’abord nécessaire de comprendre les possibilités offertes par ce service, ses différents niveaux et son implémentation. L’accès aux services AWS doit être sécurisé afin que leurs utilisateurs soient contraints de s’authentifier. Une fois connecté, un utilisateur peut accéder aux ressources, en fonction du niveau de ses droits au sein de l’organisation.

Qu’est-ce que AWS IAM ?

IAM constitue un des services stratégiques d’AWS et dispose de deux rôles principaux :

  1.  Gestion des identités : authentifier les utilisateurs et groupes d’utilisateurs
  2. Gestion des accès : autoriser les utilisateurs et groupes à accéder aux services AWS

diagramme aws iam

IAM assure la gestion des accès dans AWS en créant des stratégies et en les attachant à des identités IAM (utilisateurs/groupes/rôles/applications) pour permettre l’accès aux ressources IAM. Une stratégie est un objet AWS, qui lorsqu’elle est associée à une identité ou une ressource, définit ses droits. AWS évalue ces stratégies lorsqu’une identité IAM (utilisateur/groupe ou rôle ou application) demande à effectuer une action ou opération, ou à accéder à des ressources. Les droits définis dans ces stratégies déterminent si la requête est autorisée ou refusée.

1. Identités dans AWS

Nous allons maintenant voir comment configurer les identités (utilisateurs/groupes/rôles/applications), définir les mécanismes d’authentification (IAM interne ou externe), puis décider des autorisations de ces identités sur la base de leur rôle ou de leur droit à exécuter des actions/opérations ou à accéder à des ressources.

Que sont les identités dans AWS ?

Dans AWS, les identités sont créées via IAM. Il peut s’agir d’utilisateurs, de groupes, de rôles ou d’applications. Dans une organisation, il est possible de créer un ou plusieurs comptes AWS. Il s’agit d’une stratégie déterminée par l’administrateur et l’architecte. Par exemple, chaque service peut disposer d’un compte AWS qui lui est propre et les utilisateurs sont des utilisateurs de chaque compte.

Meilleures pratiques

Voici les bonnes pratiques à suivre en lien avec les comptes utilisateur.

  • Tous les utilisateurs IAM configurés doivent se voir attribuer l’URL de connexion au compte.
  • Mettez en place un modèle de moindre privilège.
  • Activez l’authentification multifacteurs : pour une sécurité renforcée, elle doit concerner l’ensemble des utilisateurs. Modifiez les mots de passe et clés d’accès à intervalles réguliers.
  • N’utilisez pas le compte de l’utilisateur racine de manière habituelle. Créez un compte admin et utilisez-le pour réaliser toutes les tâches administratives.
  • Le compte de l’utilisateur racine doit être réservé pour la facturation. Le nom d’utilisateur et le mot de passe de ce compte doivent être en accès limité et enregistrés de manière sécurisée.

Comment accéder aux contrôles de gestion des accès

Les utilisateurs AWS ou applications peuvent accéder à IAM par différents moyens.

  • AWS Management Console : interface Web permettant d’accéder aux différents services AWS. Pour accéder aux comptes utilisateur par le biais de la console, le nom d’utilisateur, le mot de passe et l’URL de connexion de l’utilisateur racine AWS sont nécessaires.
  • Outils de l’interface en ligne de commande (CLI) : les outils de l’interface en ligne de commande AWS permettent d’exécuter des tâches liées à IAM et AWS. Il est possible d’exécuter ces tâches sous forme de commandes dans l’interface en ligne de commande ou dans PowerShell, ou sous forme de scripts eux-mêmes exécutés depuis la ligne de commande. Il s’agit d’un moyen bien plus rapide, puissant et simple d’exécuter des tâches.
  • Kit de développement logiciel (SDK) : AWS fournit un accès programmatique à IAM à partir des différentes bibliothèques incluses dans le SDK.
  • Interface de programmation (API) : les API peuvent accéder à IAM par voie programmatique à l’aide de ses API HTTPS.

Pour accéder à IAM par le biais de la CLI/l’API, l’utilisateur a besoin de clés d’accès. Les clés d’accès sont composées de deux parties, un ID de clé d’accès et une clé d’accès secrète. Ces clés doivent être activées dans IAM pour que l’utilisateur puisse accéder au compte.

Utilisateur racine

Lorsque vous créez votre compte Amazon, vous commencez avec une seule identité de connexion qui dispose d’un accès à l’ensemble des services et ressources Amazon du compte. Cette identité est appelée utilisateur racine du compte Amazon. Pour y accéder, vous devez vous connecter avec l’adresse e-mail et le mot de passe utilisés pour créer le compte.

Cet utilisateur racine est le superutilisateur d’IAM et dispose de tous les privilèges disponibles. Son mot de passe doit être conservé de manière très sécurisée. Il est conseillé d’activer l’authentification à deux facteurs pour ce compte.

Authentification à plusieurs facteurs (MFA)

Vous pouvez activer l’authentification à plusieurs facteurs pour IAM.  Il est ainsi possible par ce biais d’activer l’authentification à deux facteurs pour les utilisateurs AWS. L’authentificateur peut être Google Authentificator ou toute autre application d’authentification logicielle, ou même un dispositif matériel. Cette authentification ajoute un niveau de sécurité supplémentaire et doit être activée pour les comptes root.

Les utilisateurs peuvent faire partie d’IAM ou d’un autre directory service qui prend en charge leur authentification.

Comment configurer les utilisateurs IAM

configuration des utilisateurs iam

Un utilisateur AWS Identity and Access Management est une entité que vous créez dans AWS pour représenter la personne qui l’utilise pour interagir avec AWS. Dans AWS, un utilisateur est composé d’un nom et d’identifiants.

1. Configurez les identifiants de connexion

Chaque utilisateur IAM dispose d’un nom d’utilisateur et d’un mot de passe. Par ailleurs, les administrateurs peuvent activer l’authentification à plusieurs facteurs pour l’ensemble des utilisateurs.

Choisir une stratégie de mot de passe : le mot de passe peut être généré automatiquement, ou vous pouvez appliquer la stratégie de mot de passe par défaut du compte.

  • La longueur minimale des mots de passe est de 8 caractères.
  • Utilisez a minima trois des types de caractères suivants : majuscules, minuscules, chiffres et ! @ # $ % ^ & * ( ) _ + – = [ ] { } | ‘

Option Require password reset (Réinitialisation du mot de passe nécessaire)

  • L’utilisateur devra créer un nouveau mot de passe lors de sa prochaine connexion.
  • Les utilisateurs obtiennent automatiquement la stratégie IAMUserChangePassword pour qu’ils puissent eux-mêmes changer leur mot de passe.

2. Clés d’accès

Les clés d’accès sont des identifiants sur le long terme d’un utilisateur IAM ou de l’utilisateur racine du compte Amazon. Vous pouvez utiliser des clés d’accès pour signer des requêtes programmatiques envoyées à la CLI ou l’API Amazon (directement ou à l’aide du SDK).

  • Les clés d’accès se composent de deux parties : un ID de clé d’accès et une clé d’accès secrète.
  • Comme pour la combinaison nom d’utilisateur/mot de passe, vous devez utiliser à la fois l’ID et la clé d’accès secrète pour authentifier vos requêtes.
  • Gérez vos clés d’accès avec le même niveau de sécurité que celui que vous appliquez à votre nom d’utilisateur et votre mot de passe.

3. Configurez les groupes

Les groupes IAM sont des groupes d’utilisateurs, dont ils facilitent l’administration. Généralement, les utilisateurs sont membres de plusieurs groupes. Les groupes sont associés à un droit ou une stratégie. L’administrateur crée un utilisateur lorsqu’il rejoint une organisation. Il ajoute ensuite cet utilisateur à plusieurs groupes, et l’utilisateur hérite des droits de ses groupes. Il n’est pas possible d’imbriquer des groupes dans AWS.

4. Configurez le rôle

Les rôles IAM peuvent être attribués à toute entité de confiance. Il peut s’agir d’utilisateurs d’un même compte ou d’un autre compte, ou d’une application ou d’un service, comme EC2 ou Lambda. Les rôles permettent de s’assurer qu’un utilisateur ou un service dispose de certains droits sans avoir à partager la clé d’accès secrète.

5. Configurez les applications

Les applications disposent d’un accès programmatique à AWS. Elles utilisent les clés d’accès pour s’authentifier et accéder aux services AWS.

2. Configurer l’authentification

Dans AWS, l’authentification peut être assurée par un service interne ou externe. Le service interne est géré par un fournisseur d’identité IAM et se destine généralement aux petites entreprises. Un fournisseur d’identité externe est quant à lui utilisé par les grandes entreprises ou dans le cadre d’implémentations d’envergure.

Fournisseur d’identité interne

IAM est le service de fourniture d’identité interne d’AWS. Il peut être suffisant pour une organisation comportant un nombre réduit d’employés ou ne réalisant pas ses activités en ligne.

Fournisseur d’identité externe

Toutefois, si vous disposez déjà d’un fournisseur d’identité que vous souhaitez utiliser en tant que directory service dans votre environnement professionnel ou si vous utilisez une application Web basée sur une identité Web, vous pouvez continuer ainsi. Pour utiliser un fournisseur d’identité externe, vous devez créer une entité de fournisseur d’identité IAM et établir une relation de confiance entre votre compte AWS et le fournisseur d’identité. IAM prend en charge les fournisseurs compatibles avec OpenID Connect (OIDC) ou SAML 2.0 (Security Assertion Markup Language 2.0).

  1. Fournisseur d’identité Web : les fournisseurs d’identité IAM OIDC sont des entités dans IAM qui décrivent un service de fournisseur d’identité externe (IdP) prenant en charge la norme OpenID Connect (OIDC), par exemple Google ou Salesforce. Utilisez un fournisseur d’identité IAM OIDC lorsque vous souhaitez établir une relation de confiance entre un fournisseur compatible OIDC et votre compte AWS. Cela peut être utile lorsque vous créez une application mobile ou Web qui nécessite un accès aux ressources AWS, mais que vous ne souhaitez pas écrire du code de connexion sur mesure ou gérer vos propres identités d’utilisateur.

Vous pouvez créer et gérer un fournisseur d’identité OIDC IAM à l’aide de l’AWS Management Console, l’interface en ligne de commande AWS, les outils pour Windows PowerShell ou l’API IAM.

  1. Fédération des identités d’entreprise : le fournisseur d’identité IAM SAML 2.0 est une entité d’IAM qui décrit un service de fournisseur d’identité externe (IdP) prenant en charge la norme SAML 2.0. Utilisez un fournisseur d’identité IAM pour établir une relation de confiance entre un IdP compatible avec SAML, comme Active Directory Federation Services, et AWS, de sorte que les utilisateurs connectés à votre Active Directory d’entreprise puissent accéder aux ressources AWS. Les fournisseurs d’identité IAM SAML jouent le rôle de mandataires dans une stratégie de confiance IAM.
  2. Configurer l’autorisation

L’autorisation est configurée sur différents niveaux dans AWS par le biais de stratégies. Ces stratégies peuvent se chevaucher. Les responsables, en fonction de leur organisation, doivent déterminer à quels niveaux implémenter ces stratégies pour faciliter l’administration.

Stratégie de contrôle de service (SCP)

stratégie de contrôle de service

AWS Organizations est un service de gestion de comptes qui vous permet de consolider plusieurs comptes AWS au sein d’une organisation que vous créez et gérez de manière centralisée. En tant qu’administrateur, vous pouvez créer plusieurs niveaux d’unités organisationnelles au sein de l’organisation pour l’adapter à votre configuration actuelle.

AWS Organizations et les unités organisationnelles vous aident à gérer votre compte. AWS Organizations vous permet aussi de répondre aux règles de sécurité et de conformité de votre entreprise en configurant des garde-fous.

Ces garde-fous sont appelés Stratégies de contrôle de service (SCP). Une stratégie de contrôle de service est similaire à une stratégie d’autorisation IAM : elle limite les droits dont disposent les unités d’organisation, services ou centres de profits, par exemple. Une SCP limite les droits des entités des comptes membres qui font partie de l’unité d’organisation. Seule une SCP peut limiter les droits du compte de l’utilisateur racine d’une unité d’organisation.

Stratégie IAM

Une stratégie IAM est une stratégie d’identité adoptée par un utilisateur, groupe ou rôle. Il en existe différents types :

A. Stratégie gérée

Stratégie gérée par AWS : la stratégie est gérée par AWS et intégrée dans AWS. Vous pouvez ajouter jusqu’à 10 stratégies gérées à un utilisateur, groupe ou rôle.

Stratégie gérée par le client : stratégie que vous définissez et qui est intégrée à votre compte AWS. Cette stratégie est créée dans AWS et associée à un ensemble de droits. Vous pouvez attacher ce type de stratégie à plusieurs entités, qu’il s’agisse d’utilisateurs, de groupes ou de rôles.

B. Stratégie en ligne

Une stratégie en ligne est intégrée à une identité IAM, par exemple un utilisateur, un groupe ou un rôle. Elle est utilisée en dernier, lorsqu’une relation individuelle est requise avec une identité donnée. Lorsque vous supprimez l’identité, la stratégie est elle aussi supprimée, car elle est intégrée à l’identité.

Limites d’autorisations pour des entités IAM

Une limite d’autorisations est une fonctionnalité avancée permettant d’utiliser une stratégie gérée pour définir les autorisations maximales qu’une stratégie basée sur l’identité peut accorder à une entité IAM. La limite d’autorisations d’une entité lui permet d’effectuer uniquement les actions autorisées à la fois par ses stratégies basées sur l’identité et ses limites d’autorisations.

Les stratégies basées sur des ressources qui spécifient l’utilisateur ou le rôle en tant que mandataire ne sont pas contraintes par ce type de limite. Tout refus explicite dans l’une de ces stratégies prévaut sur les autorisations.

Stratégie basée sur les ressources

Les stratégies basées sur les ressources sont attachées à une ressource. Par exemple, vous pouvez attacher des stratégies basées sur les ressources à des compartiments Amazon S3, des files d’attente Amazon SQS et des clés de chiffrement AWS Key Management Service.

Avec les stratégies basées sur des ressources, vous pouvez spécifier qui a accès à la ressource et quelles actions ces personnes peuvent exécuter dessus.

Listes de contrôle d’accès (ACL)

Les listes de contrôle d’accès (ACL) sont des stratégies de service qui vous permettent de contrôler quels mandataires d’un autre compte peuvent accéder à une ressource. Les ACL ne peuvent pas être utilisées pour contrôler l’accès pour un mandataire au sein du même compte. Les listes de contrôle d’accès sont semblables aux stratégies basées sur les ressources, bien qu’elles soient le seul type de stratégie qui n’utilise pas le format de document de stratégie JSON.

Les services Amazon S3, AWS WAF et Amazon VPC, entre autres, prennent en charge les ACL. Pour en savoir plus sur les ACL, consultez Présentation de la liste de contrôle d’accès (ACL) dans le Manuel du développeur Amazon Simple Storage Service.

Stratégies de session

Les stratégies de session sont des stratégies avancées que vous transmettez dans un paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur fédéré. Les autorisations d’une session sont une combinaison des stratégies basées sur l’identité de l’entité IAM (utilisateur ou rôle) utilisée pour créer la session et les stratégies de session. Les autorisations peuvent également provenir d’une stratégie basée sur les ressources. Tout refus explicite dans l’une de ces stratégies prévaut sur les autorisations.

Amazon Resource Names (ARN)

Une stratégie basée sur les ressources peut spécifier l’ARN de l’utilisateur ou du rôle en tant que mandataire. Dans ce cas, les autorisations de la stratégie basée sur les ressources sont ajoutées à la stratégie basée sur l’identité du rôle ou l’utilisateur avant la création de la session.

La stratégie de session limite les autorisations totales accordées par la stratégie basée sur les ressources et la stratégie basée sur l’identité. Les autorisations de session obtenues sont une combinaison des stratégies de session et des stratégies basées sur les ressources, plus une combinaison des stratégies de session et des stratégies basées sur l’identité.

  1. Accès autorisé

Une fois votre demande authentifiée et autorisée, AWS en approuve les actions ou opérations.

Actions ou opérations

Les opérations sont définies par un service et incluent les actions que vous pouvez exécuter sur une ressource, comme son affichage, sa création, sa modification et sa suppression.

Par exemple, IAM prend en charge environ 40 actions pour une ressource utilisateur, y compris les suivantes : CreateUser / DeleteUser / GetUser /UpdateUser.

  • Conseil : pour autoriser un utilisateur/un groupe/un rôle/une application à exécuter une opération, vous devez inclure les actions nécessaires dans une stratégie qui s’applique au mandataire ou à la ressource affectée.

Ressources

Une fois qu’AWS a approuvé les opérations dans votre demande, ces dernières peuvent être exécutées sur les ressources connexes au sein de votre compte. Une ressource est un objet existant au sein d’un service.  Il peut s’agir, par exemple, d’une instance Amazon EC2, d’un utilisateur IAM et d’un compartiment Amazon S3. Le service définit un ensemble d’actions pouvant être effectuées sur chaque ressource.

Si vous créez une requête pour effectuer une action non connexe sur une ressource, cette requête est rejetée. Par exemple, si vous demandez la suppression d’un rôle IAM, mais fournissez une ressource de groupe IAM, la requête échoue.

Comment surveiller les ressources : IAM Access Analyzer

IAM propose également l’outil IAM Access Analyzer, qui vous aide à identifier les ressources de votre organisation et vos comptes qui sont partagées avec une entité externe. Il peut par exemple s’agir de compartiments Amazon S3 ou de rôles IAM. Vous pouvez ainsi identifier les accès non intentionnels à vos ressources et à vos données, ce qui constitue un risque pour la sécurité. Les services internes d’AWS peuvent être surveillés avec Cloud Watch et Cloud Trail.

Access Analyzer identifie les ressources partagées avec des mandataires externes en utilisant un raisonnement logique pour analyser les stratégies basées sur les ressources dans votre environnement AWS. Pour chaque instance d’une ressource qui est partagée en dehors de votre compte, Access Analyzer génère un résultat. Les résultats comprennent des renseignements sur l’accès et le mandataire externe à qui il est accordé.

Vous pouvez réviser les résultats pour déterminer si l’accès est intentionnel et sûr, ou non intentionnel et représente un risque pour la sécurité. En plus de vous aider à identifier les ressources qui sont partagées avec une entité externe, vous pouvez utiliser les résultats de Access Analyzer pour afficher un aperçu de l’impact de votre stratégie sur l’accès public et inter-comptes à vos ressources avant de déployer les autorisations de ressources.

Glossaire d’AWS IAM

Vous trouverez ci-dessous une liste de termes et acronymes couramment utilisés en lien avec AWS IAM.

AWS Amazon Web Services
IAM Identity Access Management
IaaS Infrastructure as a Service
MFA Authentification à plusieurs facteurs
SDK Kit de développement logiciel
API Interface de programmation
IdP Fournisseur d’identité
SCP Stratégie de sécurité
OIDC OpenID Connect
SAML Security Account Markup Language
ACL Listes de contrôle d’accès
EC2 Elastic Compute Cloud
S3 Simple Storage Service
SQS Simple Queue Service
WAF Web Access Firewall
JSON JavaScript Object Notation
VPC Virtual Private Cloud
ARN Amazon Resource Name

Pour des transitions sans accroc

L’identité dans AWS Identity peut être interne aux utilisateurs AWS ou externes, par exemple via des utilisateur fédérés. L’accès à AWS peut être réalisé par le biais de stratégies de sécurité implémentées à différents niveaux. Il est préférable d’implémenter AWS IAM en disposant d’une bonne compréhension des besoins de service et des utilisateurs de votre organisation, ainsi que des exigences de sécurité. Il est tout aussi important de comprendre l’infrastructure actuelle et de choisir la méthodologie appropriée pour s’assurer que la transition vers le cloud se déroule de manière fluide.

Source

Guide utilisateur Amazon

 

Votre cybersécurité est-elle au cœur de votre infrastructure ?

Bénéficiez d'une évaluation personnalisée des risques auxquels sont exposées vos données, effectuée par des ingénieurs passionnés par la sécurité des données.