Wie kann ich eine Meldung über einen Autorisierungsfehler entschlüsseln, nachdem ich beim Start einer EC2-Instance den Fehler „UnauthorizedOperation“ erhalten habe?

Lesedauer: 3 Minute
0

Ich versuche, eine Instance von Amazon Elastic Compute Cloud (Amazon EC2) zu starten, erhalte aber die Fehlermeldung „Beim Aufrufen der Operation RunInstances ist ein Fehler aufgetreten (UnauthorizedOperation): Sie sind nicht berechtigt, diesen Vorgang durchzuführen. Fehlermeldung „Verschlüsselte Autorisierung“ (encoded-message)". Wie behebe ich dieses Problem?

Kurzbeschreibung

Der Fehler „UnauthorizedOperation“ weist darauf hin, dass die Berechtigungen, die mit der Rolle oder dem Benutzer des AWS Identity and Access Management (IAM), die versuchen, einen Vorgang auszuführen, nicht zum Starten von EC2-Instances ausreichen. Da dieser Fehler eine verschlüsselte Nachricht betrifft, müssen Sie das AWS Command Line Interface (AWS CLI) nutzen, um die Nachricht zu entschlüsseln. Diese Entschlüsselung verschafft Ihnen weitere Details zum vorliegenden Autorisierungsfehler.

Voraussetzung

Der IAM-Benutzer oder die IAM-Rolle, die versuchen, die verschlüsselte Nachricht zu entschlüsseln, müssen über die Berechtigung zur API-Aktion DecodeAuthorizationMesssage in einer IAM-Richtlinie verfügen. Wenn der Benutzer oder die Rolle nicht über diese Berechtigung verfügt, schlägt die Entschlüsselung fehl und die folgende Fehlermeldung wird angezeigt:

"Fehler: Beim Aufrufen der Operation DecodeAuthorizationMessage ist ein Client-Fehler (AccessDenied) aufgetreten: Benutzer: xxx ist nicht autorisiert, die Aktion: (sts:DecodeAuthorizationMessage) auszuführen.

Behebung

1.    Stellen Sie mit dem folgenden Befehl sicher, dass das AWS CLI auf Ihrem Computer installiert und konfiguriert ist:

$ aws --version

**Hinweis:**Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

2.    Führen Sie den Befehl decode-authorization-message aus. Ersetzen Sie encoded-message durch die exakte verschlüsselte Nachricht, die in der Fehlermeldung enthalten ist.

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

3.    Die entschlüsselte Nachricht listet die erforderlichen Berechtigungen auf, die in der IAM-Rolle oder Benutzerrichtlinie fehlen.

Beispiel für eine verschlüsselte Nachricht:

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

Beispiel für eine entschlüsselte Nachricht:

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

Die vorherige Fehlermeldung weist darauf hin, dass die Anfrage RunInstances nicht aufrufen konnte, da der AWS-Benutzer nicht berechtigt war, die Aktion iam:PassRole unter der arn:aws:iam::accountID:role/EC2_instance_Profile_role auszuführen.

4.    Bearbeiten Sie die IAM-Richtlinie, die der IAM-Rolle oder dem IAM-Benutzer zugeordnet ist, um die fehlenden erforderlichen Berechtigungen hinzuzufügen, die im vorherigen Schritt aufgeführt wurden.


Verwandte Informationen

Warum kann ich keine AWS-CLI-Befehle in meiner EC2-Instance ausführen?

Warum kann ich meine EC2-Instance nicht starten oder aufrufen?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren