Comment accéder aux ressources d'un autre compte AWS à l'aide d'AWS IAM ?

Dernière mise à jour : 01/08/2022

Je souhaite assumer un rôle Identity and Access Management (IAM) dans un autre compte AWS. Comment faut-il configurer l'accès entre comptes à l'aide d'IAM ?

Brève description

Vous pouvez configurer une relation d'approbation avec un rôle IAM dans un autre compte AWS pour accéder à leurs ressources. Par exemple, vous souhaitez accéder au compte de destination à partir du compte source. Vous pouvez assumer le rôle IAM du compte source au compte de destination en fournissant votre autorisation d'utilisateur IAM pour l'API AssumeRole. Vous devez spécifier votre utilisateur IAM dans la relation d'approbation du rôle IAM de destination.

Remarque : vous pouvez également assumer un rôle allant du rôle IAM source au rôle IAM de destination plutôt que de vous servir de l'utilisateur pour jouer avec le chaînage des rôles. Le chaînage des rôles fonctionne uniquement pour les accès par programmation tels que l'AWS Command Line Interface (AWS CLI) ou une API, et ne peut pas être utilisé avec la console de gestion AWS.

Solution

Suivez ces instructions pour créer une politique d'autorisation IAM pour le compte source, attacher la politique à un utilisateur et créer un rôle pour le compte de destination.

Remarque : si vous constatez des erreurs lors de l'exécution des commandes de l'AWS CLI, assurez-vous que vous utilisez bien la dernière version d'AWS CLI.

Compte source

1.    Créez une politique IAM similaire à celle-ci :

Remarque : remplacez DESTINATION-ACCOUNT-ID et DESTINATION-ROLENAME par vos propres valeurs.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": [
        "arn:aws:iam::DESTINATION-ACCOUNT-ID:role/DESTINATION-ROLENAME"
      ]
    }
  ]
}

2.    Attachez la politique IAM à vos autorisations utilisateur IAM.

Attachez la politique créée à vos autorisations utilisateur IAM en suivant les étapes décrites ici.

Compte de destination

1.    Créez un rôle IAM.

2.    Collez la politique d'approbation personnalisée similaire à la suivante :

Remarque : remplacez SOURCE-ACCOUNT-ID et SOURCE-USERNAME par vos propres valeurs.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::SOURCE-ACCOUNT-ID:user/SOURCE-USERNAME"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Remarque : si vous ne disposez pas de l'accès requis pour créer et modifier des utilisateurs et des rôles IAM, vous devez demander l'aide du propriétaire de l'autre compte en vue de terminer le processus. Il est recommandé d'accorder l'accès à votre compte et à vos ressources uniquement aux entités auxquelles vous faites confiance.

Vous pouvez modifier cette politique pour permettre d'endosser autant d'entités source à autant de rôles de destination que nécessaire. Par exemple, vous pouvez modifier la valeur Principal (Mandataire) de la politique d'approbation du compte de destination en "AWS": "SOURCE-ACCOUNT-ID". Cela permet à toutes les entités du compte source disposant des autorisations de rôle d'assumer le rôle d'assumer le rôle de compte de destination. Pour plus d'informations, consultez les sections Spécifier un mandataire et Créer ou modifier la politique.

Tester votre accès

Pour tester votre accès, suivez les instructions relatives au Changement de rôle (console).

-ou-

Suivez les instructions relatives au Passage vers un rôle IAM (AWS CLI).

Pour plus d'informations, consultez la section Tutoriel IAM : déléguer l'accès entre les comptes AWS à l'aide de rôles IAM.