Direkt zum Inhalt

Wie decodiere und analysiere ich Autorisierungsfehler „UnauthorizedOperation“ für Startfehler der EC2-Instance?

Lesedauer: 3 Minute
0

Wenn ich versuche, eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance zu starten, erhalte ich die folgende Fehlermeldung: „An error occurred (UnauthorizedOperation) when calling the RunInstances operation: You are not authorized to perform this operation. Encoded authorization failure message encoded-message.“

Kurzbeschreibung

Der Fehler UnauthorizedOperation kann auftreten, wenn die AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Richtlinie zu restriktiv ist. Dieser Fehler kann auch auftreten, wenn der IAM-Benutzer keine Berechtigungen zum Starten von EC2-Instances hat. Um weitere Informationen über den Fehler zu erhalten, verwende die AWS Command Line Interface (AWS CLI) oder AWS CloudShell, um die codierte Meldung in der Fehlermeldung zu decodieren. Die codierte Meldung sieht dem folgenden Beispiel ähnlich aus:

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

Hinweis: Um die codierte Meldung zu decodieren, muss der IAM-Benutzer oder die IAM-Rolle die Berechtigung haben, die API-Operation DecodeAuthorizationMesssage auszuführen. Wenn der Benutzer oder die Rolle nicht über diese Berechtigung verfügt, schlägt der Decodierungsvorgang mit der folgenden Fehlermeldung fehl:

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

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Gehe wie folgt vor, um den Fehler bei der Autorisierung zu decodieren:

  1. Führe den Befehl decode-authorization-message aus:
    aws sts decode-authorization-message --encoded-message encoded-message-error
    Hinweis: Ersetze encoded-message-error durch die codierte Meldung, die in der Fehlermeldung enthalten ist.
    Beispiel für eine decodierte Meldung:
    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\"}]}}]}}}"
    }
    Die decodierte Meldung listet die erforderlichen Berechtigungen auf, die in der Richtlinie zum IAM-Benutzer oder zur IAM-Rolle fehlen.
  2. Überprüfe die Prinzipal-, Aktions-, Resourcen-, Bedingungs- und **Schlüssel-**Felder in der decodierten Meldung, um weitere Informationen über die Ursache des Fehlers zu erhalten. Die Meldung enthält die angeforderte Aktion und Ressource, den Prinzipal, der die Anforderung gestellt hat, und die Bedingungsschlüsselwerte der Benutzeranforderung.
    Im vorherigen Beispiel ist die Anforderung fehlgeschlagen, weil der AWS-Benutzer nicht die Berechtigung hat, die Aktion iam:PassRole für den ARN arn:aws:iam::accountID:role/EC2_instance_Profile_role auszuführen.
  3. Bearbeite die IAM-Richtlinie, die dem IAM-Benutzer oder der IAM-Rolle zugeordnet ist, um die erforderlichen Berechtigungen hinzuzufügen.

Du kannst den IAM-Richtliniensimulator auch verwenden, um Probleme mit identitätsbasierten Richtlinien und IAM-Berechtigungsgrenzen zu beheben.

Ähnliche Informationen

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

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

Problembehandlung bei Fehlermeldungen mit verweigertem Zugriff

AWS OFFICIALAktualisiert vor 7 Monaten