Salta al contenuto

Come posso decodificare e analizzare gli errori di autorizzazione "UnauthorizedOperation" per gli avvii non riusciti di istanze EC2?

3 minuti di lettura
0

Quando provo ad avviare un'istanza Amazon Elastic Compute Cloud (Amazon EC2), ricevo il seguente errore: "An error occurred (UnauthorizedOperation) when calling the RunInstances operation: You are not authorized to perform this operation. Encoded authorization failure message encoded-message".

Breve descrizione

L'errore UnauthorizedOperation può verificarsi quando la policy di AWS Identity and Access Management (IAM) è troppo restrittiva. Questo errore può verificarsi anche quando l'utente IAM non ha le autorizzazioni per avviare istanze EC2. Per ottenere maggiori dettagli sull'errore, decodifica il messaggio codificato nel messaggio di errore utilizzando l'Interfaccia della linea di comando AWS (AWS CLI) o AWS CloudShell. Il messaggio codificato è simile all'esempio seguente:

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

Nota: per decodificare il messaggio codificato, l'utente o il ruolo IAM deve avere l'autorizzazione per eseguire l'operazione API DecodeAuthorizationMesssage. Se l'utente o il ruolo non è autorizzato, l'operazione di decodifica non riesce e viene visualizzato il seguente messaggio di errore:

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

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per decodificare l'errore di mancata autorizzazione, completa i passaggi seguenti:

  1. Esegui il comando decode-authorization-message:
    aws sts decode-authorization-message --encoded-message encoded-message-error
    Nota: sostituisci encoded-message-error con il messaggio codificato contenuto nel messaggio di errore.
    Esempio di messaggio decodificato:
    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\"}]}}]}}}"
    }
    Il messaggio decodificato elenca le autorizzazioni richieste che mancano nella policy dell'utente o del ruolo IAM.
  2. Esamina i campi principal, action, resource, condition e key nel messaggio codificato per ottenere maggiori informazioni sulla causa dell'errore. Il messaggio include l'azione e la risorsa richieste, il principale che ha effettuato la richiesta e i valori della chiave di condizione della richiesta dell'utente.
    Nell'esempio precedente, la richiesta ha avuto esito negativo perché AWS-User ha l'autorizzazione per eseguire l'azione iam:PassRole sull'ARN arn:aws:iam::accountID:role/EC2_instance_Profile_role.
  3. Modifica la policy IAM associata all'utente o al ruolo IAM per aggiungere le autorizzazioni richieste.

Puoi anche utilizzare il simulatore di policy IAM per risolvere i problemi relativi alle policy basate sull'identità e ai limiti delle autorizzazioni IAM.

Informazioni correlate

Perché non posso eseguire i comandi di AWS CLI sulla mia istanza EC2?

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

Troubleshoot access denied error messages

AWS UFFICIALEAggiornata 10 mesi fa