Pourquoi ai-je reçu une erreur «Accès refusé » ou « Informations non valides » en essayant d'endosser un rôle IAM ?

Date de la dernière mise à jour : 16/06/2020

J'ai essayé d'endosser un rôle AWS Identity and Access Management (IAM). Cependant, je reçois un message d'erreur similaire à celui-ci :

« 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 ayez deux comptes, l'un nommé Account_Bob et l'autre nommé Account_Alice. Vous avez également deux utilisateurs ou rôles IAM, l'un nommé Bob et l'autre nommé Alice. Dans ce scénario, 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

Une bonne pratique consiste à vous assurer des points suivants :

  • Bob dispose des autorisations pour AssumeRole.
  • Vous êtes connecté au compte AWS en tant que Bob. Pour plus d'informations, consultez votre ID de compte AWS et son alias.
  • 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).
  • 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.