Pourquoi je reçois l'erreur « Accès refusé » ou « Informations non valides » lorsque j'essaie d'endosser un rôle IAM entre comptes ?

Lecture de 3 minute(s)
0

J'ai essayé d'endosser un rôle AWS Identity and Access Management (IAM) entre comptes. Toutefois, un message d'erreur de ce type s'affiche : « Une erreur s'est produite (Accès refusé) lors de l'appel de l'opération AssumeRole : » -ou- « Informations non valides dans un ou plusieurs champs. Vérifiez vos informations ou contactez votre administrateur. »

Brève description

Pour endosser le rôle IAM dans un autre compte AWS, commencez par modifier les autorisations d'un compte (le compte qui a endossé le rôle IAM). Ensuite, modifiez la stratégie d'approbation de l'autre compte (le compte qui permet d'endosser le rôle IAM).

Par exemple, supposons que vous disposez de deux comptes, l'un nommé Account_Bob et l'autre nommé Account_Alice. Vous avez également un utilisateur ou un rôle IAM nommé Bob dans Account_Bob et un rôle IAM nommé Alice dans Account_Alice. Dans ce cas de figure, Bob endossera le rôle IAM nommé Alice.

Pour utiliser l'appel d'API AssumeRole avec plusieurs comptes ou entre deux comptes, vous devez disposer d'une stratégie d'approbation pour accorder à l'autorisation d'endosser des rôles similaires à ce qui suit :

Voici un exemple des autorisations requises pour Bob :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PermissionToAssumeAlice",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::Account_Alice:role/Alice"
    }
  ]
}

Voici un exemple de stratégie d'approbation pour Alice :

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

Solution

Pour éviter les erreurs lorsque vous assumez un rôle IAM entre comptes, gardez à l'esprit les points suivants :

Remarque : si vous recevez des erreurs lors de l'exécution de l'interface de la ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

  • Le rôle assumant, Bob, doit disposer des autorisations nécessaires pour AssumeRole.
  • Vous devez être connecté au compte AWS en tant que Bob. Pour plus d'informations, consultez votre ID de compte AWS et son alias.
  • Le rôle assumé, Alice, doit exister. Assurez-vous qu'il n'est pas supprimé et que l'ARN est correctement configuré.
  • Si vous utilisez la création de chaînes de rôles, vous utilisez peut-être les informations d'identification IAM d'une session précédente. Pour plus d'informations, consultez la section relative à la création de chaînes de rôles dans les termes et concepts relatifs aux rôles.
  • Si Account_Bob fait partie d'une AWS Organizations, il peut y avoir une politique de contrôle des services (SCP) qui limite l'accès à AssumeRole avec Account_Bob ou Account_Alice. Pour plus d'informations, consultez Politiques de contrôle des services (SCP).

Informations connexes

Comment puis-je obtenir des données pour résoudre les refus d'accès ou d'accès non autorisé IAM ?

Passer à un rôle (console)

Passer à un rôle IAM (AWS CLI)

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans