AWS CLI でエンドポイントを使用する
AWS のサービス にプログラムで接続するため、エンドポイントを使用します。エンドポイントは、AWS Web サービスのエントリポイントの URL です。AWS Command Line Interface (AWS CLI) は AWS リージョン の各サービスに対してデフォルトのエンドポイントを自動的に使用しますが、API リクエストに代替のエンドポイントを指定することもできます。
エンドポイントのトピック
1 つのコマンドのエンドポイントを設定する
1 つのコマンドのエンドポイント設定や環境変数を上書きするには、--endpoint-url
コマンドラインオプションを使用します。以下のコマンド例では、カスタム Amazon S3 エンドポイント URL を使用しています。
$
aws s3 ls --endpoint-url
http://localhost:4567
すべての AWS のサービス にグローバルエンドポイントを設定します。
すべてのサービスのリクエストをカスタムエンドポイント URL にルーティングするには、以下の設定のいずれかを使用します。
-
環境変数:
-
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
- 設定済みのエンドポイント URL を無視します。 -
AWS_ENDPOINT_URL
- グローバルエンドポイント URL を設定します。
-
-
config
ファイル:-
ignore_configure_endpoint_urls
- 設定済みのエンドポイント URL を無視します。ignore_configure_endpoint_urls = true
-
endpoint_url
- グローバルエンドポイント URL を設定します。endpoint_url =
http://localhost:4567
-
サービス固有のエンドポイントと --endpoint-url
コマンドラインオプションはすべてのグローバルエンドポイントよりも優先されます。
すべての AWS のサービスに FIPS エンドポイントを使用するように設定
すべてのサービスのリクエストを FIP エンドポイントを使用するようにルーティングするには、以下のいずれかを使用します。
-
-
use_fips_endpoint
ファイルの設定。use_fips_endpoint = true
AWS の一部のサービスでは、連邦情報処理規格 (FIPS、Federal Information Processing Standard) 140-2
この設定が有効になっているが、AWS リージョン内のサービス用 FIPS エンドポイントが存在しない場合、AWS のコマンドは失敗する可能性があります。この場合は、--endpoint-url
オプションを使用してコマンドで使用するエンドポイントを手動で指定するか、サービス固有のエンドポイントを使用します。
AWS リージョンごとの FIPS エンドポイントの指定については、「サービス別の FIPS エンドポイント
すべての AWS のサービスでデュアルスタックのエンドポイントを使用するように設定
利用可能な場合に、すべてのサービスでデュアルスタックエンドポイントを使用するようにリクエストをルーティングするには、以下の設定のいずれかを使用します。
-
AWS_USE_DUALSTACK_ENDPOINT
環境変数 -
use_dualstack_endpoint
ファイルの設定。use_dualstack_endpoint = true
デュアルスタックのエンドポイントを使用して AWS リクエストを送信できるようにします。IPv4 と IPv6 の両方のトラフィックをサポートするデュアルスタックエンドポイントの詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 デュアルスタックエンドポイントの使用」を参照してください。デュアルスタックのエンドポイントは、一部のリージョンでは一部のサービスで利用できます。サービスまたは AWS リージョン にデュアルスタックエンドポイントが存在しない場合、リクエストは失敗します。これはデフォルトでは無効になっています。
サービス固有のエンドポイントを設定します。
サービス固有のエンドポイント設定により、AWS CLI リクエストに任意の永続エンドポイントを使用するオプションが提供されます。これらの設定により、ローカルエンドポイント、VPC エンドポイント、およびサードパーティのローカル AWS 開発環境を柔軟にサポートできます。テスト環境と本番環境には異なるエンドポイントを使用できます。エンドポイント URL は個別の AWS のサービス に指定できます。
サービス固有のエンドポイントは以下の方法で指定できます。
-
1 つのコマンドコマンドラインオプション
--endpoint-url
。 -
環境変数:
-
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
- コマンドラインで指定されている場合を除き、設定済みのエンドポイント URL をすべて無視します。 -
AWS_ENDPOINT_URL_<SERVICE>
- 特定のサービスに使用されるカスタムエンドポイントを指定します。<SERVICE>
は AWS のサービス 識別子に置き換えられます。すべてのサービス固有の変数については、「サービス固有のエンドポイント: サービス固有の識別子のリスト」を参照してください。
-
-
config
ファイル:-
ignore_configure_endpoint_urls
- 環境変数を使用して、またはコマンドラインで指定されている場合を除き、設定済みのエンドポイント URL をすべて無視します。 -
endpoint_url
ファイル設定と組み合わされたconfig
ファイルの services セクション。
-
サービス固有のエンドポイントに関するトピック:
サービス固有のエンドポイント: 環境変数
環境変数は Config ファイルの設定を上書きしますが、コマンドラインで指定されたオプションは上書きしません。すべてのプロファイルにデバイス上の同じエンドポイントを使用させたい場合は、環境変数を使用してください。
サービス固有の環境変数は次のとおりです。
-
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
- コマンドラインで指定されている場合を除き、設定済みのエンドポイント URL をすべて無視します。 -
AWS_ENDPOINT_URL_<SERVICE>
- 特定のサービスに使用されるカスタムエンドポイントを指定します。<SERVICE>
は AWS のサービス 識別子に置き換えられます。すべてのサービス固有の変数については、「サービス固有のエンドポイント: サービス固有の識別子のリスト」を参照してください。次の環境変数の例では、AWS Elastic Beanstalk のエンドポイントを設定します。
環境変数の設定については、「Configuring environment variables for the AWS CLI」を参照してください。
サービス固有のエンドポイント: 共有 config
ファイル
共有 config
ファイルでは、endpoint_url
は複数のセクションで使用されます。サービス固有のエンドポイントを設定するには、services
セクション内のサービス ID キーの下にネストされた endpoint_url
設定を使用します。共有 config
ファイル内の services
セクションの定義について詳しくは、「セクションタイプ: services」を参照してください。
次の例では、services
セクションを使用して Amazon S3 のサービス固有のエンドポイント URL と、他のすべてのサービスに使用されるカスタムグローバルエンドポイントを設定します。
[profile
dev1
] endpoint_url =http://localhost:1234
services =s3-specific
[servicestesting-s3
] s3 = endpoint_url =http://localhost:4567
1 つのプロファイルで複数のサービスのエンドポイントを設定できます。次の例では、Amazon S3 のサービス固有のエンドポイント URL と AWS Elastic Beanstalk を同じプロファイルに設定しています。
services
セクションで使用するすべてのサービス識別子キーのリストについては、「サービス固有の識別子のリスト」を参照してください。
[profile
dev1
] services =testing-s3-and-eb
[servicestesting-s3-and-eb
] s3 = endpoint_url =http://localhost:4567
elastic_beanstalk = endpoint_url =http://localhost:8000
サービス設定セクションは複数のプロファイルで使用できます。次の例では、2 つのプロファイルが同じ services
定義を使用しています。
[profile
dev1
] output = json services =testing-s3
[profiledev2
] output = text services =testing-s3
[servicestesting-s3
] s3 = endpoint_url =https://localhost:4567
サービス固有のエンドポイント: サービス固有の識別子のリスト
AWS のサービス 識別子は API モデルの serviceId
に基づいており、すべてのスペースはアンダースコアに置き換えられ、使用する文字はすべて小文字になります。
以下のサービス識別子の例では AWS Elastic Beanstalk を使用しています。AWS Elastic Beanstalk には Elastic Beanstalk
の serviceId
があるため、サービス識別子キーは elastic_beanstalk
です。
次の表は、サービス固有の識別子、config
ファイルキー、環境変数をすべて一覧にしたものです。
エンドポイント設定と設定の優先順位
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI エンドポイント構成設定は、次の順序で優先されます。
-
--endpoint-url
コマンドラインオプション。 -
有効にすると、
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
グローバルエンドポイント環境変数またはプロファイル設定ignore_configure_endpoint_urls
はカスタムエンドポイントを無視します。 -
サービス固有の環境変数
AWS_ENDPOINT_URL_<SERVICE>
(AWS_ENDPOINT_URL_DYNAMODB
など) によって提供される値。 -
AWS_USE_DUALSTACK_ENDPOINT
、AWS_USE_FIPS_ENDPOINT
、およびAWS_ENDPOINT_URL
環境変数によって提供される値。 -
共有
config
ファイルのservices
セクション内のendpoint_url
設定によって提供されるサービス固有のエンドポイント値。 -
共有
config
ファイルのprofile
内のendpoint_url
設定によって提供される値。 -
use_dualstack_endpoint
、use_fips_endpoint
、およびendpoint_url
の設定。 -
各 AWS のサービス のデフォルトのエンドポイント URL が最後に使用されます。各リージョンで使用できる標準的なサービスエンドポイントについては、「Amazon Web Services 全般のリファレンス」の「AWS リージョンとエンドポイント」を参照してください。