AWS CLI のエラーのトラブルシューティング - AWS Command Line Interface

AWS CLI のエラーのトラブルシューティング

このセクションでは、問題を解決するために従うべき一般的なエラーとトラブルシューティング手順について説明します。最初に、一般的なトラブルシューティングに従うことをお勧めします。

最初に試す一般的なトラブルシューティング

エラーが発生した場合、または AWS CLI で問題が発生した場合は、トラブルシューティングに役立つ以下の一般的なヒントを参照してください。

先頭に戻る

AWS CLI コマンドの形式を確認する

コマンドが存在しないことを示すエラー、またはドキュメントに記述されているパラメータ (Parameter validation failed) が認識されないことを示すエラーが表示された場合は、コマンドの形式が正しくない可能性があります。以下について確認することをお勧めします。

特定のコマンドの構造化方法の詳細については、AWS CLI バージョン 2 リファレンスガイドを参照してください。

先頭に戻る

AWS CLI コマンドが使用している AWS リージョンを確認する

注記

AWS CLI を使用する際は、明示的に、またはデフォルトリージョンを設定して、AWS リージョンを指定する必要があります。指定できるすべてのAWS リージョンのリストについては、「Amazon Web Services 全般のリファレンス」の「AWS リージョンとエンドポイント」を参照してください。AWS CLI で使用される AWS リージョン識別子は、AWS Management Console URL およびサービスエンドポイントに表示されるのと同じ名前です。

AWS のサービスが指定された AWS リージョンで使用できない場合、またはリソースが別の AWS リージョンにある場合、エラーや予期しない結果が発生する可能性があります。優先順位に従って、AWS リージョンは次のように設定されています。

リソースに正しい AWS リージョンが使用されていることを確認します。

先頭に戻る

最新バージョンの AWS CLI を実行していることを確認する

AWS CLI バージョン 2 リファレンスガイドで利用可能であると記載されているコマンドが存在しない、またはパラメータが認識されないことを示すエラーが表示された場合は、最初にコマンドの形式が正しいことを確認します。形式が正しい場合は、最新バージョンの AWS CLI にアップグレードすることをお勧めします。AWS CLI の更新バージョンはほぼ毎営業日にリリースされています。AWS の新しいバージョンでは、AWS CLI の新しいサービス、機能、パラメータが導入されています。これらの新しいサービスや機能、パラメータにアクセスする唯一の方法は、その要素が最初に導入された後にリリースされたバージョンにアップグレードすることです。

AWS CLI のバージョンを更新する方法は、AWS CLI の最新バージョンのインストールまたは更新 で説明されているように最初にインストールした方法によって異なります。

バンドルされたインストーラのいずれかを使用した場合は、オペレーティングシステム用の最新バージョンをダウンロードしてインストールする前に、既存のインストールの削除が必要になる場合があります。

先頭に戻る

--debug オプションを使用する

AWS CLI が、すぐに理解できないエラーを報告する場合や、予期しない結果を生成した場合は、--debug オプションを指定してコマンドを再度実行すると、エラーの詳細を取得できます。このオプションを使用すると、AWS CLI は、コマンドを処理するために必要な各ステップの詳細を出力します。出力される詳細は、いつエラーが発生し、そのエラーがどこで開始されたかを特定するために役立つヒントを提供します。

この出力は、後で確認できるようテキストファイルに送信するか、求められた場合に AWS Support に送信できます。

--debug オプションを含める場合、詳細の一部には以下が含まれます。

  • 認証情報の検索

  • 指定されたパラメータの解析

  • AWS サーバーに送信されるリクエストの作成

  • に送信されるリクエストの内容AWS

  • raw レスポンスの内容

  • フォーマットされた出力

--debug オプションを使用した場合と使用しない場合のコマンドの例を次に示します。

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

先頭に戻る

AWS CLI コマンド履歴ログを有効にして確認します

cli_history ファイル設定を使用して、AWS CLI コマンド履歴ログを有効にできます。この設定を有効にすると、AWS CLI は aws コマンドの履歴を記録します。

aws history list コマンドを使用すると履歴を一覧表示でき、そこから得られた command_id を aws history show コマンドに使用すると詳細を確認できます。詳細については、AWS CLI リファレンスガイドの「aws history」を参照してください。

--debug オプションを含める場合、詳細の一部には以下が含まれます。

  • bootcore に対して行われた API 呼び出し

  • ステータスコード

  • HTTP レスポンス

  • ヘッダー

  • リターンコード

この情報を使用すると、パラメータデータと API 呼び出しが期待どおりに動作していることを確認でき、さらにプロセスのどの段階でコマンドが失敗しているかの推測を行えます。

先頭に戻る

AWS CLI が設定済みであることを確認する

config および credentials ファイル、または IAM ユーザーやロールが正しく設定されていない場合、さまざまなエラーが発生する可能性があります。config および credentials ファイル、または IAM ユーザーやロールに関するエラーを解決する方法の詳細については、「アクセス拒否エラー」および「無効な認証情報とキーエラー」を参照してください。

先頭に戻る

コマンドが見つからないエラー

このエラーは、オペレーティングシステムによって AWS CLI コマンドが見つからないことを意味します。インストールが不完全であるか、更新が必要な可能性があります。

考えられる原因: インストールされているバージョンより新しい AWS CLI の機能の使用を試みているか、形式が正しくない

エラーの例:

$ 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 ....

コマンドの形式が正しくない場合や、機能がリリースされる前のバージョンを使用している場合は、さまざまなエラーが発生する可能性があります。これら 2 つの問題のエラーの解決方法の詳細については、「AWS CLI コマンドの形式を確認する」および「最新バージョンの AWS CLI を実行していることを確認する」を参照してください。

先頭に戻る

考えられる原因: インストール後に端末を再起動する必要がある

エラーの例:

$ aws --version command not found: aws

AWS CLI を最初にインストールまたは更新した後、aws コマンドが見つからない場合は、PATH の更新を認識させるため、端末の再起動が必要な場合があります。

先頭に戻る

考えられる原因: AWS CLI が完全にインストールされなかった

エラーの例:

$ aws --version command not found: aws

最初に AWS CLI をインストールまたは更新した後、aws コマンドが見つからない場合、完全にインストールされていない可能性があります。「AWS CLI の最新バージョンのインストールまたは更新」に記載された、プラットフォーム用のステップに従って、再インストールを試してください。

先頭に戻る

考えられる原因: AWS CLI にアクセス権限がありません (Linux)

Linux で AWS CLI の初回インストールまたは更新の後、aws コマンドが見つからない場合は、インストールされたフォルダに関する execute 権限を持っていない可能性があります。AWS CLI をインストールした場所への PATH とともに以下のコマンドを実行し、AWS CLI に chmod 権限を提供します。

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

先頭に戻る

考えられる原因: インストール中にオペレーティングシステムの PATH が更新されなかった。

エラーの例:

$ aws --version command not found: aws

オペレーティングシステムの aws 環境変数への PATH 実行ファイルの追加が必要になる場合があります。AWS CLI をPATH に追加する場合は、オペレーティングシステム用の次の手順を使用します。

Linux and macOS
  1. ユーザーディレクトリでシェルのプロファイルスクリプトを見つけます。現在使用しているシェルが不明な場合は、echo $SHELL を実行します。

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

    • Zsh.zshrc

    • Tcsh - .tcshrc.cshrc.login

  2. プロファイルスクリプトにエクスポートコマンドを追加します。次のコマンドは、local の bin を現在の PATH 変数に追加します。

    export PATH=/usr/local/bin:$PATH
  3. 現在のセッションに更新されたプロファイルをリロードします。

    $ source ~/.bash_profile
Windows
  1. Windows コマンドプロンプトで、/R path パラメータ で where コマンドを使用して検索する aws ファイルの場所を検索します。結果には、aws を含むすべてのフォルダを返します。

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

    デフォルトでは、AWS CLI バージョン 2 は次の場所にあります。

    c:\Program Files\Amazon\AWSCLIV2\aws.exe
  2. Windows キーを押し、「environment variables」と入力します。

  3. 候補のリストから、[Edit environment variables for your account] (アカウントの環境変数を編集する) を選択します。

  4. PATH を選択して、編集 を選択します。

  5. 最初のステップで見つかったパスを [Variable value] (変数値) フィールドに追加します (例: C:\Program Files\Amazon\AWSCLIV2\aws.exe)。

  6. [OK] を 2 回選択して、新しい設定を適用します。

  7. 実行中のコマンドプロンプトを閉じ、コマンドプロンプトウィンドウを再度開きます。

先頭に戻る

aws --version」コマンドが、インストールしたのとは異なるバージョンを返す

端末が、予期している AWS CLI とは異なる PATH を返している可能性があります。

考えられる原因: インストール後に端末を再起動する必要がある

aws コマンドで間違ったバージョンが表示される場合は、PATH の更新を認識させるため、端末の再起動が必要である場合があります。アクティブなターミナルだけでなく、開いているすべてのターミナルを閉じる必要があります。

先頭に戻る

考えられる原因: インストール後にシステムを再起動する必要がある

aws コマンドで間違ったバージョンが表示される場合は、PATH の更新を認識させるため、ターミナルの再起動が必要である場合があります。

先頭に戻る

考えられる原因: AWS CLI の複数のバージョンがある

AWS CLI を更新し、以前のインストールとは異なるインストール方法を使用した場合、複数のバージョンがインストールされる可能性があります。例えば、Linux や macOS の場合、現在のインストールでは pip を使用したが、.pkg インストールファイルを使用して更新を試みた場合 (特に PATH が古いバージョンを指している場合)、これにより何らかの競合が発生する可能性があります。

この問題を解決するには、AWS CLI のすべてのバージョンをアンインストールして、クリーンインストールを実行します。

すべてのバージョンをアンインストールした後、オペレーティングシステム用の手順に従って、AWS CLI バージョン 1 またはAWS CLI バージョン 2 の目的のバージョンをインストールします。

注記

AWS CLI バージョン 1 が既にインストールされている場合に、AWS CLI バージョン 2 をインストールした後でこの問題が発生したときは、「 から移行する際のインストール手順AWS CLI バージョン 1 から AWS CLI バージョン 2 をインストールする」の移行手順に従います。

先頭に戻る

AWS CLI のアンインストール後に、「aws --version」コマンドがバージョンを返す

これは、システムのどこかにまだ AWS CLI がインストールされている場合によく発生します。

考えられる原因: アンインストール後に端末を再起動する必要がある

aws --version コマンドがまだ機能する場合は、端末の更新を認識させるため、端末の再起動が必要な場合があります。

先頭に戻る

考えられる原因: システムに複数のバージョンの AWS CLI が存在する、または、AWS CLI を最初にインストールしたときと同じアンインストール方法を使用しなかった

インストールに使用した方法とは異なる方法を使用して AWS CLI をアンインストールするか、複数のバージョンをインストールした場合、AWS CLI は正しくアンインストールされない可能性があります。例えば、現在のインストールに pip を使用した場合は、pip を使用してアンインストールする必要があります。これを解決するには、インストールに使用したのと同じ方法を使用して、AWS CLI をアンインストールします。

  1. オペレーティングシステム用の手順、および AWS CLI バージョン 1AWS CLI バージョン 2 をアンインストールするための元のインストール方法に従います。

  2. 開いているターミナルをすべて閉じます。

  3. 目的の端末を開き、次のコマンドを入力して、バージョンが返されないことを確認します。

    $ aws --version command not found: aws

    出力にまだバージョンが表示されている場合は、おそらく AWS CLI が異なる方法でインストールされたか、複数のバージョンが存在します。AWS CLI をインストールするのにどの方法を使用したかわからない場合は、バージョンが出力されなくなるまで、オペレーティングシステム用の、AWS CLI バージョン 1 および AWS CLI バージョン 2 の各アンインストール方法の手順に従います。

    注記

    パッケージマネージャーを使用して AWS CLI をインストールした場合 (pipaptbrew など)は、同じパッケージマネージャーを使用してアンインストールする必要があります。パッケージのすべてのバージョンをアンインストールする方法については、パッケージマネージャーの手順に従ってください。

先頭に戻る

AWS CLI が不完全なパラメータ名を使用してコマンドを処理しました

考えられる原因: AWS CLI パラメータの認識されている省略形を使用しました

AWS CLI は Python を使用して構築されているため、AWS CLI は allow_abbrev 引数を含む Python の argparse ライブラリを使用します。パラメータの省略形は AWS CLI によって認識され、処理されます。

次の create-change-set コマンドの例は、CloudFormation スタック名を変更します。パラメータ --change-set-n--change-set-name の省略形として認識されるため、AWS CLI はこのコマンドを処理します。

$ aws cloudformation create-change-set --stack-name my-stack --change-set-n my-change-set

省略形が複数のコマンドに該当する場合、パラメータは省略形として認識されません。

次の create-change-set コマンドの例は、CloudFormation スタック名を変更します。パラメータ --change-set- は、省略形として認識されません。これは、--change-set-name--change-set-type など、複数のパラメータに該当する場合があるためです。したがって、AWS CLI はこのコマンドを処理しません

$ aws cloudformation create-change-set --stack-name my-stack --change-set- my-change-set
警告

パラメータの省略形を意図的に使用しないでください。これらは信頼性が低く、下位互換性もありません。省略形の混乱を生じるような新しいパラメータをコマンドに追加すると、コマンドが壊れてしまいます。

さらに、パラメータが単一値の引数である場合、コマンドで予期しない動作が発生する可能性があります。単一値の引数のインスタンスを複数渡すと、最後のインスタンスのみが実行されます。次の例で、パラメータ --filters は単一値の引数です。パラメータ --filters とパラメータ --filter が指定されています。--filter パラメータは --filters の省略形です。これにより、--filters のインスタンスが 2 つ適用されることになるため、最後の --filter 引数のみが実行されます。

$ aws ec2 describe-vpc-peering-connections \ --filters Name=tag:TagName,Values=VpcPeeringConnection \ --filter Name=status-code,Values=active

予期しない動作を防ぐために、コマンドを実行する前に有効なパラメータを使用していることを確認してください。

先頭に戻る

アクセス拒否エラー

考えられる原因: AWS CLI プログラムファイルに「実行」許可がない

Linux または macOS で、aws プログラムに呼び出し元ユーザーの実行許可があることを確認します。通常、この権限は 755 に設定されます。

ユーザーに実行権限を付与するには、~/.local/bin/aws をご使用のコンピュータのプログラムへのパスに置き換えて、以下のコマンドを実行します。

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

先頭に戻る

考えられる原因: IAM ID にオペレーションを実行する許可がない。

エラーの例:

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

AWS CLI コマンドを実行すると、ユーザーを IAM アカウントまたはロールに関連付ける認証情報を使用して、AWS オペレーションがユーザーに代わって実行されます。アタッチされたポリシーは、AWS CLI で実行するコマンドに対応する API アクションを呼び出す許可をユーザーに付与する必要があります。

ほとんどのコマンドは、コマンド名と一致する名前を指定して 1 つのアクションを呼び出します。ただし、aws s3 sync などのカスタムコマンドは複数の API を呼び出します。--debug オプションを使用して、コマンドが呼び出す API を確認できます。

ユーザーまたはロールにポリシーによって割り当てられた適切な許可があることが確実である場合は、AWS CLI コマンドで想定した認証情報が使用されていることを確認します。AWS CLI が使用している認証情報が想定どおりのものであることを確認するには、認証情報に関する次のセクションを参照してください。

IAM アクセス許可の割り当ての詳細については、「IAM ユーザーガイド」の「アクセス管理の概要: アクセス許可とポリシー」を参照してください。

先頭に戻る

無効な認証情報とキーエラー

エラーの例:

$ 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.
考えられる原因: AWS CLI が不正な認証情報を読み取っている、または想定外の場所から読み取っている

AWS CLI が想定外の場所から認証情報を読み取っているか、キーペア情報が正しくない可能性があります。aws configure list を実行して、使用される認証情報を確認することができます。

次の例は、デフォルトのプロファイルに使用される認証情報をチェックする方法を示しています。

$ 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

次の例は、名前付きプロファイルの認証情報をチェックする方法を示しています。

$ 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

キーペアの詳細を確認するには、config および credentials ファイルを確認します。config ファイルと credentials ファイルの詳細については、「AWS CLI での設定と認証情報ファイル設定」を参照してください。認証情報の優先順位を含む、認証情報と認証の詳細については、「AWS CLI の認証とアクセス認証情報」を参照してください。

先頭に戻る

考えられる原因: コンピュータのクロックが同期していない

有効な認証情報を使用している場合は、クロックが同期していない可能性があります。Linux または macOS では、date を実行して時刻を確認します。

$ date

システムクロックのずれが数分以内の場合は、ntpd を使用して同期します。

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

Windows では、コントロールパネルで日付と時刻オプションを使用してシステムクロックを設定します。

先頭に戻る

署名がエラーと一致しない

エラーの例:

$ 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.

AWS CLI がコマンドを実行する際、暗号化されたリクエストを AWS サーバーに送信して、適切な AWS サービスオペレーションを実行します。認証情報 (アクセスキーとシークレットキー) は暗号化に関与し、リクエストを行うユーザーを AWS が認証できるようにします。このプロセスが正しく行われない原因には、次のようにいくつかあります。

考えられる原因: 時刻が AWS サーバーと同期していない

リプレイ攻撃への保護対策として、現在の時刻を暗号化/復号プロセス中に使用できます。クライアントとサーバーの時間に許容範囲外の差がある場合、プロセスが失敗し、リクエストが拒否される可能性があります。このエラーは、クロックがホストマシンのクロックと同期していない仮想マシンでコマンドを実行した場合にも発生します。考えられる原因の 1 つは、仮想マシンが休止した後、ウェイクアップしてからホストマシンとクロックを同期するまで時間がかかる場合です。

Linux または macOS では、date を実行して時刻を確認します。

$ date

システムクロックのずれが数分以内の場合は、ntpd を使用して同期します。

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

Windows では、コントロールパネルで日付と時刻オプションを使用してシステムクロックを設定します。

先頭に戻る

考えられる原因: オペレーティングシステムが特定の特殊文字を含む AWS キーを誤って処理している

AWS キーに -+/% などの特定の特殊文字が含まれている場合、一部のオペレーティングシステムバリアントで文字列が適切に処理されず、キーの文字列が誤って解釈される原因になります。

他のツールやスクリプト (作成時に認証情報ファイルを新しいインスタンス上に構築するツールなど) を使用してキーを処理する場合、これらのツールやスクリプトでは特殊文字に独自の処理が行われ、AWS によって認識できないものに変換される可能性があります。

シークレットキーを再生成して、問題の発生原因となっている特殊文字を含まないキーを取得することをお勧めします。

先頭に戻る

SSL 証明書のエラー

考えられる原因: AWS CLI がプロキシの証明書を信頼していない

エラーの例:

$ aws s3 ls [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

AWS CLI コマンドを使用すると、[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed というエラーメッセージが表示されます。これは、企業が認定機関 (CA) に設定されており、プロキシの証明書が自己署名されているなどの要因により、AWS CLI がプロキシの証明書を信頼していないことが原因です。これにより、AWS CLI はローカル CA レジストリにある企業の CA ルート証明書を検索できません。

この問題を解決するには、ca_bundle 設定ファイルの設定、--ca-bundle コマンドラインオプション、または AWS_CA_BUNDLE 環境変数を使用して、AWS CLI に企業ファイル .pem の場所を指示します。

先頭に戻る

考えられる原因: 設定が正しい CA ルート証明書の場所を指していない

エラーの例:

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

これは、認証局 (CA) バンドルファイルの場所が、AWS CLI で正しく設定されていないことによって発生します。この問題を解決するには、企業の .pem ファイルの場所を確認し、ca_bundle 設定ファイルの設定、--ca-bundle コマンドラインオプション、または AWS_CA_BUNDLE 環境変数を使用して、AWS CLI の設定を更新します。

先頭に戻る

考えられる原因: 設定で正しい AWS リージョンが使用されていない

エラーの例:

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

AWS のサービスが指定された AWS リージョンで使用できない場合、またはリソースが別の AWS リージョンにある場合、エラーや予期しない結果が発生する可能性があります。トラブルシューティングステップについては、「AWS CLI コマンドが使用している AWS リージョンを確認する」を参照してください。

先頭に戻る

考えられる原因: TLS バージョンを更新する必要があります

エラーの例:

$ aws s3 ls [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled

AWS のサービスが、お使いのデバイスの TLS バージョンと互換性のないバージョンの TLS を使用しています。この問題を解決するには、サポートされている TLS バージョンに更新します。詳細については、「AWS CLI に最小 TLS バージョンを適用する」を参照してください。

先頭に戻る

無効な JSON エラー

エラーの例:

$ 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}

AWS CLI コマンドを使用すると、「Invalid JSON」というエラーメッセージが表示されます。これは通常、想定される JSON 形式のコマンドを入力し、AWS CLI が JSON を正しく読み取れないときに発生するエラーです。

考えられる原因: AWS CLI が使用する有効な JSON を入力しなかった

コマンドに有効な JSON を入力していることを確認します。形式に問題がある JSON には JSON バリデータを使用することをお勧めします。

コマンドラインでより高度な JSON を使用するには、jq のようなコマンドライン JSON プロセッサを使用して JSON 文字列を作成することを検討してください。jq の詳細については、GitHubjq repository を参照してください。

先頭に戻る

考えられる原因: ターミナルの引用ルールにより、有効な JSON がAWS CLI に送信されなくなっている

AWS CLI がコマンドから何かを受け取る前に、ターミナルは独自の引用とエスケープのルールを使用してコマンドを処理します。ターミナルの書式ルールにより、コマンドが AWS CLI に渡される前に JSON コンテンツの一部が省かれている可能性があります。コマンドを作成するときは、必ずターミナルの引用ルールを使用してください。

トラブルシューティングを行うには、echo コマンドを使用して、シェルがパラメータをどのように処理しているかを確認します。

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

有効な JSON が返されるまでコマンドを変更します。

詳細なトラブルシューティングについては、--debug パラメータを使用して、AWS CLI に渡された内容を正確に表示するデバッグログを表示します。

$ 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']

ターミナルの引用ルールを使用して、AWS CLI に送信されるときに JSON 入力で発生する問題を修正します。引用ルールの詳細については、「AWS CLI で文字列に引用符とリテラルを使用する」を参照してください。

注記

有効な JSON を AWS CLI に渡す際に問題が発生する場合は、BLOB を使用して JSON データを直接 AWS CLI に渡すことにより、JSON データ入力に関するターミナルの引用ルールをバイパスすることをお勧めします。BLOB の詳細については、「blob」を参照してください。

先頭に戻る

追加リソース

AWS CLI の問題に関する追加のヘルプについては、GitHub の AWS CLI コミュニティまたは AWS re:Post コミュニティにアクセスしてください。

先頭に戻る