En utilisant AWS re:Post, vous acceptez les AWS re:Post Conditions d’utilisation

Comment résoudre l’erreur « AccessDenied » 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 de gestion des identités et des accès AWS (AWS IAM) sur plusieurs comptes. Cependant, j’ai reçu un message d’erreur similaire au suivant : "An error occurred (AccessDenied) when calling the AssumeRole operation:" or "Invalid information in one or more fields. Check your information or contact your administrator."

Résolution

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

Pour endosser le rôle IAM dans compte croisé, modifiez d’abord les autorisations du compte qui endossait le rôle IAM. Ensuite, dans l’autre compte AWS, modifiez la politique de confiance qui autorise d’endosser le rôle IAM.

Dans l’exemple suivant, il y a deux comptes, l’un nommé Account_Bob et l’autre nommé Account_Alice. On voit é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 scénario, Bob endossera le rôle IAM nommé Alice.

Pour utiliser l’appel d’APIAssumeRole sur plusieurs comptes AWS ou entre comptes, vous devez disposer d’une politique de confiance qui accorde l’autorisation d’endosser des rôles.

Exemples d’autorisations requises pour Bob :

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

Exemple de politique de confiance requise pour Alice :

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

Exemple de commande AWS CLI pour assumer un rôle IAM entre comptes :

aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/example-role" --role-session-name assume-cross-account

Pour en savoir plus, consultez Comment puis-je endosser un rôle IAM à l’aide de l’AWS CLI ?

Pour éviter les erreurs lorsque vous endossez un rôle IAM entre comptes, veillez à respecter les bonnes pratiques suivantes correspondant à votre cas d’utilisation :

  • Bob, celui qui va endosser le rôle, doit disposer des autorisations nécessaires pour l’action d’API AssumeRole.
  • Vous devez être connecté au compte AWS en tant que Bob. Pour en savoir plus, consultez la section Using an alias for your AWS account ID.
  • Alice, le rôle qui va être endossé, doit exister. Vérifiez qu’il n’est pas supprimé et que l’Amazon Resource Name (ARN) est correctement configuré.
  • Si vous utilisez le chaînage de rôles, vérifiez que vous n’utilisez pas les informations d’identification IAM d’une session précédente. Pour en savoir plus, consultez la section role chaining de l’article roles terms and concepts.
  • Si Account_Bob fait partie d’une organisation AWS, il existe peut-être une politique de contrôle des services (SCP) qui restreint l’accès à AssumeRole avec Account_Bob ou Account_Alice. Veillez à modifier ou supprimer la SCP qui restreint l’accès avec Account_Bob ou Account_Alice. Pour en savoir plus, consultez lesSCP.

Informations complémentaires

Comment puis-je obtenir des données pour aider à résoudre les erreurs d’accès aux autorisations IAM refusées ou non autorisées ?

Switch from a user to an IAM role (console)

Basculer vers un rôle IAM (AWS CLI)

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