Comment puis-je utiliser IAM pour accéder aux ressources d'un autre compte AWS ?

Lecture de 4 minute(s)
0

Je souhaite configurer l'accès intercompte à un rôle AWS Identity and Access Management (IAM) dans un autre compte AWS.

Brève description

Pour accéder aux ressources d'un autre compte AWS, établissez une relation de confiance avec un rôle IAM.

Par exemple, vous souhaitez accéder au compte de destination depuis le compte source. Pour endosser le rôle IAM du compte source au compte de destination, fournissez votre autorisation utilisateur IAM pour l'API AssumeRole. Vous devez spécifier votre utilisateur IAM dans la relation de confiance du rôle IAM de destination.

Remarque : Vous pouvez également endosser un rôle depuis le rôle IAM source vers le rôle IAM de destination, plutôt que de l’utilisateur vers le rôle avec le chaînage de rôles. Le chaînage de rôles ne fonctionne que pour l’accès par programmation tel que l'interface de ligne de commande AWS (AWS CLI) ou l'API. Le changement de rôle ne peut pas être utilisé avec la console de gestion AWS.

Résolution

Pour utiliser IAM afin d'accéder aux ressources d'un autre compte AWS, effectuez les actions suivantes.

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez la section Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.

Compte source

Procédez comme suit :

  1. Utilisez l'éditeur JSON pour créer une stratégie IAM similaire à l'exemple suivant :

    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 stratégie IAM à vos autorisations utilisateur IAM.

Compte de destination

Procédez comme suit :

  1. Créez un rôle IAM sur la console.

  2. Collez la stratégie de confiance personnalisée comme suit :

    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 n'avez pas accès à la création et à la modification de rôles et d'utilisateurs IAM, demandez de l'aide au propriétaire du compte pour terminer le processus. Il est recommandé de restreindre l'accès à votre compte et à vos ressources de manière que seules les entités en lesquelles vous avez confiance puissent y accéder.

Vous pouvez modifier cette stratégie pour autoriser l'attribution d'autant d'entités sources à autant de rôles de destination que nécessaire. Par exemple, vous pouvez modifier la valeur de Principal de la stratégie de confiance du compte de destination en « AWS » : « SOURCE-ACCOUNT-ID ». Cela permet à toutes les entités du compte source dotées des autorisations relatives à l’exercice du rôle d'endosser le rôle de compte de destination. Pour plus d'informations, consultez la section Comment spécifier un principal et Création ou modification de la stratégie.

Tester votre accès

Pour tester votre accès, suivez les instructions figurant dans la section Basculer d'un rôle utilisateur vers un rôle IAM (console) ou Basculer vers un rôle IAM (AWS CLI). Pour de plus amples informations, consultez la section Didacticiel IAM : Déléguer l’accès intercompte AWS à l’aide de rôles IAM.

Informations connexes

Comment puis-je endosser un rôle IAM à l’aide de l’AWS CLI ?

J'ai créé ou mis à jour une stratégie IAM et j'ai reçu le message d'erreur « Has prohibited field Principal ». Comment puis-je résoudre ce problème ?

Comment puis-je fournir un accès intercompte à des objets se trouvant dans des compartiments Amazon S3 ?

Comment puis-je résoudre l’erreur « AccessDenied » ou « Invalid information » lorsque j’essaie d’endosser un rôle IAM entre comptes ?