Comprendre le fonctionnement d'IAM - AWS Identity and Access Management

Comprendre le fonctionnement d'IAM

Avant de créer des utilisateurs, vous devez comprendre le fonctionnement de IAM. IAM fournit l'infrastructure nécessaire au contrôle de l'authentification et des autorisations de votre compte. L'infrastructure IAM inclut les éléments suivants :


      IntroToIAM_Diagram

Conditions

En savoir plus sur les termes IAM.

Ressources IAM

Objets d'utilisateur, de groupe, de rôle, de politique et de fournisseur d'identité qui sont stockés dans IAM. Comme pour les autres services AWS, vous pouvez ajouter, modifier et supprimer des ressources depuis IAM.

IAM identités

Objets de ressource IAM utilisés pour identifier et regrouper. Vous pouvez attacher une politique à une identité IAM. Ces objets incluent les utilisateurs, les groupes et les rôles.

IAM entités

Objets de ressource IAM qu'AWS utilise pour l'authentification. Ces objets incluent des utilisateurs et des rôles IAM.

Principaux

Personne ou application qui utilise la politique Utilisateur racine Compte AWS, un utilisateur IAM ou un rôle IAM pour se connecter et effectuer des demandes à AWS. Les principaux incluent des utilisateurs fédérés et des rôles endossés.

Principal

Un principal est une personne ou application qui peut effectuer une demande pour une action ou une opération sur une ressource AWS. Le principal est authentifié en tant que Utilisateur racine Compte AWS ou une entité IAM pour effectuer des demandes à AWS. Conformément aux bonnes pratiques, n'utilisez pas vos informations d'identification utilisateur racine pour votre travail quotidien. À la place, créez des entités IAM (utilisateurs et rôles). Vous pouvez également prendre en charge des utilisateurs fédérés ou un accès par programme afin d'autoriser une application à accéder à votre compte AWS.

Requête

Lorsqu'un principal essaie d'utiliser AWS Management Console, l'API AWS ou l'AWS CLI, il envoie une requête à AWS. La demande inclut les informations suivants :

  • Actions ou opérations : les actions ou opérations que le principal souhaite exécuter. Il peut s'agir d'une action dans AWS Management Console, ou d'une opération dans l'AWS CLI ou l'API AWS.

  • Ressources : l'objet de ressource AWS sur lequel les actions ou opérations sont exécutées.

  • Principal : personne ou application qui utilise une entité (utilisateur ou rôle) pour envoyer la demande. Les informations sur le principal incluent les politiques associées à l'entité utilisée par le principal pour se connecter.

  • Données d'environnement : informations sur l'adresse IP, l'agent utilisateur, le statut SSL ou le moment de la journée.

  • Données de ressources : données liées à la ressource qui est demandée. Par exemple, ces informations peuvent inclure le nom d'une table DynamoDB ou une balise sur une instance Amazon EC2.

AWS recueille les informations de requête dans un contexte de requête utilisé pour évaluer et autoriser la requête.

Authentification

Un principal doit être authentifié (enregistré AWS) à l'aide de ses informations d'identification pour envoyer une demande à AWS. Certains services, tels que Amazon S3 et AWS STS, autorisent quelques demandes provenant d'utilisateurs anonymes. Cependant, ils sont l'exception à la règle.

Pour vous authentifier à partir de la console en tant que utilisateur racine, vous devez vous connecter avec votre adresse e-mail et votre mot de passe. En tant qu'utilisateur IAM, indiquez votre ID de compte ou alias, puis votre nom d'utilisateur et votre mot de passe. Pour vous authentifier à partir de l'API ou de l'AWS CLI, vous devez fournir votre clé d'accès et votre clé secrète. Vous devrez peut-être également fournir des informations de sécurité supplémentaires. Par exemple, AWS vous recommande d'utiliser l'authentification multi-facteur (MFA) pour améliorer la sécurité de votre compte. Pour en savoir plus sur les entités IAM qu'AWS peut authentifier, veuillez consulter Utilisateurs IAM et Rôles IAM.

Autorisation

Vous devez également être autorisé à terminer votre demande. Lors de l'autorisation, AWS utilise les valeurs du contexte de la demande pour rechercher les politiques qui s'appliquent à la demande. Ensuite, il utilise les politiques pour déterminer s'il autorise ou refuse la demande. La plupart des politiques sont stockées dans AWS sous forme de documents JSON et spécifient les autorisations pour les entités principaux. Il existe plusieurs types de politiques pouvant affecter l'autorisation d'une demande. Pour fournir à vos utilisateurs l'autorisation d'accéder aux ressources AWS de leur propre compte, vous avez uniquement besoin des politiques basées sur l'identité. Les politiques basées sur les ressources sont couramment utilisées pour accorder un accès entre comptes. Les autres types de politique consistent en des fonctionnalités avancées et doivent être utilisés avec précaution.

AWS recherche chaque politique qui s'applique au contexte de votre demande. Si une seule politique d'autorisation inclut une action refusée, AWS refuse l'ensemble de la demande et arrête l'évaluation. Ceci est appelé un refus explicite. Étant donnée que les demandes sont refusées par défaut, AWS autorise votre demande uniquement si chacune de ses parties est autorisée par les politiques d'autorisation applicables. La logique d'évaluation pour une demande au sein d'un même compte utilise les règles suivantes :

  • Par défaut, toutes les demandes sont refusées. (En général, les demandes effectuées à l'aide des informations d'identification de l'utilisateur racine Compte AWS pour les ressources de ce compte sont toujours autorisées.)

  • Une autorisation explicite dans une politique d'autorisations (basée sur l'identité ou les ressources) remplace cette valeur par défaut.

  • L'existence d'une politique de contrôle de service Organisations, de limites d'autorisations IAM ou d'une politique de session remplace l'autorisation. S'il existe une ou plusieurs de ces sortes de politiques, elles doivent toutes autoriser la demande. Sinon, elle est refusée implicitement.

  • Un refus explicite dans n'importe quelle politique remplace toutes les autorisations.

Pour en savoir plus sur la façon dont tous les types de politiques sont évalués, veuillez consulter Logique d'évaluation de politiques. Si vous avez besoin d'effectuer une demande dans un autre compte, une politique dans l'autre compte doit vous autoriser à accéder à la ressource et l'entité IAM que vous utilisez pour effectuer la demande doit avoir une politique basée sur une identité qui autorise la demande.

Actions ou opérations

Une fois votre demande authentifiée et autorisée, AWS en approuve les 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

Pour autoriser un principal à exécuter une opération, vous devez inclure les actions nécessaires dans une politique qui s'applique au principal ou à la ressource affectée. Pour afficher la liste des actions, types de ressources et clés de condition pris en charge par chaque service, veuillez consulter Actions, ressources et clés de condition pour les services AWS.

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 une 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. Pour voir les tables de services AWS qui identifient les ressources affectées par une action, veuillez consulter Actions, ressources et clés de condition pour les services AWS.