翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
エラーのトラブルシューティング AWS CLI
このセクションでは、問題を解決するために従うべき一般的なエラーとトラブルシューティング手順について説明します。最初に、一般的なトラブルシューティングに従うことをお勧めします。
目次
最初に試す一般的なトラブルシューティング
でエラーが発生したり、問題が発生したりした場合は AWS CLI、トラブルシューティングに役立つ次の一般的なヒントを参考にすることをお勧めします。
AWS CLI コマンドのフォーマットを確認してください。
コマンドが存在しないことを示すエラー、またはドキュメントに記述されているパラメータ (Parameter validation failed
) が認識されないことを示すエラーが表示された場合は、コマンドの形式が正しくない可能性があります。以下について確認することをお勧めします。
-
コマンドでスペルミスや形式エラーがないか確認します。
-
コマンドで使用しているすべての引用符とエスケープが端末に合っていることを確認します。
-
AWS CLI スケルトンを生成して、コマンド構造を確認します。
-
JSON については、追加の JSON 値のトラブルシューティングを参照してください。端末の JSON 形式の処理に問題がある場合は、JSON データを直接 AWS CLIに渡す BLOB を使用して、端末での引用ルールをスキップすることをお勧めします。
特定のコマンドの構造について詳しくは、 2 リファレンスガイドを参照してください
AWS リージョンAWS CLI 使用しているコマンドを確認してください。
注記
AWS リージョン を使用するときは、明示的に AWS CLI、またはデフォルトリージョンを設定して、を指定する必要があります。指定できるすべてのリストについては、の AWS リージョン 「AWS リージョンとエンドポイント」を参照してください。Amazon Web Services 全般のリファレンス AWS リージョン AWS CLI が使用するデジグネータは、 AWS Management Console URL やサービスエンドポイントに表示される名前と同じです。
AWS のサービス 指定したものが使用できない場合や、リソースが別の場所にある場合は、 AWS リージョン エラーや予期しない結果が生じる可能性があります。 AWS リージョン AWS リージョン は優先順位の高い順に、次のように設定されます。
-
--region
コマンドラインオプション。 -
SDK
AWS_REGION
と互換性のある環境変数。 -
AWS_DEFAULT_REGION
環境変数。 -
regionプロファイル設定。
AWS リージョン リソースに適したものを使用していることを確認してください。
最新バージョンの AWS CLIを実行していることを確認する
コマンドが存在しない、、まずコマンドが正しくフォーマットされていることを確認してください。形式が正しい場合は、最新バージョンの 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 コマンド履歴ログを有効にして確認します。
AWS CLI cli_history
ファイル設定を使用してコマンド履歴ログを有効にできます。この設定を有効にすると、 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
を初めてインストールまたはアップデートしてもコマンドが見つからない場合は AWS CLI、PATH
ターミナルを再起動してアップデートを認識させる必要があるかもしれません。 - 考えられる原因: AWS CLI が完全にインストールされなかった
-
エラーの例:
$
aws --version
command not found: aws
aws
を初めてインストールまたは更新してもコマンドが見つからない場合は AWS CLI、完全にインストールされていない可能性があります。「AWS CLIの最新バージョンのインストールまたは更新」に記載された、プラットフォーム用のステップに従って、再インストールを試してください。 - 考えられる原因: AWS CLI に権限がない(Linux)
-
Linux
aws
AWS CLI でを初めてインストールまたは更新してもコマンドが見つからない場合は、execute
インストールしたフォルダに対する権限がない可能性があります。PATH
AWS CLI インストール環境に対して次のコマンドを実行して、chmod
に権限を付与します AWS CLI。$
sudo chmod -R 755
/usr/local/aws-cli/
- 考えられる原因: インストール中にオペレーティングシステムの
PATH
が更新されなかった。 -
エラーの例:
$
aws --version
command not found: aws
オペレーティングシステムの
aws
環境変数へのPATH
実行ファイルの追加が必要になる場合があります。 AWS CLI をに追加するにはPATH
、ご使用のオペレーティングシステムに応じた以下の手順に従ってください。
「aws --version
」コマンドが、インストールしたのとは異なるバージョンを返す
ご利用の端末が、PATH
予想と異なる値を返す可能性があります。 AWS CLI
- 考えられる原因: インストール後に端末を再起動する必要がある
-
aws
コマンドで間違ったバージョンが表示される場合は、PATH
の更新を認識させるため、端末の再起動が必要である場合があります。アクティブなターミナルだけでなく、開いているすべてのターミナルを閉じる必要があります。 - 考えられる原因: インストール後にシステムを再起動する必要がある
-
aws
コマンドで間違ったバージョンが表示される場合は、PATH
の更新を認識させるため、ターミナルの再起動が必要である場合があります。 - 考えられる原因:のバージョンが複数ある AWS CLI
-
AWS CLI を更新し、既存のインストールとは異なるインストール方法を使用した場合、複数のバージョンがインストールされる可能性があります。例えば、Linux や macOS の場合、現在のインストールでは
pip
を使用したが、.pkg
インストールファイルを使用して更新を試みた場合 (特にPATH
が古いバージョンを指している場合)、これにより何らかの競合が発生する可能性があります。この問題を解決するには、AWS CLIのすべてのバージョンをアンインストールして、クリーンインストールを実行します。
すべてのバージョンをアンインストールした後、オペレーティングシステム用の手順に従って、AWS CLI バージョン 1 またはAWS CLI バージョン 2 の目的のバージョンをインストールします。
注記
バージョン 1 AWS CLI が既にインストールされている状態でバージョン 2 をインストールした後にこの問題が発生した場合は、 AWS CLI バージョン 1 。AWS CLI バージョン 2 の移行手順
「aws --version
" コマンドは、をアンインストールした後のバージョンを返します。 AWS CLI
これは、 AWS CLI システムのどこかにまだインストールされている場合によく起こります。
- 考えられる原因: アンインストール後に端末を再起動する必要がある
-
aws --version
コマンドがまだ機能する場合は、端末の更新を認識させるため、端末の再起動が必要な場合があります。 - 考えられる原因: AWS CLI システムに複数のバージョンのがインストールされている、または最初にインストールしたときと同じアンインストール方法を使用していない。 AWS CLI
-
AWS CLI インストールに使用した方法とは異なる方法でをアンインストールしたり、複数のバージョンをインストールしたりすると、 AWS CLI が正しくアンインストールされない可能性があります。例えば、現在のインストールに
pip
を使用した場合は、pip
を使用してアンインストールする必要があります。この問題を解決するには、 AWS CLI インストールに使用したのと同じ方法でアンインストールしてください。-
オペレーティングシステム用の手順、および AWS CLI バージョン 1 と AWS CLI バージョン 2 をアンインストールするための元のインストール方法に従います。
-
開いているターミナルをすべて閉じます。
-
目的の端末を開き、次のコマンドを入力して、バージョンが返されないことを確認します。
$
aws --version
command not found: aws
出力にまだバージョンが表示されている場合は、 AWS CLI そのバージョンが別の方法でインストールされたか、複数のバージョンが存在する可能性があります。どの方法でをインストールしたかわからない場合は AWS CLI、バージョン出力が受信されなくなるまで、AWS CLIAWS CLI ご使用のオペレーティングシステムに適したバージョン 1 とバージョン 2 の各アンインストール方法の指示に従ってください。
注記
パッケージマネージャーを使用して AWS CLI をインストールした場合 (
pip
、apt
、brew
など)は、同じパッケージマネージャーを使用してアンインストールする必要があります。パッケージのすべてのバージョンをアンインストールする方法については、パッケージマネージャーの手順に従ってください。
-
AWS CLI パラメータ名が不完全なコマンドを処理しました。
- 考えられる原因: AWS CLI パラメータの認識されている省略形を使用しました
-
AWS CLI は Python を使用して構築されているため、
allow_abbrev
は引数を含め Python AWS CLI argparse
ライブラリを使用します。パラメータの省略形はによって認識され、処理されます。 AWS CLI以下のコマンド例では、スタック名を変更します。 CloudFormation
--change-set-n
パラメータはの省略形として認識され--change-set-name
、 AWS CLI はコマンドを処理します。$
aws cloudformation create-change-set --stack-name my-stack
--change-set-n
my-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 が想定と異なる場所から認証情報を読み取っているか、key pair 情報が正しくない可能性があります。
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
ファイルの詳細については、「設定ファイルと認証情報ファイルの設定」を参照してください。認証情報の優先順位を含む、認証情報と認証の詳細については、「認証とアクセス認証情報」を参照してください。 - 考えられる原因: コンピュータのクロックが同期していない
-
有効な認証情報を使用している場合は、クロックが同期していない可能性があります。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
エラーメッセージが表示されます。これは、 AWS CLI プロキシの証明書が自己署名されていて、会社が認証局 (CA) に設定されているなどの要因により、プロキシの証明書を信頼していないことが原因です。これにより、 AWS CLI はローカル CA レジストリで会社の CA ルート証明書を見つけることができなくなります。これを修正するには、
.pem
ca_bundle
設定ファイル設定、--ca-bundleコマンドラインオプション、AWS_CA_BUNDLE
または環境変数を使用して、 AWS CLI 会社ファイルの検索場所を指定します。 - 考えられる原因: 設定が正しい 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 リージョンAWS CLI 使用しているコマンドを確認してください。」を参照してください。
- 考えられる原因:TLS バージョンを更新する必要がある
-
エラーの例:
$
aws s3 ls
[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled
AWS のサービス は、デバイスの TLS バージョンと互換性のない TLS バージョンを使用しています。この問題を解決するには、サポートされている TLS バージョンに更新してください。詳細については、「TLS の最小バージョンの指定」を参照してください。
無効な JSON エラー
エラーの例:
$
aws dynamodb update-table \ --provisioned-throughput
'{"ReadCapacityUnits":15,WriteCapacityUnits":10}'
\ --table-name MyDDBTableError 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 形式でコマンドを入力したときに JSON AWS CLI を正しく読み取れない場合に表示されるエラーです。
- 考えられる原因: AWS CLI が使用する有効な JSON を入力しなかった
-
コマンドに有効な JSON を入力していることを確認します。形式に問題がある JSON には JSON バリデータを使用することをお勧めします。
コマンドラインでより高度な JSON を使用するには、
jq
のようなコマンドライン JSON プロセッサを使用して JSON 文字列を作成することを検討してください。詳細についてはjq
、の jq リポジトリを参照してください。GitHub - 考えられる原因:ターミナルの引用ルールにより、有効な 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 \ --debug2022-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 データをに直接渡すことで、JSON データ入力に関する端末の引用ルールを回避することをお勧めします。 AWS CLI BLOB の詳細については、「blob」を参照してください。
追加リソース
AWS CLI 問題に関するその他のヘルプについては、AWS CLIGitHub上のコミュニティまたはコミュニティにアクセスしてください