Come posso decodificare un messaggio di errore di autorizzazione dopo aver ricevuto un errore "UnauthorizedOperation" durante l'avvio di un'istanza EC2?

3 minuti di lettura
0

Sto cercando di avviare un'istanza Amazon Elastic Compute Cloud (Amazon EC2), ma ricevo l'errore "Si è verificato un errore (UnauthorizedOperation) durante la chiamata all'operazione RunInstances: Non sei autorizzato a eseguire questa operazione. Messaggio di errore di autorizzazione codificato encoded-message". Come faccio a risolvere questo problema?

Breve descrizione

L'errore "UnauthorizedOperation" indica che il ruolo o l'utente di AWS Identity and Access Management (IAM) che tenta di eseguire l'operazione non dispone delle autorizzazioni necessarie per avviare le istanze EC2. Poiché l'errore riguarda un messaggio codificato, utilizza l'Interfaccia della linea di comando AWS (AWS CLI) per decodificare il messaggio. Questa decodifica fornisce ulteriori dettagli sull'errore di autorizzazione.

Prerequisito

L'utente o il ruolo IAM che tenta di decodificare il messaggio codificato deve disporre dell'autorizzazione all'azione API DecodeAuthorizationMessage con una policy IAM. Se l'utente o il ruolo non dispone di questa autorizzazione, l'azione di decodifica ha esito negativo e viene visualizzato il seguente messaggio di errore:

"Errore: Si è verificato un errore del client (AccessDenied) durante la chiamata all'operazione DecodeAuthorizationMessage: Utente: xxx non è autorizzato a eseguire l'azione: (sts:DecodeAuthorizationMessage)".

Risoluzione

1.    Verifica che l'Interfaccia della linea di comando AWS sia installata e configurata sul tuo computer con il seguente comando:

$ aws --version

Nota: Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS CLI, assicurati di utilizzare la versione più recente dell'interfaccia della linea di comando AWS CLI.

2.    Esegui il comando decode-authorization-message. Sostituisci encoded-message con l'esatto messaggio codificato contenuto nel messaggio di errore.

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

3.    Il messaggio decodificato elenca le autorizzazioni richieste che mancano nel ruolo IAM o nella policy utente.

Esempio di messaggio codificato:

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

Esempio di messaggio decodificato:

$ 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\"}]}}]}}}"
}

Il messaggio di errore precedente indica che la richiesta non è riuscita a chiamare RunInstances perché AWS-User non era autorizzato a eseguire l'azione iam:PassRole in arn:aws:iam: :accountID:role/EC2_instance_Profile_role.

4.    Modifica la policy IAM associata al ruolo o all'utente IAM per aggiungere le autorizzazioni richieste mancanti elencate nel passaggio precedente.


Informazioni correlate

Perché non posso eseguire i comandi dell'Interfaccia della linea di comando AWS sulla mia istanza EC2?

Perché non riesco ad avviare o lanciare la mia istanza EC2?

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa