AWS CLI でエンドポイントを使用する - AWS Command Line Interface

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 を無視します。

      Linux or macOS
      $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
      Windows Command Prompt

      すべてのセッションに設定するには

      C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true

      現在のセッションのみに設定するには

      C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
      PowerShell
      PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
    • AWS_ENDPOINT_URL - グローバルエンドポイント URL を設定します。

      Linux or macOS
      $ export AWS_ENDPOINT_URL=http://localhost:4567
      Windows Command Prompt

      すべてのセッションに設定するには

      C:\> setx AWS_ENDPOINT_URL http://localhost:4567

      現在のセッションのみに設定するには

      C:\> set AWS_ENDPOINT_URL=http://localhost:4567
      PowerShell
      PS C:\> $Env:AWS_ENDPOINT_URL="http://localhost:4567"
  • config ファイル:

    • ignore_configure_endpoint_urls - 設定済みのエンドポイント URL を無視します。

      ignore_configure_endpoint_urls = true
    • endpoint_url - グローバルエンドポイント URL を設定します。

      endpoint_url = http://localhost:4567

サービス固有のエンドポイントと --endpoint-url コマンドラインオプションはすべてのグローバルエンドポイントよりも優先されます。

すべての AWS のサービスに FIPS エンドポイントを使用するように設定

すべてのサービスのリクエストを FIP エンドポイントを使用するようにルーティングするには、以下のいずれかを使用します。

  • AWS_USE_FIPS_ENDPOINT 環境変数

    Linux or macOS
    $ export AWS_USE_FIPS_ENDPOINT=true
    Windows Command Prompt

    すべてのセッションに設定するには

    C:\> setx AWS_USE_FIPS_ENDPOINT true

    現在のセッションのみに設定するには

    C:\> set AWS_USE_FIPS_ENDPOINT=true
    PowerShell
    PS C:\> $Env:AWS_USE_FIPS_ENDPOINT="true"
  • use_fips_endpoint ファイルの設定。

    use_fips_endpoint = true

AWS の一部のサービスでは、連邦情報処理規格 (FIPS、Federal Information Processing Standard) 140-2 をサポートするエンドポイントを一部の AWS リージョンで提供しています。AWS のサービスが FIPS をサポートしている場合、この設定により、どの FIPS エンドポイントを AWS CLI が使用すべきかを指定します。標準の AWS エンドポイントとは異なり、FIPS エンドポイントでは FIPS 140-2 に準拠した TLS ソフトウェアライブラリを使用しています。このエンドポイントは、米国政府とやり取りをする企業で必要とされる場合があります。

この設定が有効になっているが、AWS リージョン内のサービス用 FIPS エンドポイントが存在しない場合、AWS のコマンドは失敗する可能性があります。この場合は、--endpoint-url オプションを使用してコマンドで使用するエンドポイントを手動で指定するか、サービス固有のエンドポイントを使用します。

AWS リージョンごとの FIPS エンドポイントの指定については、「サービス別の FIPS エンドポイント」を参照してください。

すべての AWS のサービスでデュアルスタックのエンドポイントを使用するように設定

利用可能な場合に、すべてのサービスでデュアルスタックエンドポイントを使用するようにリクエストをルーティングするには、以下の設定のいずれかを使用します。

  • AWS_USE_DUALSTACK_ENDPOINT 環境変数

    Linux or macOS
    $ export AWS_USE_DUALSTACK_ENDPOINT=true
    Windows Command Prompt

    すべてのセッションに設定するには

    C:\> setx AWS_USE_DUALSTACK_ENDPOINT true

    現在のセッションのみに設定するには

    C:\> set AWS_USE_DUALSTACK_ENDPOINT=true
    PowerShell
    PS C:\> $Env:AWS_USE_DUALSTACK_ENDPOINT="true"
  • use_dualstack_endpoint ファイルの設定。

    use_dualstack_endpoint = true

デュアルスタックのエンドポイントを使用して AWS リクエストを送信できるようにします。IPv4 と IPv6 の両方のトラフィックをサポートするデュアルスタックエンドポイントの詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 デュアルスタックエンドポイントの使用」を参照してください。デュアルスタックのエンドポイントは、一部のリージョンでは一部のサービスで利用できます。サービスまたは AWS リージョン にデュアルスタックエンドポイントが存在しない場合、リクエストは失敗します。これはデフォルトでは無効になっています。

サービス固有のエンドポイントを設定します。

サービス固有のエンドポイント設定により、AWS CLI リクエストに任意の永続エンドポイントを使用するオプションが提供されます。これらの設定により、ローカルエンドポイント、VPC エンドポイント、およびサードパーティのローカル AWS 開発環境を柔軟にサポートできます。テスト環境と本番環境には異なるエンドポイントを使用できます。エンドポイント URL は個別の AWS のサービス に指定できます。

サービス固有のエンドポイントは以下の方法で指定できます。

サービス固有のエンドポイントに関するトピック:

サービス固有のエンドポイント: 環境変数

環境変数は Config ファイルの設定を上書きしますが、コマンドラインで指定されたオプションは上書きしません。すべてのプロファイルにデバイス上の同じエンドポイントを使用させたい場合は、環境変数を使用してください。

サービス固有の環境変数は次のとおりです。

  • AWS_IGNORE_CONFIGURED_ENDPOINT_URLS - コマンドラインで指定されている場合を除き、設定済みのエンドポイント URL をすべて無視します。

    Linux or macOS
    $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    Windows Command Prompt

    すべてのセッションに設定するには

    C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true

    現在のセッションのみに設定するには

    C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    PowerShell
    PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
  • AWS_ENDPOINT_URL_<SERVICE> - 特定のサービスに使用されるカスタムエンドポイントを指定します。<SERVICE> は AWS のサービス 識別子に置き換えられます。すべてのサービス固有の変数については、「サービス固有のエンドポイント: サービス固有の識別子のリスト」を参照してください。

    次の環境変数の例では、AWS Elastic Beanstalk のエンドポイントを設定します。

    Linux or macOS
    $ export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
    Windows Command Prompt

    すべてのセッションに設定するには

    C:\> setx AWS_ENDPOINT_URL_ELASTIC_BEANSTALK http://localhost:4567

    現在のセッションのみに設定するには

    C:\> set AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
    PowerShell
    PS C:\> $Env:AWS_ENDPOINT_URL_ELASTIC_BEANSTALK="http://localhost:4567"

環境変数の設定については、「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 [services testing-s3] s3 = endpoint_url = http://localhost:4567

1 つのプロファイルで複数のサービスのエンドポイントを設定できます。次の例では、Amazon S3 のサービス固有のエンドポイント URL と AWS Elastic Beanstalk を同じプロファイルに設定しています。

services セクションで使用するすべてのサービス識別子キーのリストについては、「サービス固有の識別子のリスト」を参照してください。

[profile dev1] services = testing-s3-and-eb [services testing-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 [profile dev2] output = text services = testing-s3 [services testing-s3] s3 = endpoint_url = https://localhost:4567

サービス固有のエンドポイント: サービス固有の識別子のリスト

AWS のサービス 識別子は API モデルの serviceId に基づいており、すべてのスペースはアンダースコアに置き換えられ、使用する文字はすべて小文字になります。

以下のサービス識別子の例では AWS Elastic Beanstalk を使用しています。AWS Elastic Beanstalk には Elastic BeanstalkserviceId があるため、サービス識別子キーは elastic_beanstalk です。

次の表は、サービス固有の識別子、config ファイルキー、環境変数をすべて一覧にしたものです。

エンドポイント設定と設定の優先順位

エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI エンドポイント構成設定は、次の順序で優先されます。

  1. --endpoint-url コマンドラインオプション。

  2. 有効にすると、AWS_IGNORE_CONFIGURED_ENDPOINT_URLS グローバルエンドポイント環境変数またはプロファイル設定 ignore_configure_endpoint_urls はカスタムエンドポイントを無視します。

  3. サービス固有の環境変数 AWS_ENDPOINT_URL_<SERVICE> (AWS_ENDPOINT_URL_DYNAMODB など) によって提供される値。

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINT、および AWS_ENDPOINT_URL 環境変数によって提供される値。

  5. 共有 config ファイルの services セクション内の endpoint_url 設定によって提供されるサービス固有のエンドポイント値。

  6. 共有 config ファイルの profile 内の endpoint_url 設定によって提供される値。

  7. use_dualstack_endpointuse_fips_endpoint、および endpoint_url の設定。

  8. 各 AWS のサービス のデフォルトのエンドポイント URL が最後に使用されます。各リージョンで使用できる標準的なサービスエンドポイントについては、「Amazon Web Services 全般のリファレンス」の「AWS リージョンとエンドポイント」を参照してください。