Comment puis-je décoder un message d'échec d'autorisation après avoir reçu une erreur « UnauthorizedOperation » lors du lancement d'une instance EC2 ?

Lecture de 3 minute(s)
0

J'essaie de lancer une instance Amazon Elastic Compute Cloud (Amazon EC2), mais je reçois le message d'erreur « Une erreur s'est produite (UnauthorizedOperation) lors de l'appel de l'opération RunInstances : vous n'êtes pas autorisé à effectuer cette opération. Message encodé d'échec d'autorisation encoded-message ». Comment puis-je résoudre ce problème ?

Brève description

Le message d'erreur « UnauthorizedOperation » indique que les autorisations associées au rôle AWS Identity and Access Management (IAM), ou à l'utilisateur qui essaie d'effectuer l'opération ne permettent pas de lancer des instances EC2. Puisqu'un message codé est également signalé, utilisez l'AWS Command Line Interface (AWS CLI) pour le décoder. Cette opération permet d'obtenir des détails supplémentaires sur l'échec de l'autorisation.

Prérequis

L'utilisateur ou le rôle IAM qui tente de décoder le message doit être autorisé à effectuer l'action d'API DecodeAuthorizationMessage via une stratégie IAM. Si l'utilisateur ou le rôle ne dispose pas de cette autorisation, l'action de décodage échoue et le message d'erreur suivant s'affiche :

« Erreur : une erreur client (AccessDenied) s'est produite lors de l'appel de l'opération DecodeAuthorizationMessage : l'utilisateur xxx n'est pas autorisé à effectuer l'action (sts : DecodeAuthorizationMessage). ».

Résolution

1.    Vérifiez que l'interface de ligne de commande AWS (AWS CLI) est installée et configurée sur votre ordinateur, en exécutant la commande suivante.

$ aws --version

Remarque : en cas d'erreurs lors de l'exécution de commandes AWS CLI, vérifiez que vous utilisez la version la plus récente d'AWS CLI.

2.    Exécutez la commande decode-authorization-message. Remplacez encoded-message par le message encodé contenu dans le message d'erreur.

$ aws sts decode-authorization-message --encoded-message encoded-message

3.    Le message décodé répertorie les autorisations requises dont le rôle ou l'utilisateur IAM ne dispose pas.

Exemple de message encodé :

Launch Failed - You are not authorized to perform this operation. Encoded authorization failure message: 4GIOHlTkIaWHQD0Q0m6XSnuUMCm-abcdefghijklmn-abcdefghijklmn-abcdefghijklmn

Exemple de message décodé :

$ aws sts decode-authorization-message --encoded-message 4GIOHlTkIaWHQD0Q0m6XSnuUMCm-abcdefghijklmn-abcdefghijklmn-abcdefghijklmn

{
    "DecodedMessage": 
"{\"allowed\":false,\"explicitDeny\":false,\"matchedStatements\":{\"items\":[]},\"failures\":{\"items\":[]},\"context\":{\"principal\":{\"id\":\"ABCDEFGHIJKLMNO\",\"name\":\"AWS-User\",
\"arn\":\"arn:aws:iam::accountID:user/test-user\"},\"action\":\"iam:PassRole\",
\"resource\":\"arn:aws:iam::accountID:role/EC2_instance_Profile_role\",\"conditions\":{\"items\":[{\"key\":\"aws:Region\",\"values\":{\"items\":[{\"value\":\"us-east-2\"}]}},
{\"key\":\"aws:Service\",\"values\":{\"items\":[{\"value\":\"ec2\"}]}},{\"key\":\"aws:Resource\",\"values\":{\"items\":[{\"value\":\"role/EC2_instance_Profile_role\"}]}},
{\"key\":\"iam:RoleName\",\"values\":{\"items\":[{\"value\":\"EC2_instance_Profile_role\"}]}},{\"key\":\"aws:Account\",\"values\":{\"items\":[{\"value\":\"accountID\"}]}},
{\"key\":\"aws:Type\",\"values\":{\"items\":[{\"value\":\"role\"}]}},{\"key\":\"aws:ARN\",\"values\":{\"items\":[{\"value\":\"arn:aws:iam::accountID:role/EC2_instance_Profile_role\"}]}}]}}}"
}

Le message d'erreur précédent indique que la requête n'a pas permis d'appeler la commande RunInstances car l'utilisateur AWS-User n'était pas autorisé à effectuer l'action iam:PassRole avec le rôle arn:aws:iam::accountID:role/EC2_instance_Profile_role.

4.    Modifiez la stratégie IAM associée au rôle ou à l'utilisateur IAM pour ajouter les autorisations requises manquantes répertoriées à l'étape précédente.


Informations connexes

Pourquoi ne puis-je pas exécuter de commandes depuis l'interface de ligne de commande AWS sur mon instance EC2 ?

Pourquoi ne puis-je pas démarrer ou lancer mon instance EC2 ?

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