

# Using endpoints in the AWS CLI
<a name="cli-configure-endpoints"></a>

AWS のサービス にプログラムで接続するため、エンドポイントを使用します。*エンドポイント*は、AWS Web サービスのエントリポイントの URL です。AWS Command Line Interface (AWS CLI) は AWS リージョン の各サービスに対してデフォルトのエンドポイントを自動的に使用しますが、API リクエストに代替のエンドポイントを指定することもできます。

**Contents**
+ [1 つのコマンドのエンドポイントを設定する](#endpoints-command)
+ [すべての AWS のサービス にグローバルエンドポイントを設定します。](#endpoints-global)
+ [すべての AWS のサービスに FIPS エンドポイントを使用するように設定](#endpoints-fips)
+ [すべての AWS のサービスでデュアルスタックのエンドポイントを使用するように設定](#endpoints-dual-stack)
+ [サービス固有のエンドポイントを設定します。](#endpoints-service-specific)
  + [環境変数](#endpoints-service-specific-envvars)
  + [共有 `config` ファイル](#endpoints-service-specific-config)
  + [サービス固有の識別子のリスト](#endpoints-service-specific-table)
+ [アカウントベースのエンドポイント](#endpoints-accountid)
+ [エンドポイント設定と設定の優先順位](#endpoints-precedence)

## 1 つのコマンドのエンドポイントを設定する
<a name="endpoints-command"></a>

1 つのコマンドのエンドポイント設定や環境変数を上書きするには、`--endpoint-url` コマンドラインオプションを使用します。以下のコマンド例では、カスタム Amazon S3 エンドポイント URL を使用しています。

```
$ aws s3 ls --endpoint-url {{http://localhost:4567}}
```

## すべての AWS のサービス にグローバルエンドポイントを設定します。
<a name="endpoints-global"></a>

すべてのサービスのリクエストをカスタムエンドポイント 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 エンドポイントを使用するように設定
<a name="endpoints-fips"></a>

すべてのサービスのリクエストを 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](https://aws.amazon.com/compliance/fips/) をサポートするエンドポイントを一部の AWS リージョンで提供しています。AWS のサービスが FIPS をサポートしている場合、この設定により、どの FIPS エンドポイントを AWS CLI が使用すべきかを指定します。標準の AWS エンドポイントとは異なり、FIPS エンドポイントでは FIPS 140-2 に準拠した TLS ソフトウェアライブラリを使用しています。このエンドポイントは、米国政府とやり取りをする企業で必要とされる場合があります。

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

AWS リージョンごとの FIPS エンドポイントの指定については、「[サービス別の FIPS エンドポイント](https://aws.amazon.com/compliance/fips/)」を参照してください。

## すべての AWS のサービスでデュアルスタックのエンドポイントを使用するように設定
<a name="endpoints-dual-stack"></a>

利用可能な場合に、すべてのサービスでデュアルスタックエンドポイントを使用するようにリクエストをルーティングするには、以下の設定のいずれかを使用します。
+ `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 デュアルスタックエンドポイントの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)」を参照してください。デュアルスタックのエンドポイントは、一部のリージョンでは一部のサービスで利用できます。サービスまたは AWS リージョン にデュアルスタックエンドポイントが存在しない場合、リクエストは失敗します。これはデフォルトでは無効になっています。

## サービス固有のエンドポイントを設定します。
<a name="endpoints-service-specific"></a>

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

サービス固有のエンドポイントは以下の方法で指定できます。
+ 1 つのコマンドコマンドラインオプション `--endpoint-url`。
+ 環境変数:
  + `AWS\_IGNORE\_CONFIGURED\_ENDPOINT\_URLS` - コマンドラインで指定されている場合を除き、設定済みのエンドポイント URL をすべて無視します。
  + `AWS\_ENDPOINT\_URL\_<SERVICE>` - 特定のサービスに使用されるカスタムエンドポイントを指定します。`<SERVICE>` は AWS のサービス 識別子に置き換えられます。すべてのサービス固有の変数については、「[サービス固有のエンドポイント: サービス固有の識別子のリスト](#endpoints-service-specific-table)」を参照してください。
+ `config` ファイル:
  + `ignore\_configure\_endpoint\_urls` - 環境変数を使用して、またはコマンドラインで指定されている場合を除き、設定済みのエンドポイント URL をすべて無視します。
  + `endpoint\_url` ファイル設定と組み合わされた `config` ファイルの [`services`](cli-configure-files.md#cli-configure-files-format-services) セクション。

**Topics**
+ [環境変数](#endpoints-service-specific-envvars)
+ [共有 `config` ファイル](#endpoints-service-specific-config)
+ [サービス固有の識別子のリスト](#endpoints-service-specific-table)

### サービス固有のエンドポイント: 環境変数
<a name="endpoints-service-specific-envvars"></a>

環境変数は 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 のサービス 識別子に置き換えられます。すべてのサービス固有の変数については、「[サービス固有のエンドポイント: サービス固有の識別子のリスト](#endpoints-service-specific-table)」を参照してください。

  次の環境変数の例では、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](cli-configure-envvars.md)」を参照してください。

### サービス固有のエンドポイント: 共有 `config` ファイル
<a name="endpoints-service-specific-config"></a>

共有 `config` ファイルでは、`endpoint_url` は複数のセクションで使用されます。サービス固有のエンドポイントを設定するには、`services` セクション内のサービス ID キーの下にネストされた `endpoint_url` 設定を使用します。共有 `config` ファイル内の `services` セクションの定義について詳しくは、「[セクションタイプ: `services`](cli-configure-files.md#cli-configure-files-format-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` セクションで使用するすべてのサービス識別子キーのリストについては、「[サービス固有の識別子のリスト](#endpoints-service-specific-table)」を参照してください。

```
[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}}
```

### サービス固有のエンドポイント: サービス固有の識別子のリスト
<a name="endpoints-service-specific-table"></a>

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

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

## アカウントベースのエンドポイント
<a name="endpoints-accountid"></a>

アカウントベースのエンドポイントは以下の方法で指定できます。
+ 環境変数
  + `AWS\_ACCOUNT\_ID` - サポートされている AWS のサービスへの呼び出しに使用する AWS アカウントベースのエンドポイント ID を指定します。

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ACCOUNT_ID={{<account-id>}}
    ```

------
#### [ Windows Command Prompt ]

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

    ```
    C:\> setx AWS_ACCOUNT_ID {{<account-id>}}
    ```

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

    ```
    C:\> set AWS_ACCOUNT_ID={{<account-id>}}
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ACCOUNT_ID="{{<account-id>}}"
    ```

------
  + `AWS\_ACCOUNT\_ID\_ENDPOINT\_MODE` - サポートされている AWS のサービスへの呼び出しに AWS アカウントベースのエンドポイント ID を使用するかどうかを指定します。`preferred`、`disabled`、`required` のいずれかに設定できます。デフォルト値は `preferred` です。

------
#### [ Linux or macOS ]

    ```
    $ export AWS_ACCOUNT_ID_ENDPOINT_MODE={{preferred}}
    ```

------
#### [ Windows Command Prompt ]

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

    ```
    C:\> setx AWS_ACCOUNT_ID_ENDPOINT_MODE {{preferred}}
    ```

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

    ```
    C:\> set AWS_ACCOUNT_ID_ENDPOINT_MODE={{preferred}}
    ```

------
#### [ PowerShell ]

    ```
    PS C:\> $Env:AWS_ACCOUNT_ID_ENDPOINT_MODE="{{preferred}}"
    ```

------
+ `config` ファイル: 
  + `aws\_account\_id` - サポートされている AWS のサービスへの呼び出しに使用する AWS アカウントベースのエンドポイント ID を指定します。

    ```
    aws_account_id = {{<account-id>}}
    ```
  + `account\_id\_endpoint\_mode` - サポートされている AWS のサービスへの呼び出しに AWS アカウントベースのエンドポイント ID を使用するかどうかを指定します。`preferred`、`disabled`、`required` のいずれかに設定できます。デフォルト値は preferred です。

    ```
    account_id_endpoint_mode = {{preferred}}
    ```

アカウントベースのエンドポイントは、AWS アカウント ID を使用し、この機能をサポートしているサービスの AWS のサービスリクエストのルーティングを合理化して、高いパフォーマンスとスケーラビリティを確保するのに役立ちます。認証情報プロバイダーと、アカウントベースのエンドポイントをサポートするサービスを使用すると、AWS CLI によってリージョンのエンドポイントではなくアカウントベースのエンドポイントが自動的に構築されて使用されます。

アカウントベースのエンドポイントは、次の形式を使用します。ここで、`<account-id>` は AWS アカウント ID に置き換えられ、`<region>` は AWS リージョンに置き換えられます。

```
https://{{<account-id>}}.myservice.{{<region>}}.amazonaws.com
```

AWS CLI のデフォルトでは、アカウントベースのエンドポイントモードは `preferred` に設定されます。

## エンドポイント設定と設定の優先順位
<a name="endpoints-precedence"></a>

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

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

1. 有効にすると、`AWS\_IGNORE\_CONFIGURED\_ENDPOINT\_URLS` グローバルエンドポイント環境変数またはプロファイル設定 `ignore\_configure\_endpoint\_urls` はカスタムエンドポイントを無視します。

1. サービス固有の環境変数 `AWS\_ENDPOINT\_URL\_<SERVICE>` (`AWS_ENDPOINT_URL_DYNAMODB` など) によって提供される値。

1. `AWS\_USE\_DUALSTACK\_ENDPOINT`、`AWS\_USE\_FIPS\_ENDPOINT`、および `AWS\_ENDPOINT\_URL` 環境変数によって提供される値。

1. `AWS\_ACCOUNT\_ID\_ENDPOINT\_MODE` 環境変数は、`AWS\_ACCOUNT\_ID` 環境変数または `aws\_account\_id` 設定でのアカウント ID の使用について、`preferred` または `required` に設定されます。

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

1. 共有 `config` ファイルの `profile` 内の `endpoint\_url` 設定によって提供される値。

1. `use\_dualstack\_endpoint`、`use\_fips\_endpoint`、および `endpoint\_url` の設定。

1. `account\_id\_endpoint\_mode` 設定は、`AWS\_ACCOUNT\_ID` 環境変数または `aws\_account\_id` 設定でのアカウント ID の使用について、`preferred` または `required` に設定されます。

1. 各 AWS のサービス のデフォルトのエンドポイント URL が最後に使用されます。各リージョンで使用できる標準的なサービスエンドポイントについては、「*Amazon Web Services 全般のリファレンス*」の「[AWS リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html)」を参照してください。