Behebung von AWS CLI-Fehlern - AWS Command Line Interface

Diese Dokumentation bezieht sich ausschließlich auf Version 1 der AWS CLI. Eine Dokumentation zu Version 2 der AWS CLI finden Sie im Benutzerhandbuch für Version 2.

Behebung von AWS CLI-Fehlern

In diesem Abschnitt werden häufige Fehler sowie Maßnahmen beschrieben, mit denen sich die Probleme beheben lassen. Wir empfehlen, zunächst die Maßnahmen der allgemeinen Problembehebung zu befolgen.

Allgemeine Fehlerbehebung, die Sie zuerst versuchen sollten

Wenn bei der Verwendung der AWS CLI ein Fehler oder Problem auftritt, empfehlen wir die folgenden allgemeinen Tipps zur Problembehebung.

Zurück zum Seitenanfang

Überprüfen der Formatierung Ihrer AWS CLI-Befehle

Wenn Sie eine Fehlermeldung erhalten, dass ein Befehl nicht vorhanden ist oder dass ein Parameter (Parameter validation failed) nicht erkannt wird, der laut der Dokumentation verfügbar ist, ist der Befehl möglicherweise falsch formatiert. Wir empfehlen, Folgendes zu überprüfen:

Weitere Informationen dazu, wie ein spezifischer Befehl strukturiert werden soll, finden Sie im Referenzhandbuch zur AWS CLI.

Zurück zum Seitenanfang

Sicherstellen, dass Sie eine aktuelle Version der AWS CLI ausführen

Wenn Sie eine Fehlermeldung erhalten, dass ein Befehl nicht vorhanden ist oder dass ein Parameter nicht erkannt wird, der laut Referenzhandbuch zur AWS CLI verfügbar ist, stellen Sie zunächst sicher, dass der Befehl korrekt formatiert ist. Wenn die Formatierung korrekt ist, empfehlen wir, ein Upgrade auf die neueste Version der AWS CLI vorzunehmen. Aktualisierte Versionen der AWS CLI werden fast jeden Werktag veröffentlicht. In diesen neuen Versionen der AWS CLI werden neue Services, Funktionen und Parameter von AWS eingeführt. Die einzige Möglichkeit, Zugriff auf diese neuen Services, Funktionen oder Parameter zu erhalten, besteht darin, ein Upgrade auf eine Version durchzuführen, die nach der erstmaligen Einführung dieses Elements veröffentlicht wurde.

Wie Sie Ihre Version der AWS CLI aktualisieren, hängt davon ab, wie Sie diese ursprünglich installiert haben (beschrieben in Installation, Aktualisierung und Deinstallation der AWS CLI).

Wenn Sie eines der gebündelten Installationsprogramme verwendet haben, sollten Sie die vorhandene Installation entfernen und die neueste Version für Ihr Betriebssystem herunterladen und installieren.

Zurück zum Seitenanfang

Verwenden der Option --debug

Wenn die AWS CLI einen Fehler meldet, den Sie nicht sofort verstehen, oder unerwartete Ergebnisse ausgibt, können Sie weitere Informationen über den Fehler einholen, indem Sie den Befehl erneut mit der Option --debug ausführen. Mit dieser Option gibt die AWS CLI Informationen zu den einzelnen Schritten aus, die zur Verarbeitung des Befehls erforderlich sind. Anhand der Informationen in der Ausgabe können Sie ermitteln, an welcher Stelle der Fehler auftritt und wo er seinen Ursprung hat.

Sie können die Ausgabe an eine Textdatei senden, um sie später zu überprüfen oder an den AWS Support zu senden, wenn Sie dazu aufgefordert werden.

Wenn Sie die Option --debug einfügen, umfassen die Informationen u. a.:

  • Suche nach Anmeldeinformationen

  • Analysieren der bereitgestellten Parameter

  • Erstellen der an AWS-Server gesendeten Anfrage

  • Inhalt der an AWS gesendeten Anfrage

  • Inhalt der unformatierten Antwort

  • Die formatierte Ausgabe

Es folgt ein Beispiel für einen Befehl, der mit und ohne die Option --debug ausgeführt wird.

$ aws iam list-groups --profile MyTestProfile { "Groups": [ { "Path": "/", "GroupName": "MyTestGroup", "GroupId": "AGPA0123456789EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyTestGroup", "CreateDate": "2019-08-12T19:34:04Z" } ] }
$ aws iam list-groups --profile MyTestProfile --debug 2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205 2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['iam', 'list-groups', '--debug'] 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function add_scalar_parsers at 0x7fdf173161e0> 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function register_uri_param_handler at 0x7fdf17dec400> 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function inject_assume_role_provider_cache at 0x7fdf17da9378> 2019-08-12 12:36:18,307 - MainThread - botocore.credentials - DEBUG - Skipping environment variable credential check because profile name was explicitly set. 2019-08-12 12:36:18,307 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function attach_history_handler at 0x7fdf173ed9d8> 2019-08-12 12:36:18,308 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/service-2.json 2019-08-12 12:36:18,317 - MainThread - botocore.hooks - DEBUG - Event building-command-table.iam: calling handler <function add_waiters at 0x7fdf1731a840> 2019-08-12 12:36:18,320 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/waiters-2.json 2019-08-12 12:36:18,321 - MainThread - awscli.clidriver - DEBUG - OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>)]) 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_streaming_output_arg at 0x7fdf17316510> 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_cli_input_json at 0x7fdf17da9d90> 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function unify_paging_params at 0x7fdf17328048> 2019-08-12 12:36:18,326 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/paginators-1.json 2019-08-12 12:36:18,326 - MainThread - awscli.customizations.paginate - DEBUG - Modifying paging parameters for operation: ListGroups 2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_generate_skeleton at 0x7fdf1737eae8> 2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method OverrideRequiredArgsArgument.override_required_args of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>> 2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.override_required_args of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>> 2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event operation-args-parsed.iam.list-groups: calling handler functools.partial(<function check_should_enable_pagination at 0x7fdf17328158>, ['marker', 'max-items'], {'max-items': <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>}, OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c58d0>), ('cli-input-json', <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>), ('starting-token', <awscli.customizations.paginate.PageArgument object at 0x7fdf171b0a20>), ('page-size', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c5828>), ('generate-cli-skeleton', <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>)])) 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.path-prefix: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.marker: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.max-items: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.cli-input-json: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.starting-token: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.page-size: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.generate-cli-skeleton: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method CliInputJSONArgument.add_to_call_parameters of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>> 2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.generate_json_skeleton of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>> 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role-with-web-identity 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials 2019-08-12 12:36:18,330 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/endpoints.json 2019-08-12 12:36:18,334 - MainThread - botocore.hooks - DEBUG - Event choose-service-name: calling handler <function handle_service_name_alias at 0x7fdf1898eb70> 2019-08-12 12:36:18,337 - MainThread - botocore.hooks - DEBUG - Event creating-client-class.iam: calling handler <function add_generate_presigned_url at 0x7fdf18a028c8> 2019-08-12 12:36:18,337 - MainThread - botocore.regions - DEBUG - Using partition endpoint for iam, us-west-2: aws-global 2019-08-12 12:36:18,337 - MainThread - botocore.args - DEBUG - The s3 config key is not a dictionary type, ignoring its value of: None 2019-08-12 12:36:18,340 - MainThread - botocore.endpoint - DEBUG - Setting iam timeout as (60, 60) 2019-08-12 12:36:18,341 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/_retry.json 2019-08-12 12:36:18,341 - MainThread - botocore.client - DEBUG - Registering retry handlers for service: iam 2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-parameter-build.iam.ListGroups: calling handler <function generate_idempotent_uuid at 0x7fdf189b10d0> 2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-call.iam.ListGroups: calling handler <function inject_api_version_header_if_needed at 0x7fdf189b2a60> 2019-08-12 12:36:18,343 - MainThread - botocore.endpoint - DEBUG - Making request for OperationModel(name=ListGroups) with params: {'url_path': '/', 'query_string': '', 'method': 'POST', 'headers': {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': 'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205'}, 'body': {'Action': 'ListGroups', 'Version': '2010-05-08'}, 'url': 'https://iam.amazonaws.com/', 'context': {'client_region': 'aws-global', 'client_config': <botocore.config.Config object at 0x7fdf16e9a4a8>, 'has_streaming_input': False, 'auth_type': None}} 2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event request-created.iam.ListGroups: calling handler <bound method RequestSigner.handler of <botocore.signers.RequestSigner object at 0x7fdf16e9a470>> 2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event choose-signer.iam.ListGroups: calling handler <function set_operation_specific_signer at 0x7fdf18996f28> 2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - Calculating signature using v4 auth. 2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - CanonicalRequest: POST / content-type:application/x-www-form-urlencoded; charset=utf-8 host:iam.amazonaws.com x-amz-date:20190812T193618Z content-type;host;x-amz-date 5f776d91EXAMPLE9b8cb5eb5d6d4a787a33ae41c8cd6eEXAMPLEca69080e1e1f 2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - StringToSign: AWS4-HMAC-SHA256 20190812T193618Z 20190812/us-east-1/iam/aws4_request ab7e367eEXAMPLE2769f178ea509978cf8bfa054874b3EXAMPLE8d043fab6cc9 2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - Signature: d85a0EXAMPLEb40164f2f539cdc76d4f294fe822EXAMPLE18ad1ddf58a1a3ce7 2019-08-12 12:36:18,344 - MainThread - botocore.endpoint - DEBUG - Sending http request: <AWSPreparedRequest stream_output=False, method=POST, url=https://iam.amazonaws.com/, headers={'Content-Type': b'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': b'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205', 'X-Amz-Date': b'20190812T193618Z', 'Authorization': b'AWS4-HMAC-SHA256 Credential=AKIA01234567890EXAMPLE-east-1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=d85a07692aceb401EXAMPLEa1b18ad1ddf58a1a3ce7EXAMPLE', 'Content-Length': '36'}> 2019-08-12 12:36:18,344 - MainThread - urllib3.util.retry - DEBUG - Converted retries value: False -> Retry(total=False, connect=None, read=None, redirect=0, status=None) 2019-08-12 12:36:18,344 - MainThread - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): iam.amazonaws.com:443 2019-08-12 12:36:18,664 - MainThread - urllib3.connectionpool - DEBUG - https://iam.amazonaws.com:443 "POST / HTTP/1.1" 200 570 2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response headers: {'x-amzn-RequestId': '74c11606-bd38-11e9-9c82-559da0adb349', 'Content-Type': 'text/xml', 'Content-Length': '570', 'Date': 'Mon, 12 Aug 2019 19:36:18 GMT'} 2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response body: b'<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">\n <ListGroupsResult>\n <IsTruncated>false</IsTruncated>\n <Groups>\n <member>\n <Path>/</Path>\n <GroupName>MyTestGroup</GroupName>\n <Arn>arn:aws:iam::123456789012:group/MyTestGroup</Arn>\n <GroupId>AGPA1234567890EXAMPLE</GroupId>\n <CreateDate>2019-08-12T19:34:04Z</CreateDate>\n </member>\n </Groups>\n </ListGroupsResult>\n <ResponseMetadata>\n <RequestId>74c11606-bd38-11e9-9c82-559da0adb349</RequestId>\n </ResponseMetadata>\n</ListGroupsResponse>\n' 2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event needs-retry.iam.ListGroups: calling handler <botocore.retryhandler.RetryHandler object at 0x7fdf16e9a780> 2019-08-12 12:36:18,665 - MainThread - botocore.retryhandler - DEBUG - No retry needed. 2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event after-call.iam.ListGroups: calling handler <function json_decode_policies at 0x7fdf189b1d90> { "Groups": [ { "Path": "/", "GroupName": "MyTestGroup", "GroupId": "AGPA123456789012EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyTestGroup", "CreateDate": "2019-08-12T19:34:04Z" } ] }

Zurück zum Seitenanfang

Aktivieren und überprüfen Sie die Protokolle des AWS CLI-Befehlsverlaufs

Sie können die AWS CLI-Befehlsverlaufsprotokolle mithilfe der cli_history-Dateieinstellung aktivieren. Nachdem Sie diese Einstellung aktiviert haben, zeichnet AWS CLI den Verlauf von aws-Befehlen auf.

Sie können Ihren Verlauf mit dem aws history list-Befehl auflisten und die resultierenden command_ids im aws history show-Befehl für Details verwenden. Weitere Informationen finden Sie unter aws history im AWS CLI-Referenzhandbuch.

Wenn Sie die Option --debug einfügen, umfassen die Informationen u. a.:

  • API-Aufrufe an Botocore

  • Statuscodes

  • HTTP-Antworten

  • Header

  • Rückgabecodes

Sie können diese Informationen verwenden, um zu bestätigen, dass sich die Parameterdaten und API-Aufrufe wie erwartet verhalten, und können dann ableiten, bei welchem Schritt im Prozess Ihr Befehl fehlschlägt.

Zurück zum Seitenanfang

Bestätigen, dass die AWS CLI konfiguriert ist

Verschiedene Fehler können auftreten, wenn Ihre Dateien config und credentials oder Ihre IAM-Benutzer oder -Rollen nicht korrekt konfiguriert sind. Weitere Informationen zur Behebung von Fehlern mit config- und credentials-Dateien oder Ihren IAM-Benutzern oder Rollen finden Sie unter Fehler aufgrund einer Zugriffsverweigerung und Ungültige Anmeldeinformationen und Schlüsselfehler.

Zurück zum Seitenanfang

Fehler aufgrund eines nicht gefundenen Befehls

Dieser Fehler bedeutet, dass das Betriebssystem den AWS CLI-Befehl nicht finden kann. Die Installation ist möglicherweise unvollständig oder muss aktualisiert werden.

Mögliche Ursache: Sie versuchen, eine AWS CLI-Funktion zu verwenden, die neuer als Ihre installierte Version ist, oder es liegt eine inkorrekte Formatierung vor.

Beispiel-Fehlertext:

$ aws s3 copy usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help aws: error: argument subcommand: Invalid choice, valid choices are: ls | website cp | mv ....

Verschiedene Fehler können auftreten, wenn Ihr Befehl inkorrekt formatiert ist oder wenn Sie eine Version verwenden, die vor der Veröffentlichung der Funktion erstellt wurde. Weitere Informationen zur Behebung dieser beiden Arten von Problemen finden Sie unter Überprüfen der Formatierung Ihrer AWS CLI-Befehle und Sicherstellen, dass Sie eine aktuelle Version der AWS CLI ausführen.

Zurück zum Seitenanfang

Mögliche Ursache: Das Terminal muss nach der Installation neu gestartet werden.

Beispiel-Fehlertext:

$ aws --version command not found: aws

Wenn der aws-Befehl nach der Erstinstallation oder einer Aktualisierung der AWS CLI nicht gefunden wird, müssen Sie möglicherweise Ihr Terminal neu starten, damit es alle PATH-Aktualisierungen erkennt.

Zurück zum Seitenanfang

Mögliche Ursache: Die AWS CLI wurde nicht vollständig installiert.

Beispiel-Fehlertext:

$ aws --version command not found: aws

Wenn der aws-Befehl nach der Erstinstallation oder einer Aktualisierung der AWS CLI nicht gefunden wird, wurde diese möglicherweise nicht vollständig installiert. Versuchen Sie, sie erneut zu installieren, indem Sie die unter Installation, Aktualisierung und Deinstallation der AWS CLI angegebenen Schritte für Ihre Plattform ausführen.

Zurück zum Seitenanfang

Mögliche Ursache: Die AWS CLI hat keine Berechtigungen (Linux)

Wenn der aws-Befehl nach der ersten Installation oder Aktualisierung des AWS CLI-Befehls unter Linux nicht gefunden wird, hat er möglicherweise keine execute-Berechtigungen für den Ordner, in den er installiert wurde. Führen Sie den folgenden Befehl mit dem PATH zu Ihrer AWS CLI-Installation aus, um chmod-Berechtigungen für die AWS CLI bereitzustellen:

$ sudo chmod -R 755 /usr/local/aws-cli/

Zurück zum Seitenanfang

Mögliche Ursache: Die Umgebungsvariable PATH des Betriebssystems wurde während der Installation nicht aktualisiert.

Beispiel-Fehlertext:

$ aws --version command not found: aws

Möglicherweise müssen Sie die ausführbare aws-Datei zur Umgebungsvariablen PATH des Betriebssystems hinzufügen. Befolgen Sie die folgenden Anweisungen für Ihr Betriebssystem, um der Umgebungsvariablen PATH die AWS CLI hinzuzufügen.

Linux and macOS
  1. Suchen Sie das Profilskript der Shell in Ihrem Benutzerverzeichnis. Wenn Sie nicht sicher sind, welche Shell Sie haben, führen Sie echo $SHELL aus.

    $ ls -a ~ . .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
    • Bash.bash_profile, .profile oder .bash_login

    • Zsh.zshrc

    • Tcsh.tcshrc, .cshrc oder .login

  2. Fügen Sie dem Profilskript einen Exportbefehl hinzu. Der folgende Befehl fügt Ihre lokale Ablage zur aktuellen PATH-Variablen hinzu.

    export PATH=/usr/local/bin:$PATH
  3. Laden Sie das hochgeladene Profil erneut in Ihre aktuelle Sitzung.

    $ source ~/.bash_profile
Windows
  1. Verwenden Sie in einer Windows-Eingabeaufforderung den where-Befehl mit dem Parameter /R path, um den Speicherort der aws-Datei zu finden. Die Ergebnisse geben alle Ordner zurück, die aws enthalten.

    C:\> where /R c:\ aws c:\Program Files\Amazon\AWSCLIV2\aws.exe ...

    Standardmäßig befindet sich AWS CLI Version 2 in:

    c:\Program Files\Amazon\AWSCLIV2\aws.exe
  2. Betätigen Sie die Windows-Taste und geben Sie environment variables ein.

  3. Wählen Sie aus der Liste der Vorschläge Edit environment variables for your account (Umgebungsvariablen für Ihr Konto bearbeiten) aus.

  4. Wählen Sie PATH (PFAD) und Edit (Bearbeiten) aus.

  5. Fügen Sie den gefundenen Pfad in das Feld Variable value (Variablenwert) ein, z. B. C:\Program Files\Amazon\AWSCLIV2\aws.exe.

  6. Klicken Sie zweimal auf OK, um die neuen Einstellungen anzuwenden.

  7. Schließen Sie alle laufenden Eingabeaufforderungen und öffnen Sie das Eingabeaufforderungsfenster erneut.

Zurück zum Seitenanfang

Der Befehl „aws --version“ gibt eine andere als die installierte Version zurück

Das Terminal gibt möglicherweise eine unerwartete PATH-Umgebungsvariable für die AWS CLI zurück.

Mögliche Ursache: Das Terminal muss nach der Installation neu gestartet werden.

Wenn der aws-Befehl die falsche Version anzeigt, müssen Sie möglicherweise Ihr Terminal neu starten, damit PATH-Aktualisierungen erkannt werden.

Zurück zum Seitenanfang

Mögliche Ursache: Sie haben mehrere Versionen der AWS CLI.

Wenn Sie die AWS CLI aktualisiert und dabei eine andere Installationsmethode als für die bereits vorhandene Installation verwendet haben, kann dies dazu führen, dass mehrere Versionen installiert werden. Beispiel: Wenn Sie unter Linux oder macOS pip für die aktuelle Installation verwendet, aber versucht haben, die Aktualisierung mithilfe der .pkg-Installationsdatei auszuführen, könnte dies zu Konflikten führen – insbesondere, wenn PATH auf die alte Version verweist.

Um dies zu beheben, deinstallieren Sie alle Versionen der AWS CLI und nehmen Sie eine Neuinstallation vor.

Befolgen Sie nach der Deinstallation aller Versionen die Anweisungen für Ihr Betriebssystem, um die gewünschte Version der AWS CLI Version 1 oder AWS CLI Version 2 zu installieren.

Anmerkung

Wenn dies nach der Installation der AWS CLI Version 2 mit einer bereits bestehenden Installation der AWS CLI Version 1 auftritt, befolgen Sie die Anweisungen zur Migration unter Installationsanweisungen bei der Migration von der AWS CLI Version 1.

Zurück zum Seitenanfang

Der Befehl „aws --version“ gibt nach der Deinstallation der AWS CLI eine Version zurück

Dies tritt häufig auf, wenn irgendwo auf Ihrem System noch eine AWS CLI installiert ist.

Mögliche Ursache: Das Terminal muss nach der Deinstallation neu gestartet werden.

Wenn der Befehl aws --version weiterhin funktioniert, müssen Sie möglicherweise Ihr Terminal neu starten, damit Terminal-Aktualisierungen erkannt werden.

Zurück zum Seitenanfang

Mögliche Ursache: Es sind mehrere Versionen der AWS CLI auf Ihrem System installiert oder es wurde nicht die gleiche Deinstallationsmethode wie bei der ursprünglichen Installation der AWS CLI verwendet.

Die AWS CLI wird möglicherweise nicht korrekt deinstalliert, wenn Sie für die Deinstallation der AWS CLI eine andere Methode als für die Installation verwendet oder wenn Sie mehrere Versionen installiert haben. Wenn Sie beispielsweise pip für die aktuelle Installation verwendet haben, müssen Sie pip auch für die Deinstallation verwenden. Um dies zu beheben, deinstallieren Sie die AWS CLI unter Verwendung der gleichen Methode, die Sie für die Installation verwendet haben.

  1. Befolgen Sie die Anweisungen für Ihr Betriebssystem und die ursprüngliche Installationsmethode, um die AWS CLI Version 1 und die AWS CLI Version 2 zu deinstallieren.

  2. Schließen Sie alle offenen Terminals.

  3. Öffnen Sie Ihr bevorzugtes Terminal, geben Sie den folgenden Befehl ein und vergewissern Sie sich, dass keine Version zurückgegeben wird.

    $ aws --version command not found: aws

    Wenn noch immer eine Version in der Ausgabe aufgeführt wird, wurde die AWS CLI mit hoher Wahrscheinlichkeit unter Verwendung einer anderen Methode installiert oder es sind mehrere Versionen installiert. Wenn Sie nicht wissen, welche Methode für die Installation der AWS CLI verwendet wurde, befolgen Sie alle Anweisungen zu den einzelnen Deinstallationsmethoden für die AWS CLI Version 1 und die AWS CLIVersion 2 für Ihr Betriebssystem, bis keine Version mehr ausgegeben wird.

    Anmerkung

    Wenn Sie einen Paket-Manager für die Installation der AWS CLI (pip, apt, brew usw.) verwendet haben, müssen Sie für die Deinstallation denselben Paket-Manager verwenden. Befolgen Sie unbedingt die Anweisungen des Paket-Managers zur Deinstallation aller Versionen eines Pakets.

Zurück zum Seitenanfang

Fehler aufgrund einer Zugriffsverweigerung

Mögliche Ursache: Die AWS CLI-Programmdatei verfügt nicht über die „Run“-Berechtigung.

Stellen Sie unter Linux oder macOS sicher, dass das aws-Programm über Ausführungsberechtigungen für den aufrufenden Benutzer verfügt. In der Regel sind die Berechtigungen auf 755 festgelegt.

Um eine Ausführungsberechtigung für Ihren Benutzer hinzuzufügen, führen Sie den folgenden Befehl aus. Ersetzen Sie ~/.local/bin/aws durch den Pfad zu dem Programm auf Ihrem Computer.

$ chmod +x ~/.local/bin/aws

Zurück zum Seitenanfang

Mögliche Ursache: Ihre IAM-Identität verfügt nicht über die Berechtigung zum Ausführen der Operation.

Beispiel-Fehlertext:

$ aws s3 ls An error occurred (AcessDenied) when calling the ListBuckets operation: Access denied.

Wenn Sie einen AWS CLI-Befehl ausführen, werden AWS-Operationen in Ihrem Namen ausgeführt. Dabei werden Anmeldeinformationen verwendet, die Sie mit einem IAM-Benutzer oder einer Rolle verknüpfen. Die diesem IAM-Benutzer oder dieser Rolle zugeordneten Richtlinien müssen Ihnen die Berechtigung zum Aufrufen der API-Aktionen erteilen, die den Befehlen entsprechen, die Sie mit der AWS CLI ausführen.

Die meisten Befehle rufen eine einzelne Aktion mit einem Namen auf, der dem Befehlsnamen entspricht. Benutzerdefinierte Befehle wie aws s3 sync rufen jedoch mehrere APIs auf. Durch Verwendung der Option --debug können Sie erkennen, welche APIs ein Befehl aufruft.

Wenn Sie sicher sind, dass der Benutzer oder die Rolle über die entsprechenden Berechtigungen verfügt, die von der Richtlinie zugewiesen wurden, stellen Sie sicher, dass Ihr AWS CLI-Befehl die erwarteten Anmeldeinformationen verwendet. Lesen Sie den nächsten Abschnitt über Anmeldeinformationen, um zu überprüfen, ob es sich bei den von der AWS CLI verwendeten Anmeldeinformationen um die erwarteten Anmeldeinformationen handelt.

Weitere Informationen zum Zuweisen von Berechtigungen an IAM-Benutzer und -Rollen finden Sie unter Übersicht über die Zugriffsverwaltung: Berechtigungen und Richtlinien im IAM-Benutzerhandbuch.

Zurück zum Seitenanfang

Ungültige Anmeldeinformationen und Schlüsselfehler

Beispiel-Fehlertext:

$ aws s3 ls An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
$ aws s3 ls An error occurred (InvalidClientTokenId) when calling the ListBuckets operation: The security token included in the request is invalid.
Mögliche Ursache: Die AWS CLI liest falsche Anmeldeinformationen oder Anmeldeinformationen von einem unerwarteten Speicherort.

Die AWS CLI liest möglicherweise Anmeldeinformationen von einem anderen Speicherort als erwartet oder Ihre Schlüsselpaar-Informationen sind falsch. Sie können aws configure list ausführen, um anzugeben, welche Anmeldeinformationen verwendet werden.

Das folgende Beispiel zeigt, wie Sie die Anmeldeinformationen prüfen, die für das Standardprofil verwendet werden.

$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************XYVA shared-credentials-file secret_key ****************ZAGY shared-credentials-file region us-west-2 config-file ~/.aws/config

Das folgende Beispiel zeigt, wie Sie die Anmeldeinformationen prüfen, die für das benannte Profil verwendet werden.

$ aws configure list --profile saanvi Name Value Type Location ---- ----- ---- -------- profile saanvi manual --profile access_key **************** shared-credentials-file secret_key **************** shared-credentials-file region us-west-2 config-file ~/.aws/config

Bestätigen Sie die Schlüsselpaar-Informationen anhand Ihrer Dateien config und credentials. Weitere Informationen zu den Dateien config und credentials finden Sie unter Einstellungen der Konfigurations- und Anmeldeinformationsdatei. Weitere Informationen zu Schlüsselpaaren finden Sie unter Zugriffsschlüssel-ID und geheimer Zugriffsschlüssel.

Zurück zum Seitenanfang

Mögliche Ursache: Die Uhr Ihres Computers ist nicht synchronisiert.

Wenn Sie gültige Anmeldeinformationen verwenden, ist möglicherweise die Uhr nicht synchronisiert. Führen Sie unter Linux oder macOS date aus, um die Zeit zu überprüfen.

$ date

Wenn Ihre Systemuhr nicht innerhalb weniger Minuten korrigiert wird, synchronisieren Sie diese mit ntpd.

$ sudo service ntpd stop $ sudo ntpdate time.nist.gov $ sudo service ntpd start $ ntpstat

Verwenden Sie unter Windows die Optionen für Datum und Uhrzeit in der Systemsteuerung, um Ihre Systemuhr zu konfigurieren.

Zurück zum Seitenanfang

Fehler aufgrund einer nicht übereinstimmenden Signatur

Beispiel-Fehlertext:

$ aws s3 ls An error occurred (SignatureDoesNotMatch) when calling the ListBuckets operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

Wenn die AWS CLI einen Befehl ausführt, sendet sie eine verschlüsselte Anfrage an die AWS-Server, um die entsprechenden AWS-Serviceoperationen auszuführen. Ihre Anmeldeinformationen (der Zugriffsschlüssel und der geheime Schlüssel) sind an der Verschlüsselung beteiligt und ermöglichen es AWS, die Person zu authentifizieren, die die Anfrage stellt. Es gibt mehrere Dinge, die den korrekten Vorgang dieses Prozesses folgendermaßen beeinträchtigen können.

Mögliche Ursache: Ihre Uhr ist nicht mit den AWS-Servern synchronisiert.

Zum Schutz vor Replay-Angriffen kann die aktuelle Zeit während der Verschlüsselung/Entschlüsselung verwendet werden. Wenn die Zeit von Client und Server um mehr als den zulässigen Wert voneinander abweicht, schlägt der Prozess möglicherweise fehl und die Anfrage wird abgelehnt. Dies kann auch der Fall sein, wenn Sie einen Befehl in einer virtuellen Maschine ausführen, deren Uhr nicht mit der Uhr des Hostcomputers synchronisiert ist. Eine mögliche Ursache besteht darin, dass die virtuelle Maschine in den Ruhezustand versetzt wird und es nach dem erneuten Aktivieren einige Zeit dauert, die Uhr mit dem Hostcomputer zu synchronisieren.

Führen Sie unter Linux oder macOS date aus, um die Zeit zu überprüfen.

$ date

Wenn Ihre Systemuhr nicht innerhalb weniger Minuten korrigiert wird, synchronisieren Sie diese mit ntpd.

$ sudo service ntpd stop $ sudo ntpdate time.nist.gov $ sudo service ntpd start $ ntpstat

Verwenden Sie unter Windows die Optionen für Datum und Uhrzeit in der Systemsteuerung, um Ihre Systemuhr zu konfigurieren.

Zurück zum Seitenanfang

Mögliche Ursache: Ihr Betriebssystem behandelt geheime AWS-Schlüssel, die bestimmte Sonderzeichen enthalten, fehlerhaft.

Wenn Ihr geheimer AWS-Schlüssel bestimmte Sonderzeichen enthält, wie beispielsweise -, +, / oder %, verarbeiten einige Betriebssystemvarianten die Zeichenfolge falsch und verursachen eine fehlerhafte Interpretation das geheimen Schlüssels.

Wenn Sie Ihre Zugriffsschlüssel und geheimen Schlüssel mit anderen Tools oder Skripts verarbeiten, wie beispielsweise Tools, die die Datei mit den Anmeldeinformationen auf einer neuen Instance erstellen, können diese Tools und Skripts über eigene Umgangsweisen für Sonderzeichen verfügen, die dazu führen, dass diese in etwas umgewandelt werden, das AWS nicht mehr erkennt.

Wir empfehlen, den geheimen Schlüssel neu zu generieren, um einen Schlüssel zu erhalten, der das Sonderzeichen nicht enthält.

Zurück zum Seitenanfang

Fehler aufgrund nicht gefundener Windows-Konsole

Beispiel-Fehlertext:

$ aws s3 ls No Windows console found. Are you running cmd.exe?

Wenn Sie einen AWS CLI-Befehl ausführen, erhalten Sie die Fehlermeldung: „Keine Windows-Konsole gefunden. Führen Sie cmd.exe aus?“ . Dieser Fehler tritt in der Regel bei der AWS CLI Version 1 auf, wenn das installierte Python-prompt_toolkit veraltet ist. Um dieses Problem zu beheben, installieren Sie eine aktuelle Version von prompt_toolkit auf der Python-Website.

Zurück zum Seitenanfang

Fehler im Zusammenhang mit SSL-Zertifikaten

Mögliche Ursache: Die AWS CLI vertraut dem Zertifikat Ihres Proxys nicht.

Beispiel-Fehlertext:

$ aws s3 ls [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed

Wenn Sie einen AWS CLI-Befehl verwenden, erhalten Sie die folgende Fehlermeldung: [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed. Dies wird dadurch verursacht, dass AWS CLI dem Zertifikat Ihres Proxys aufgrund von Faktoren wie der Selbstsignierung Ihres Proxy-Zertifikats nicht vertraut und Ihr Unternehmen als Zertifizierungsstelle (CA) festgelegt ist. Dadurch wird verhindert, dass AWS CLI das CA-Stammzertifikat Ihres Unternehmens in der lokalen CA-Registrierung findet.

Um dies zu beheben, weisen Sie AWS CLI mithilfe der Konfigurationsdateieinstellung ca_bundle, der Befehlszeilenoption --ca-bundle oder der Umgebungsvariablen AWS_CA_BUNDLE an, wo Ihre Unternehmensdatei .pem zu finden ist.

Zurück zum Seitenanfang

Mögliche Ursache: Ihre Konfiguration zeigt nicht auf den richtigen Speicherort des CA-Stammzertifikats.

Beispiel-Fehlertext:

$ aws s3 ls SSL validation failed for regionname [Errno 2] No such file or directory

Dies liegt daran, dass der Speicherort der Bundle-Datei Ihrer Zertifizierungsstelle (Certification Authority, CA) in der AWS CLI falsch konfiguriert ist. Überprüfen Sie zur Behebung dieses Fehlers, an welchem Speicherort sich die .pem-Datei Ihres Unternehmens befindet, und aktualisieren Sie die AWS CLI-Konfiguration mithilfe der Konfigurationsdateieinstellung ca_bundle, der Befehlszeilenoption --ca-bundle oder der Umgebungsvariablen AWS_CA_BUNDLE.

Zurück zum Seitenanfang

Ungültige JSON – Fehler

Beispiel-Fehlertext:

$ aws dynamodb update-table \ --provisioned-throughput '{"ReadCapacityUnits":15,WriteCapacityUnits":10}' \ --table-name MyDDBTable Error parsing parameter '--provisioned-throughput': Invalid JSON: Expecting property name enclosed in double quotes: line 1 column 25 (char 24) JSON received: {"ReadCapacityUnits":15,WriteCapacityUnits":10}

Wenn Sie einen AWS CLI-Befehl verwenden, erhalten Sie die folgende Fehlermeldung: Invalid JSON. Dieser Fehler tritt normalerweise auf, wenn Sie einen Befehl mit einem erwarteten JSON-Format eingeben und die AWS CLI Ihr JSON nicht richtig lesen kann.

Mögliche Ursache: Sie haben kein gültiges JSON für die Verwendung durch die AWS CLI eingegeben.

Vergewissern Sie sich, dass Sie ein gültiges JSON für Ihren Befehl eingegeben haben. Wir empfehlen die Verwendung eines JSON-Validators, wenn Sie Probleme bei der JSON-Formatierung haben.

Für eine erweiterte JSON-Nutzung in einer Befehlszeile sollten Sie einen Befehlszeilen-JSON-Prozessor wie jq verwenden, um JSON-Strings zu erstellen. Weitere Informationen zu jq finden Sie im jq-Repository auf GitHub.

Zurück zum Seitenanfang

Mögliche Ursache: Die Anführungszeichenregeln Ihres Terminals verhindern, dass gültiges JSON an die AWS CLI gesendet wird.

Bevor die AWS CLI Daten aus einem Befehl empfängt, verarbeitet Ihr Terminal den Befehl mit seinen eigenen Anführungszeichen- und Escape-Regeln. Aufgrund der Formatierungsregeln des Terminals wird ein Teil Ihres JSON-Inhalts möglicherweise entfernt, bevor der Befehl an die AWS CLI übergeben wird. Achten Sie beim Formulieren von Befehlen darauf, die Anführungszeichenregeln des Terminals zu berücksichtigen.

Verwenden Sie zur Fehlerbehebung den echo-Befehl, um zu sehen, wie die Shell mit Ihren Parametern umgeht:

$ echo {"ReadCapacityUnits":15,"WriteCapacityUnits":10} ReadCapacityUnits:15 WriteCapacityUnits:10
$ echo '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}' {"ReadCapacityUnits":15,"WriteCapacityUnits":10}

Ändern Sie Ihren Befehl, bis ein gültiges JSON zurückgegeben wird.

Verwenden Sie für eine umfassendere Fehlerbehebung den --debug-Parameter, um die Debug-Protokolle anzuzeigen, da in diesen exakt zu sehen ist, was an die AWS CLI übergeben wurde:

$ aws dynamodb update-table \ --provisioned-throughput '{"ReadCapacityUnits":15,WriteCapacityUnits":10}' \ --table-name MyDDBTable \ --debug 2022-07-19 22:25:07,741 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.18.147 Python/2.7.18 Linux/5.4.196-119.356.amzn2int.x86_64 botocore/1.18.6 2022-07-19 22:25:07,741 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['dynamodb', 'update-table', '--provisioned-throughput', '{"ReadCapacityUnits":15,WriteCapacityUnits":10}', '--table-name', 'MyDDBTable', '--debug']

Verwenden Sie die Anführungszeichenregeln Ihres Terminals, um alle Probleme in Ihrer JSON-Eingabe beim Senden an die AWS CLI zu beheben. Weitere Informationen zu Anführungszeichenregeln finden Sie unter Verwenden von Zeichenfolgen mit Anführungszeichen in der AWS CLI.

Anmerkung

Wenn Sie Probleme haben, gültiges JSON an die AWS CLI zu übergeben, empfehlen wir, die Anführungszeichenregeln des Terminals für die JSON-Dateneingabe zu umgehen, indem Sie Ihre JSON-Daten mithilfe von Blobs direkt an die AWS CLI übergeben. Weitere Informationen zu Blobs finden Sie unter Binary/Blob (Binary Large Object) und Streaming-Blob .

Zurück zum Seitenanfang

Weitere Ressourcen

Wenn Sie weitere Hilfe bei Problemen mit der AWS CLI benötigen, besuchen Sie die AWS CLI-Community auf GitHub oder die AWS re:Post-Community.

Zurück zum Seitenanfang