Comment puis-je décoder et analyser les erreurs d'autorisation « UnauthorizedOperation » en cas d'échec du lancement d'une instance EC2 ?

Lecture de 3 minute(s)
0

J'ai essayé de lancer une instance Amazon Elastic Compute Cloud (Amazon EC2) et j'ai reçu le message d'erreur suivant : « An error occurred (UnauthorizedOperation) when calling the RunInstances operation: You are not authorized to perform this operation. Encoded authorization failure message encoded-message ».

Brève description

L'erreur UnauthorizedOperation peut se produire lorsque la stratégie AWS Identity and Access Management (IAM) est trop restrictive. Cette erreur peut également se produire lorsque l'utilisateur IAM n'est pas autorisé à lancer des instances EC2. Pour obtenir plus de détails sur l’échec, utilisez l’interface de ligne de commande AWS (AWS CLI) pour décoder le message codé qui se trouve dans le message d’erreur.

Remarque : Pour décoder le message codé, l'utilisateur ou le rôle IAM doit être autorisé à effectuer l'opération d'API DecodeAuthorizationMesssage. Si l’utilisateur ou le rôle ne dispose pas de cette autorisation, l’action de décodage échoue avec le message d’erreur suivant :

« Error: A client error (AccessDenied) occurred when calling the DecodeAuthorizationMessage operation: User: xxx is not authorized to perform: (sts:DecodeAuthorizationMessage) action. »

Résolution

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

Pour décoder l'erreur d'échec d'autorisation, procédez comme suit :

  1. Exécutez la commande decode-authorization-message :

    aws sts decode-authorization-message --encoded-message encoded-message-error

    Remarque : Remplacez encoded-message-error par le message codé qui se trouve dans le message d'erreur.

    Le message décodé répertorie les autorisations requises qui ne figurent pas dans le rôle IAM ou la stratégie utilisateur.

    Exemple de message codé :

    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
    ...
    "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\"}]}}]}}}"
    }
  2. Vérifiez les champs principal, action, ressource, condition et clé pour obtenir plus d'informations sur la cause de l’échec. Le message inclut l'action et la ressource demandées, le principal qui a présenté la requête et les valeurs de la clé de condition de la requête de l'utilisateur.

    Dans l’exemple précédent, la requête a échoué car l’Utilisateur AWS n’est pas autorisé à effectuer l’action iam:PassRole sur l’ARN arn:aws:iam::accountID:role/EC2_instance_Profile_role.

  3. Modifiez la stratégie IAM associée à l'utilisateur ou au rôle IAM pour ajouter les autorisations requises.

Vous pouvez également utiliser le simulateur de stratégie IAM pour résoudre les problèmes liés aux stratégies basées sur l'identité et aux limites d'autorisation IAM.

Informations connexes

Pourquoi ne puis-je pas exécuter les commandes de l’AWS CLI sur mon instance EC2 ?

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

Résoudre les messages d’erreur d’accès refusé

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