J'ai essayé d'effectuer une action d'API avec un utilisateur de Gestion des identités et des accès AWS (AWS IAM) pour transmettre un rôle à un service AWS. L'action API a échoué et j'ai reçu une erreur similaire à celle-ci : « You are not authorized to perform this operation. User: arn:aws:iam::123456789012:user/Bob is not authorized to perform: iam:PassRole on resource: arn:aws:iam::123456789012:role/ExampleRole because no identity-based policy allows the iam:PassRole action. »
Brève description
Grâce à certains services AWS, vous pouvez transmettre un rôle IAM existant à ce service, ce qui vous évite de créer un nouveau rôle de service. Vous devez toutefois être autorisé à transmettre le rôle IAM au service AWS.
Résolution
Mettez à jour la politique IAM pour permettre à l'utilisateur IAM d'exécuter l'action API iam:PassRole pour le service AWS.
Remarque : vous pouvez utiliser l'autorisation PassRole uniquement pour transmettre un rôle IAM à un service AWS qui partage le même compte AWS, pas un autre compte. Pour plus d'informations, consultez la section Accès aux ressources intercompte dans IAM.
La politique IAM suivante permet à un utilisateur IAM de transmettre le rôle nommé ExampleRole au service Amazon Elastic Compute Cloud (Amazon EC2) :
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::account-ID:role/ExampleRole",
"Condition": {
"StringEquals": {
"iam:PassedToService": "ec2.amazonaws.com"
}
}
}
]
}
Remarque : remplacez ExampleRole par votre rôle et Account-ID par l’ID de votre compte.
Incluez un ARN de ressource spécifique dans l'élément Ressource pour limiter la capacité des utilisateurs à transmettre le rôle à d'autres utilisateurs et éviter le problème de l’adjoint confus. Pour plus d'informations, consultez la section Octroi à un utilisateur des autorisations lui permettant de transmettre un rôle à un service AWS.
Informations connexes
Comment utiliser l'autorisation PassRole avec les rôles IAM