翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CLI エラーのトラブルシューティング
このセクションでは、問題を解決するために従うべき一般的なエラーとトラブルシューティング手順について説明します。最初に、一般的なトラブルシューティングに従うことをお勧めします。
目次
最初に試す一般的なトラブルシューティング
でエラーが発生したり、問題が発生した場合は AWS CLI、トラブルシューティングに役立つ以下の一般的なヒントをお勧めします。
AWS CLI コマンドのフォーマットを確認する
コマンドが存在しないことを示すエラー、またはドキュメントに記述されているパラメータ (Parameter validation failed
) が認識されないことを示すエラーが表示された場合は、コマンドの形式が正しくない可能性があります。以下について確認することをお勧めします。
-
コマンドでスペルミスや形式エラーがないか確認します。
-
コマンドで使用しているすべての引用符とエスケープが端末に合っていることを確認します。
-
AWS CLI スケルトンを生成して、コマンド構造を確認します。
-
についてはJSON、JSON値 に関する追加のトラブルシューティングを参照してください。ターミナルの処理JSONフォーマットに問題がある場合は、Blobs を使用してJSONデータを に直接渡すことで、ターミナルの AWS CLI引用ルールをスキップすることをお勧めします。
特定のコマンドの構造の詳細については、「 AWS CLI バージョン 2 リファレンスガイド
AWS CLI コマンドが を使用している AWS リージョン ことを確認します。
注記
を使用する AWS リージョン ときは AWS CLI、明示的に、またはデフォルトのリージョンを設定して、 を指定する必要があります。指定 AWS リージョン できるすべての のリストについては、AWS 「」の「リージョンとエンドポイント」を参照してくださいAmazon Web Services 全般のリファレンス。で使用される AWS リージョン 識別子 AWS CLI は、 および サービスエンドポイントに表示される AWS Management Console URLsものと同じ名前です。
指定した で AWS のサービス が使用できない場合、またはリソースが別の にある場合、エラー AWS リージョン や予期しない結果が発生する可能性があります AWS リージョン。優先順位に従って、 AWS リージョン は次の方法で設定されます。
-
--region
コマンドラインオプション。 -
SDK 互換性のある
AWS_REGION
環境変数。 -
AWS_DEFAULT_REGION
環境変数。 -
region プロファイル設定。
AWS リージョン リソースに正しい を使用していることを確認します。
最新バージョンの AWS CLIを実行していることを確認する
コマンドが存在しないこと、またはAWS CLI バージョン 2 リファレンスガイド
のバージョンの更新方法は、「」で説明されているように、最初にインストールした方法 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
コマンドの履歴 AWS CLI を記録します。
aws history list
コマンドを使用すると履歴を一覧表示でき、そこから得られた command_id を aws history show
コマンドに使用すると詳細を確認できます。詳細については、AWS CLI リファレンスガイドの「aws
history
--debug
オプションを含める場合、詳細の一部には以下が含まれます。
-
API botocore に対して行われた呼び出し
-
ステータスコード
-
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 CLI で を最初にインストールまたは更新した後に
aws
コマンドが見つからない場合、インストールしたフォルダに対するexecute
アクセス許可がない可能性があります。 AWS CLI インストールPATH
に を使用して次のコマンドを実行し、 にアクセス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 CLI バージョン 1 およびAWS CLI バージョン 2 の各アンインストール方法の手順に従います。
注記
パッケージマネージャーを使用して AWS CLI をインストールした場合 (
pip
、apt
、brew
など)は、同じパッケージマネージャーを使用してアンインストールする必要があります。パッケージのすべてのバージョンをアンインストールする方法については、パッケージマネージャーの手順に従ってください。
-
がパラメータ名が不完全なコマンド AWS CLI を処理しました
- 考えられる原因: AWS CLI パラメータの認識されている省略形を使用しました
-
AWS CLI は Python を使用して構築されているため、 は
allow_abbrev
引数を含む Python argparse
ライブラリ AWS CLI を使用します。パラメータの略語は によって認識され 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 オペレーションが実行されます。アタッチされたポリシーは、 で実行するコマンドに対応するAPIアクションを呼び出すアクセス許可を付与する必要があります AWS CLI。
ほとんどのコマンドは、コマンド名と一致する名前を指定して 1 つのアクションを呼び出します。ただし、 などのカスタムコマンドは複数の を
aws s3 sync
呼び出しますAPIs。--debug
オプションを使用してAPIs、コマンドが呼び出すコマンドを確認できます。ユーザーまたはロールにポリシーによって割り当てられた適切なアクセス許可があることが確実である場合は、 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
ファイルの詳細については、「設定ファイルと認証情報ファイルの設定」を参照してください。認証情報の優先順位を含む、認証情報と認証の詳細については、「認証とアクセス認証情報」を参照してください。 - 考えられる原因: コンピュータのクロックが同期していない
-
有効な認証情報を使用している場合は、クロックが同期していない可能性があります。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
設定.pem
ファイル設定、--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 CLI コマンドが を使用している AWS リージョン ことを確認します。」を参照してください。
- 考えられる原因: 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使用方法については、 などのコマンドラインJSONプロセッサを使用してJSON文字列を作成する
jq
ことを検討してください。の詳細についてはjq
、「」の「jq リポジトリ」を参照してくださいGitHub。 - 考えられる原因: ターミナルの引用ルールが有効な への送信を妨げJSONています AWS CLI
-
がコマンドから何か AWS CLI を受信する前に、ターミナルは独自の引用ルールとエスケープルールを使用してコマンドを処理します。ターミナルのフォーマットルールにより、コマンドが に渡される前にJSONコンテンツの一部が削除される場合があります AWS CLI。コマンドを作成するときは、必ずターミナルの引用ルールを使用してください。
トラブルシューティングを行うには、
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']
ターミナルの引用ルールを使用して、 への送信時にJSON入力で発生する問題を修正します AWS CLI。引用ルールの詳細については、「の文字列を含む引用符とリテラル AWS CLI」を参照してください。
注記
JSON が有効になるのに問題がある場合は AWS CLI、Blobs を使用してJSONデータを JSONに直接渡すことで、データ入力に関するターミナルの引用ルールをバイパスすることをお勧めします AWS CLI。BLOB の詳細については、「blob」を参照してください。
追加リソース
AWS CLI 問題に関するその他のヘルプについては、 のAWS CLI コミュニティ