

# Configuring settings for the AWS CLI
<a name="cli-chap-configure"></a>

このセクションでは、AWS Command Line Interface (AWS CLI) が AWS と対話するために使用する設定を指定する方法について説明します。これには以下が含まれます。
+ API の呼び出し元を識別する**認証情報**。アクセス認証情報は、AWS サーバーへのリクエストを暗号化して ID を確認し、関連するアクセス許可ポリシーを取得するために使用します。これらのアクセス許可によって、実行できるアクションが決まります。認証情報の設定の詳細については、「[Authentication and access credentials for the AWS CLI](cli-chap-authentication.md)」を参照してください。
+ **その他の設定の詳細**。デフォルトの出力形式やデフォルトの AWS リージョンなど、リクエストの処理方法を AWS CLI に指示します。

**注記**  
AWS では、すべての着信リクエストは暗号で署名される必要があります。これは、AWS CLI によって行われます。「署名」には日時スタンプが含まれます。したがって、コンピュータの日付と時刻が正しく設定されていることを確認する必要があります。日時が正しく設定されていない場合、署名の日時が AWS サービスによって認識された日間と大きく異なることがあり、その場合は AWS によってリクエストが却下されます。

## 設定と認証情報の優先順位
<a name="configure-precedence"></a>

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

1. **[コマンドラインオプション](cli-configure-options.md)** - `--region`、`--output`、`--profile` パラメータなど、他の任意の場所にある設定を上書きします。

1. **[環境変数](cli-configure-envvars.md)** - システムの環境変数に値を保存できます。

1. **[ロールの継承](cli-configure-role.md)** - 設定または [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html) コマンドを通じて IAM ロールのアクセス許可を継承します。

1. **[ウェブ ID によるロールの継承](cli-configure-role.md)** - 設定または [https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-web-identity.html) コマンドを通じてウェブ ID を使用して IAM ロールのアクセス許可を継承します。

1. **[AWS IAM アイデンティティセンター](cli-configure-files.md)** – `config` ファイルに保存された IAM ID センターの設定は、`aws configure sso` コマンド実行時に更新されます。そうすると、`aws sso login` コマンドを実行すると認証情報が認証されます。「`config`」ファイルは、Linux または macOS では「`~/.aws/config`」、Windows では「`C:\Users\USERNAME\.aws\config`」にあります。

1. **[認証情報ファイル](cli-configure-files.md)** – コマンド `aws configure` を実行すると、`credentials` ファイルと `config` ファイルが更新されます。「`credentials`」ファイルは、Linux または macOS では「`~/.aws/credentials`」、Windows では「`C:\Users\USERNAME\.aws\credentials`」にあります。

1. **[カスタムプロセス](cli-configure-sourcing-external.md)** — 外部ソースから認証情報を取得します。

1. **[設定ファイル](cli-configure-files.md)** - コマンド `aws configure` を実行すると、`credentials` ファイルと `config` ファイルが更新されます。「`config`」ファイルは、Linux または macOS では「`~/.aws/config`」、Windows では「`C:\Users\USERNAME\.aws\config`」にあります。

1. **[コンテナ認証情報](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)** - IAM ロールを各 Amazon Elastic コンテナサービス (Amazon ECS) タスク定義に関連付けることができます。関連付けられると、そのロールの一時認証情報は、そのタスクのコンテナで使用できるようになります。詳細については、*Amazon Elastic Container Service 開発者ガイド*の「[タスク用の IAM ロール](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)」を参照してください。

1. **[Amazon EC2 インスタンスプロファイルの認証情報](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)** - IAM ロールを各 Amazon Elastic コンピュートクラウド (Amazon EC2) インスタンスに関連付けることができます。関連付けられると、そのロールの一時認証情報は、インスタンスで実行中のコードで使用できるようになります。認証情報は、Amazon EC2 メタデータサービスを通じて配信されます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 の IAM ロール](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)」および「*IAM ユーザーガイド*」の「[インスタンスプロファイルの使用 ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)」を参照してください。

## このセクションのその他のトピック
<a name="configure-topics"></a>
+ [Configuration and credential file settings in the AWS CLI](cli-configure-files.md)
+ [Configuring environment variables for the AWS CLI](cli-configure-envvars.md)
+ [Command line options in the AWS CLI](cli-configure-options.md)
+ [Configuring command completion in the AWS CLI](cli-configure-completion.md)
+ [AWS CLI retries in the AWS CLI](cli-configure-retries.md)
+ [Using an HTTP proxy for the AWS CLI](cli-configure-proxy.md)

# Configuration and credential file settings in the AWS CLI
<a name="cli-configure-files"></a>

頻繁に利用される構成設定および認証情報を AWS CLI が維持するファイルに保存することができます。

ファイルは `profiles` に分割されます。デフォルトで、AWS CLI は `default` という名前のプロファイルにある設定を使用します。替わりの設定を使用するには、追加のプロファイルを作成して参照できます。

サポートされた環境変数のいずれかの設定を使用するか、あるいはコマンドラインパラメータを使用して、個別の設定を上書きすることもできます。構成設定の優先順位の詳細については、「[Configuring settings for the AWS CLI](cli-chap-configure.md)」を参照してください。

**注記**  
認証情報の設定の詳細については、「[Authentication and access credentials for the AWS CLI](cli-chap-authentication.md)」を参照してください。

**Topics**
+ [設定ファイルと認証ファイルの形式](#cli-configure-files-format)
+ [構成設定はどこに保存されていますか。](#cli-configure-files-where)
+ [名前を指定されたプロファイルを使用する](#cli-configure-files-using-profiles)
+ [コマンドを使用した構成設定の設定と表示](#cli-configure-files-methods)
+ [新しい設定と認証情報を設定するコマンドの例](#cli-configure-files-examples)
+ [サポートされる `config` ファイル設定](#cli-configure-files-settings)

## 設定ファイルと認証ファイルの形式
<a name="cli-configure-files-format"></a>

`config` ファイルと `credentials` ファイルは、セクションにまとめられています。セクションには、*プロファイル*、*SSO セッション*、および*サービス*が含まれます。セクションは、設定の名前付きコレクションであり、別のセクション定義の行が検出されるまで続きます。複数のプロファイルとセクションを `config` ファイルおよび `credentials` ファイルに保存できます。

これらのファイルは、次の形式を使用するプレーンテキストファイルです。
+ セクション名は、`[default]`、`[profile user1]`、`[sso-session]` などの括弧 [] で囲まれています。
+ セクション内のすべてのエントリは、`setting_name=value` の一般的な形式になります。
+ 行の先頭にハッシュ文字 (`#`) を付けると、行をコメントアウトできます。

**`config` および `credentials` ファイルには以下のセクションタイプが含まれます。**
+ [`profile`](#cli-configure-files-format-profile)
+ [`sso-session`](#cli-configure-files-format-sso-session)
+ [`services`](#cli-configure-files-format-services)

### セクションタイプ: `profile`
<a name="cli-configure-files-format-profile"></a>

ファイルに応じて、セクション名の形式は次のとおりです。
+ **設定ファイル:** `[default]` `[profile user1]`
+ **認証情報ファイル:** `[default]` `[user1]`

  `credentials` ファイルにエントリを作成するときは、`profile` という単語を**使用しないでください****。

各プロファイルは異なる認証情報を指定できます。また、別の AWS リージョンおよび出力形式を指定することもできます。`config` ファイルでプロファイルに名前を付けるときは、プレフィックス「`profile`」を含めますが、`credentials` ファイルには含めないでください。

次の例は、2 つのプロファイル、リージョン、出力が指定されている `credentials` ファイルと `config` ファイルを示しています。最初の *[default]* はプロファイルを指定せずに AWS CLI コマンドを実行するときに使用します。2 つ目は、`--profile user1` パラメータを指定して AWS CLI コマンドを実行するときに使用します。

------
#### [ IAM Identity Center (SSO) ]

この例は AWS IAM アイデンティティセンター 用です。詳細については、「[AWS CLI を使用した IAM アイデンティティセンター認証の設定](cli-configure-sso.md)」を参照してください。

**認証情報ファイル**: 

`credentials` ファイルは、この認証方法には使用しません。

**設定ファイル**

```
[default]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = readOnly
region = us-west-2
output = text

[profile user1]
sso_session = my-sso
sso_account_id = 444455556666
sso_role_name = readOnly
region = us-east-1
output = json

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

------
#### [ IAM Identity Center (Legacy SSO) ]

この例は、AWS IAM アイデンティティセンター の従来の方法を示しています。詳細については、「[AWS CLI を使用した IAM アイデンティティセンター認証の設定](cli-configure-sso.md)」を参照してください。

**認証情報ファイル**: 

`credentials` ファイルは、この認証方法には使用しません。

**設定ファイル**

```
[default]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 111122223333
sso_role_name = readOnly
region = us-west-2
output = text

[profile user1]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-east-1
sso_account_id = 444455556666
sso_role_name = readOnly
region = us-east-1
output = json
```

------
#### [ Short-term credentials ]

この例は、AWS Identity and Access Management の短期の認証情報用です。詳細については、「[Authenticating with short-term credentials for the AWS CLI](cli-authentication-short-term.md)」を参照してください。

**認証情報ファイル**: 

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

[user1]
aws_access_key_id=ASIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

**設定ファイル**

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

------
#### [ IAM role ]

この例は IAM ロールを引き受けるためのものです。IAM ロールを使用するプロファイルは、別のプロファイルから認証情報を取得し、IAM ロールのアクセス許可を適用します。以下の例で、`default` は認証情報のソースプロファイルで、`user1` は同じ認証情報を借り出して新しいロールを継承します。詳細については、「[AWS CLI での IAM ロールの使用](cli-configure-role.md)」を参照してください。

**認証情報ファイル**: 

`credentials` ファイルは、ソースプロファイルが使用する認証によって異なります。次の例で、ソースプロファイルは短期の認証情報を使用しています。

```
[default]
aws_access_key_id=ASIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

**設定ファイル**

```
[default]
region=us-west-2
output=json

[profile user1]
role_arn=arn:aws:iam::777788889999:role/user1role
source_profile=default
role_session_name=session_user1
region=us-east-1
output=text
```

------
#### [ Amazon EC2 instance metadata credentials ]

次の例は、ホストしている Amazon EC2 インスタンスメタデータから取得した認証情報用です。詳細については、「[Using Amazon EC2 instance metadata as credentials in the AWS CLI](cli-configure-metadata.md)」を参照してください。

**認証情報ファイル**: 

`credentials` ファイルは、この認証方法には使用しません。

**設定ファイル**

```
[default]
role_arn=arn:aws:iam::123456789012:role/defaultrole
credential_source=Ec2InstanceMetadata
region=us-west-2
output=json

[profile user1]
role_arn=arn:aws:iam::777788889999:role/user1role
credential_source=Ec2InstanceMetadata
region=us-east-1
output=text
```

------
#### [ Long-term credentials ]

**警告**  
セキュリティリスクを避けるため、専用ソフトウェアを開発するときや実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、[AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) などの ID プロバイダーとのフェデレーションを使用してください。

この例は、AWS Identity and Access Management の長期の認証情報用です。詳細については、「[Authenticating using IAM user credentials for the AWS CLI](cli-authentication-user.md)」を参照してください。

**認証情報ファイル**: 

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

[user1]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
```

**設定ファイル**

```
[default]
region=us-west-2
output=json

[profile user1]
region=us-east-1
output=text
```

------

詳細および追加の認可/認証情報メソッドについては、「[Authenticating using IAM user credentials for the AWS CLI](cli-authentication-user.md)」を参照してください。

### セクションタイプ: `sso-session`
<a name="cli-configure-files-format-sso-session"></a>

`config` ファイルの `sso-session` セクションを使用して、SSO アクセストークンを取得するための設定変数をグループ化します。これらを使用して、AWS 認証情報を取得できます。次の設定を使用します。
+ **(必須)** `sso\$1start\$1url`
+ **(必須)** `sso\$1region`
+ `sso\$1account\$1id`
+ `sso\$1role\$1name`
+ `sso\$1registration\$1scopes`

`sso-session` セクションを定義してプロファイルに関連付けます。`sso_region` と `sso_start_url` は `sso-session` セクション内に設定する必要があります。SDK が SSO 認証情報をリクエストできるように、通常、`sso_account_id` と `sso_role_name` は `profile`セクション内に設定する必要があります。

次の例では、SSO 認証情報をリクエストするように SDK を設定し、トークンの自動更新をサポートしています。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

これにより、`sso-session` 設定を複数のプロファイルでも再利用できるようになります。

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[profile prod]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole2

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

ただし、`sso_account_id` と `sso_role_name` は SSO トークン設定のすべてのシナリオで必須というわけではありません。アプリケーションでベアラー認証をサポートする AWS のサービスのみを使用する場合、従来の AWS 認証情報は必要ありません。ベアラー認証は、ベアラートークンと呼ばれるセキュリティトークンを使用する HTTP 認証スキームです。このシナリオでは、`sso_account_id` と `sso_role_name` は必須ではありません。AWS のサービスでベアラートークン認可をサポートしているかどうかについては、各サービスのガイドを参照してください。

さらに、登録スコープは `sso-session` の一部として設定できます。スコープは、ユーザーのアカウントに対するアプリケーションのアクセスを制限する OAuth 2.0 のメカニズムです。アプリケーションは 1 つ以上のスコープをリクエストでき、アプリケーションに発行されたアクセストークンは付与されたスコープに限定されます。これらのスコープは、登録された OIDC クライアントがリクエストできるアクセス許可と、クライアントが取得するアクセストークンを定義します。次の例では、アカウント/ロールを一覧表示するアクセスを許可するように `sso_registration_scopes` を設定しています。

```
[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_registration_scopes = sso:account:access
```

認証トークンは、セッション名に基づいたファイル名を使用して、`~/.aws/sso/cache` ディレクトリの下のディスクにキャッシュされます。

設定タイプの詳細については、「[AWS CLI を使用した IAM アイデンティティセンター認証の設定](cli-configure-sso.md)」を参照してください。

### セクションタイプ: `services`
<a name="cli-configure-files-format-services"></a>

`services` セクションは、AWS のサービス リクエストのカスタムエンドポイントを設定する設定のグループです。その後、プロファイルは `services` セクションにリンクされます。

```
[profile dev]
services = my-services
```

`services` セクションは `<SERVICE> = ` 行ごとにサブセクションに分割されます。ここで、`<SERVICE>` は AWS のサービス 識別子キーです。AWS のサービス 識別子は API モデルの `serviceId` に基づいており、すべてのスペースはアンダースコアに置き換えられ、使用する文字はすべて小文字になります。`services` セクションで使用するすべてのサービス識別子キーのリストについては、「[Using endpoints in the AWS CLI](cli-configure-endpoints.md)」を参照してください。サービス識別子キーの後には、ネストされた設定 (それぞれが 1 行にあり、2 つのスペースでインデントされている) が続きます。

次の例では、*dev* プロファイルで使用される *my-services* セクション内の Amazon DynamoDB サービスへのリクエストに使用するエンドポイントを設定します。直後のインデントされた行はすべてそのサブセクションに含まれ、そのサービスに適用されます。

```
[profile dev]
services = my-services

[services my-services]
dynamodb = 
  endpoint_url = http://localhost:8000
```

サービス固有のエンドポイントの詳細については、「[Using endpoints in the AWS CLI](cli-configure-endpoints.md)」を参照してください。

プロファイルに IAM Assume Role 機能の `source_profile` パラメータによって設定されたロールベースの認証情報がある場合、SDK は指定されたプロファイルのサービス設定のみを使用します。ロールチェーンされたプロファイルは使用されません。例えば、次の共有 `config` ファイルを使用します。

```
[profile A]
credential_source = Ec2InstanceMetadata
endpoint_url = https://profile-a-endpoint.aws/

[profile B]
source_profile = A
role_arn = arn:aws:iam::123456789012:role/roleB
services = profileB

[services profileB]
ec2 = 
  endpoint_url = https://profile-b-ec2-endpoint.aws
```

 プロファイル `B` を使用してコード内で Amazon EC2 を呼び出すと、エンドポイントは `https://profile-b-ec2-endpoint.aws` として解決されます。コードが他のサービスにリクエストを送信した場合、エンドポイントの解決はカスタムロジックには従いません。エンドポイントはプロファイル `A` で定義されたグローバルエンドポイントには解決されません。グローバルエンドポイントを `B` プロファイルに対して有効にするには、プロファイル `B` 内で直接 `endpoint_url` を設定する必要があります。

## 構成設定はどこに保存されていますか。
<a name="cli-configure-files-where"></a>

AWS CLI は `aws configure` で指定された機密性の高い認証情報を、ホームディレクトリの `.aws` という名前のフォルダにある `credentials` という名前のローカルファイルに保存します。`aws configure` で指定された機密性の低い設定オプションは、`config` という名前のローカルファイルに保存されるだけでなく、ホームディレクトリの `.aws` フォルダにも保存されます。

**認証情報を設定ファイルに保存する**  
AWS CLI は `config` ファイルから認証情報を読み取ることができるので、すべてのプロファイル設定を 1 つのファイルに保持できます。同じ名前を共有するプロファイルの両方のファイルに認証情報がある場合、認証情報ファイルのキーが優先されます。認証情報は `credentials` ファイルに保存することをお勧めします。また、これらのファイルはさまざまな言語ソフトウェア開発キット (SDK) によっても使用されます。AWS CLI に加えて SDK のいずれかを使用する場合は、認証情報を独自のファイルに保存する必要があるかどうかを確認します。

ホームディレクトリの場所はオペレーティングシステムによって異なりますが、環境変数 `%UserProfile%` (Windows の場合) および `$HOME` またはチルド `~` (Unix ベースのシステムの場合) を使用して参照されます。`AWS_CONFIG_FILE` と `AWS_SHARED_CREDENTIALS_FILE` の環境変数を別のローカルパスに設定することで、ファイルの場所をデフォルト以外の場所に指定できます。詳細については、「[Configuring environment variables for the AWS CLI](cli-configure-envvars.md)」を参照してください。

AWS Identity and Access Management (IAM) ロールを指定する共有プロファイルを使用する場合、AWS CLI は AWS STS `AssumeRole` オペレーションを呼び出して一時的な認証情報を取得します。その後、これらの認証情報は `~/.aws/cli/cache` に保存されます。それ以降の AWS CLI コマンドは、このキャッシュされた一時的な認証情報を有効期限が切れるまで使用します。有効期限が切れると、そこで AWS CLI によって自動的に認証情報が更新されます。

## 名前を指定されたプロファイルを使用する
<a name="cli-configure-files-using-profiles"></a>

明示的に定義されたプロファイルがない場合は、`default` プロファイルが使用されます。

名前付きプロファイルを使用するには、コマンドに `--profile profile-name` オプションを追加します。次の例では、`user1` プロファイルに定義された認証情報および設定を使用しているすべての Amazon EC2 インスタンスを一覧表示します。

```
$ aws ec2 describe-instances --profile user1
```

複数のコマンドで名前付きプロファイルを使用する場合は、コマンドごとにプロファイルを指定しなくても済むように、`AWS_PROFILE` 環境変数をデフォルトプロファイルとして設定できます。この設定は、`--profile` パラメータを使用して上書きできます。

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

```
$ export AWS_PROFILE=user1
```

------
#### [ Windows ]

```
C:\> setx AWS_PROFILE user1
```

`[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` を使用して環境変数を設定すると、現在のコマンドプロンプトセッションの終了時まで、または変数を別の値に設定するまで、使用する値が変更されます。

[https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx) を使用して環境変数を設定すると、コマンドの実行後に作成するすべてのコマンドシェルの値が変更されます。コマンドの実行時に既に実行されているコマンドシェルには**影響しません****。変更の影響を確認するには、コマンドシェルを閉じて再起動します。

環境変数を設定すると、シェルセッションの終了時まで、または変数に別の値を設定するまで、デフォルトのプロファイルが変更されます。環境変数をシェルのスタートアップスクリプトに配置すると、今後のセッションでこの環境変数を永続的にできます。詳細については、「[Configuring environment variables for the AWS CLI](cli-configure-envvars.md)」を参照してください。

------

## コマンドを使用した構成設定の設定と表示
<a name="cli-configure-files-methods"></a>

コマンドを使用して構成設定を表示および設定するには、複数の方法があります。

**`[aws configure](https://docs.aws.amazon.com/cli/v1/reference/configure/index.html)`**  
このコマンドを実行すると、認証情報、リージョン、出力形式をすばやく設定および表示できます。次の例は、サンプル値を示しています。  

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

**`[aws configure set](https://docs.aws.amazon.com/cli/v1/reference/configure/set.html)`**  
`aws configure set` を使用して、任意の認証情報または構成設定を設定できます。`--profile` 設定で表示または変更するプロファイルを指定します。  
例えば、次のコマンドは `region` という名前のプロファイル内の `integ` を設定します。  

```
$ aws configure set region us-west-2 --profile integ
```
設定を削除するには、テキストエディタで `config` ファイルおよび `credentials` ファイルの設定を手動で削除します。

**[https://docs.aws.amazon.com/cli/v1/reference/configure/get.html](https://docs.aws.amazon.com/cli/v1/reference/configure/get.html)**  
`aws configure get` を使用して設定した認証情報または構成設定を取得できます。`--profile` 設定で表示または変更するプロファイルを指定します。  
例えば、次のコマンドは `region` という名前のプロファイル内の `integ` 設定を取得します。  

```
$ aws configure get region --profile integ
us-west-2
```
出力が空の場合にはその設定は明示的に構成されず、デフォルトの値が使用されます。

**[https://docs.aws.amazon.com/cli/latest/reference/reference/configure/import.html](https://docs.aws.amazon.com/cli/latest/reference/reference/configure/import.html)**  
IAM ウェブコンソールから生成済みの `CSV` 認証情報をインポートします。これは IAM Identity Center で生成された認証情報用ではありません。IAM Identity Center を使用するお客様は aws configure sso を使用する必要があります。ユーザー名と一致するプロファイル名を持つ CSV ファイルがインポートされます。CSV ファイルには、次のヘッダーが含まれている必要があります。  
+ ユーザー名
+ アクセスキー ID
+ シークレットアクセスキー
最初のキーペアの作成時に、**[Download .csv file]** (.csv ファイルをダウンロードする) ダイアログボックスを閉じると、ダイアログボックスを閉じた後に、シークレットアクセスキーにアクセスできません。`.csv` ファイルが必要な場合は、必要なヘッダーと保存したキーペア情報を使用して自分で作成する必要があります。キーペア情報にアクセスできない場合は、新しいキーペアを作成する必要があります。

```
$ aws configure import --csv file://credentials.csv
```

**[https://docs.aws.amazon.com/cli/v1/reference/configure/list.html](https://docs.aws.amazon.com/cli/v1/reference/configure/list.html)**  
設定データを一覧表示するには、`aws configure list` コマンドを使用します。このコマンドは、指定したプロファイルに使用されるプロファイル、アクセスキー、シークレットキー、およびリージョンの設定情報を一覧表示します。各設定項目について、値、設定値の取得元、および設定の変数名が表示されます。  
例えば、環境変数に AWS リージョン を指定すると、このコマンドは、設定したリージョンの名前、この値が環境変数から取得されたこと、および環境変数の名前を表示します。  
ロールや IAM Identity Center などの一時的な認証情報メソッドでは、このコマンドは一時的にキャッシュされたアクセスキーを表示し、シークレットアクセスキーが表示されます。  

```
$ aws configure list
NAME       : VALUE                : TYPE                    : LOCATION
profile    : <not set>            : None                    : None
access_key : ****************ABCD : shared-credentials-file : 
secret_key : ****************ABCD : shared-credentials-file : 
region     : us-west-2            : env                     : AWS_DEFAULT_REGION
```

**[https://docs.aws.amazon.com/cli/v1/reference/configure/list-profiles.html](https://docs.aws.amazon.com/cli/v1/reference/configure/list-profiles.html)**  
すべてのプロファイル名を一覧表示するには、`aws configure list-profiles` コマンドを使用します。  

```
$ aws configure list-profiles
default
test
```

**`aws configure mfa-login`**  
このコマンドを実行して、指定したプロファイルで多要素認証 (MFA) と IAM ユーザー認証情報で使用する新しいプロファイルを設定します。プロファイルが指定されていない場合、MFA は `default` プロファイルに基づいています。デフォルトプロファイルが設定されていない場合、`mfa-login` コマンドは MFA 情報を尋ねる前に AWS 認証情報の入力を求めます。次のコマンド例では、デフォルト設定を使用して MFA プロファイルを作成します。  

```
$ aws configure mfa-login
MFA serial number or ARN: arn:aws:iam::123456789012:mfa/MFADeviceName
MFA token code: 123456
Profile to update [session-MFADeviceName]:
Temporary credentials written to profile 'session-MFADeviceName'
Credentials will expire at 2023-05-19 18:06:10 UTC
To use these credentials, specify --profile session-MFADeviceName when running AWS CLI commands
```
既存のプロファイルを更新するには、`--update-profile` パラメータを使用します。  

```
$ aws configure mfa-login --profile myprofile --update-profile mfaprofile
MFA token code: 123456
Temporary credentials written to profile 'mfaprofile'
Credentials will expire at 2023-05-19 18:06:10 UTC
To use these credentials, specify --profile mfaprofile when running AWS CLI commands
```
このコマンドは現在、ハードウェアまたはソフトウェアベースのワンタイムパスワード (OTP) 認証のみをサポートしています。パスキーと U2F デバイスは現在、このコマンドではサポートされていません。  
詳細については、「*AWS Identity and Access Management ユーザーガイド*」の「[IAM での AWS 多要素認証 (MFA) の使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)」を参照してください。

**`aws configure sso`**  
このコマンドを実行すると、AWS IAM アイデンティティセンター 認証情報、リージョン、出力形式をすばやく設定および表示できます。次の例は、サンプル値を示しています。  

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

**`aws configure sso-session`**  
このコマンドを実行すると、`credentials` および `config` ファイルの `sso-session` セクションで、AWS IAM アイデンティティセンター 認証情報、リージョン、出力形式をすばやく設定および表示できます。次の例は、サンプル値を示しています。  

```
$ aws configure sso-session
SSO session name: my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]: us-east-1
SSO registration scopes [None]: sso:account:access
```

**`aws configure export-credentials`**  
このコマンドを実行して、現在設定されている認証情報を指定された形式でエクスポートします。デフォルトでは、コマンドはデフォルトの認証情報を `process` 形式でエクスポートします。これは AWS SDK とツールの認証情報形式でサポートされている JSON 形式です。  

```
$ aws configure export-credentials
{
  "Version": 1,
  "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
  "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
}
```
特定のプロファイルと形式をエクスポートするには、`--profile` および `--format` オプションを使用します。形式のオプションは以下のとおりです。  
+ **(デフォルト)** **`process`** – AWS SDK とツールの `credential_process` の設定でサポートされている JSON 形式。
+ **`env`** - エクスポートされたシェル形式の環境変数。
+ **`env-no-export`** – シェル形式のエクスポートされていない環境変数。
+ **`powershell`** - PowerShell 形式の環境変数。
+ **`windows-cmd`** - Windows のコマンドライン形式の環境変数。
次の例では、`user1` プロファイルをエクスポートされたシェル形式にエクスポートします。  

```
$ aws configure export-credentials --profile user1 --format env
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

## 新しい設定と認証情報を設定するコマンドの例
<a name="cli-configure-files-examples"></a>

次の例は、さまざまな認証方法で指定された認証情報、リージョン、出力を使用してデフォルトプロファイルを設定する方法を示しています。

------
#### [ Console sessions as short-term credentials ]

この例では、`aws login` コマンドで既存のコンソール認証情報を使用できます。このサインイン方法は、最初のアカウント設定中に作成されたルート認証情報、IAM ユーザー、または ID プロバイダーからのフェデレーティッド ID で使用できます。詳細については、「[コンソール認証情報を使用した AWS ローカル開発へのログイン](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)」を参照してください。

```
$ aws login
No AWS region has been configured. The AWS region is the geographic location of your AWS resources. 

If you've used AWS before and already have resources in your account, tell us which region they were 
created in. If you haven't created resources in your account before, you can pick the region closest to you: 
https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html. You are able to change 
the region in the CLI at any time with the command `aws configure set region NEW_REGION`.

AWS Region [us-east-1]: us-east-1
Attempting to open the login page for `us-east-1` in your default browser. If the browser does not open, 
use the following URL to complete your login:

https://us-east-1.signin.aws.amazon.com/v1/authorize<abbreviated>

If you cannot connect to this URL, make sure that you have specified a valid region.

Waiting for login...

Logged in with role `arn:aws:sts::012345678910:user/iam-user`, and configured profile 
`default` to use `us-east-1`. This session will expire on October 14, 2025 at 2:04 PST. After this time, you 
can renew your session with `aws login`.
```

------
#### [ IAM Identity Center (SSO) ]

この例は、`aws configure sso` ウィザードを使用した AWS IAM アイデンティティセンター 用です。詳細については、「[AWS CLI を使用した IAM アイデンティティセンター認証の設定](cli-configure-sso.md)」を参照してください。

```
$ aws configure sso
SSO session name (Recommended): my-sso
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]:us-east-1

Attempting to automatically open the SSO authorization page in your default browser.

There are 2 AWS accounts available to you.
> DeveloperAccount, developer-account-admin@example.com (111122223333) 
  ProductionAccount, production-account-admin@example.com (444455556666)

Using the account ID 111122223333

There are 2 roles available to you.
> ReadOnly
  FullAccess

Using the role name "ReadOnly"

CLI default client Region [None]: us-west-2
CLI default output format [None]: json
CLI profile name [123456789011_ReadOnly]: user1
```

------
#### [ IAM Identity Center (Legacy SSO) ]

この例は、`aws configure sso` ウィザードを使用した AWS IAM アイデンティティセンター の従来の方法を示しています。従来の SSO を使用するには、セッション名を空白のままにします。詳細については、「[AWS CLI を使用した IAM アイデンティティセンター認証の設定](cli-configure-sso.md)」を参照してください。

```
$ aws configure sso
SSO session name (Recommended):
SSO start URL [None]: https://my-sso-portal.awsapps.com/start
SSO region [None]:us-east-1

SSO authorization page has automatically been opened in your default browser.
Follow the instructions in the browser to complete this authorization request.

There are 2 AWS accounts available to you.
> DeveloperAccount, developer-account-admin@example.com (111122223333) 
  ProductionAccount, production-account-admin@example.com (444455556666)

Using the account ID 111122223333

There are 2 roles available to you.
> ReadOnly
  FullAccess

Using the role name "ReadOnly"

CLI default client Region [None]: us-west-2
CLI default output format [None]: json
CLI profile name [123456789011_ReadOnly]: user1
```

------
#### [ Short-term credentials ]

この例は、AWS Identity and Access Management の短期の認証情報用です。aws configure ウィザードを使用して初期値を設定すると、`aws configure set` コマンドは必要な最後の値を割り当てます。詳細については、「[Authenticating with short-term credentials for the AWS CLI](cli-authentication-short-term.md)」を参照してください。

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
$ aws configure set aws_session_token fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

------
#### [ IAM role ]

この例は IAM ロールを引き受けるためのものです。IAM ロールを使用するプロファイルは、別のプロファイルから認証情報を取得し、IAM ロールのアクセス許可を適用します。以下の例で、`default` は認証情報のソースプロファイルです。`user1` は同じ認証情報を借り出して新しいロールを継承します。このプロセス用のウィザードは存在しないため、各値の設定には `aws configure set` コマンドを使用します。詳細については、「[AWS CLI での IAM ロールの使用](cli-configure-role.md)」を参照してください。

```
$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole
$ aws configure set source_profile default
$ aws configure set role_session_name session_user1
$ aws configure set region us-west-2
$ aws configure set output json
```

------
#### [ Amazon EC2 instance metadata credentials ]

次の例は、ホストしている Amazon EC2 インスタンスメタデータから取得した認証情報用です。このプロセス用のウィザードは存在しないため、各値の設定には `aws configure set` コマンドを使用します。詳細については、「[Using Amazon EC2 instance metadata as credentials in the AWS CLI](cli-configure-metadata.md)」を参照してください。

```
$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole
$ aws configure set credential_source Ec2InstanceMetadata
$ aws configure set region us-west-2
$ aws configure set output json
```

------
#### [ Long-term credentials ]

**警告**  
セキュリティリスクを避けるため、専用ソフトウェアを開発するときや実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、[AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) などの ID プロバイダーとのフェデレーションを使用してください。

この例は、AWS Identity and Access Management の長期の認証情報用です。詳細については、「[Authenticating using IAM user credentials for the AWS CLI](cli-authentication-user.md)」を参照してください。

```
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json
```

------

## サポートされる `config` ファイル設定
<a name="cli-configure-files-settings"></a>

**Topics**
+ [[Global settings (グローバル設定)]](#cli-configure-files-global)
+ [S3 カスタマーコマンド設定](#cli-configure-files-s3)

`config` ファイルでは、以下の設定がサポートされます。同名の環境変数があること、または同名のコマンドラインオプションによって上書きされる場合を除き、指定された (またはデフォルトの) プロファイルにリストされる値が使用されます。優先する順序設定の詳細については、「[Configuring settings for the AWS CLI](cli-chap-configure.md)」を参照してください。

### [Global settings (グローバル設定)]
<a name="cli-configure-files-global"></a>

** `account_id_endpoint_mode` **  
サポートされている AWS のサービスへの呼び出しに AWS アカウントベースのエンドポイント ID を使用するかどうかを指定します。アカウントベースのエンドポイントの詳細については、「[アカウントベースのエンドポイント](cli-configure-endpoints.md#endpoints-accountid)」を参照してください。  
この設定は、次のように設定できます。  
+ **(デフォルト)** **`preferred`** – アカウント ID が使用可能な場合、エンドポイントに含める必要があります。
+ **`disabled`** – 解決済みのエンドポイントにアカウント ID は含まれません。
+ **`required`** – エンドポイントにアカウント ID が含まれる必要があります。アカウント ID が使用できない場合、SDK はエラーをスローします。
`AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 環境変数で上書きすることができます。アカウントベースのエンドポイントを使用するには、`AWS\$1ACCOUNT\$1ID` 環境変数または `aws\$1account\$1id` 設定で ID を設定する必要があります。  

```
account_id_endpoint_mode = preferred
```
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

** `aws_access_key_id` **  
コマンドリクエストを認証するための認証情報の一部として使用する AWS アクセスキーを指定します。これを `config` ファイルに保存することもできますが、`credentials` ファイルに保存することが推奨されます。  
`AWS_ACCESS_KEY_ID` 環境変数で上書きすることができます。アクセスキー ID をコマンドラインオプションとして指定することはできません。  

```
aws_access_key_id = AKIAIOSFODNN7EXAMPLE
```

** `aws_account_id` **  
サポートされている AWS のサービスへの呼び出しに使用する AWS アカウントベースのエンドポイント ID を指定します。アカウントベースのエンドポイントの詳細については、「[アカウントベースのエンドポイント](cli-configure-endpoints.md#endpoints-accountid)」を参照してください。  
`AWS\$1ACCOUNT\$1ID` 環境変数で上書きすることができます。この設定を使用するには、`AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 環境変数または `account\$1id\$1endpoint\$1mode` 設定を `preferred` または `required` に設定する必要があります。  

```
aws_account_id = 123456789EXAMPLE
```
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`aws_secret_access_key`**  
コマンドリクエストを認証するための認証情報の一部として使用する AWS シークレットキーを指定します。これを `config` ファイルに保存することもできますが、`credentials` ファイルに保存することが推奨されます。  
`AWS_SECRET_ACCESS_KEY` 環境変数で上書きすることができます。シークレットアクセスキーをコマンドラインオプションとして指定することはできません。  

```
aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
```

**`aws_session_token`**  
AWS セッショントークンを指定します。セッショントークンは、一時的なセキュリティ認証情報を手動で指定する場合にのみ必要です。これを `config` ファイルに保存することもできますが、`credentials` ファイルに保存することが推奨されます。  
`AWS_SESSION_TOKEN` 環境変数で上書きすることができます。セッショントークンをコマンドラインオプションとして指定することはできません。  

```
aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
```

**`ca_bundle`**  
SSL 証明書を検証するために使用される CA 証明書バンドル (`.pem` 拡張子があるファイル) を指定します。  
`AWS\$1CA\$1BUNDLE` 環境変数あるいは `--ca-bundle` コマンドラインオプションで上書きできます。  

```
ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem
```

**`cli_auto_prompt`**  
AWS CLI バージョン 2 の自動プロンプトを有効にします。使用できる設定は 2 つあります。  
+ **`on`** は、ユーザーが `aws` コマンドを実行しようとするたびに、完全な自動プロンプトモードを使用します。これには、完全なコマンドまたは不完全なコマンドを問わず、それらの後で **Enter** キーを押すことが含まれます。

  ```
  cli_auto_prompt = on
  ```
+ **`on-partial`** は、部分的な自動プロンプトモードを使用します。コマンドが不完全、またはクライアント側の検証エラーが原因でコマンドを実行できない場合は、自動プロンプトが使用されます。このモードは、既存のスクリプトまたはランブックがある場合、あるいはすべてのコマンドに対してプロンプトを表示するのではなく、不慣れなコマンドにのみ自動プロンプトを表示したい場合に特に便利です。

  ```
  cli_auto_prompt = on-partial
  ```
この設定は、`aws\$1cli\$1auto\$1prompt` 環境変数を使用するか、`--cli-auto-prompt` および `--no-cli-auto-prompt` コマンドラインパラメータを使用して上書きできます。  
AWS CLI バージョン 2 の自動プロンプト機能の詳細については、「[AWS CLI でのコマンドプロンプトの有効化と使用](cli-usage-parameters-prompting.md)」を参照してください。

**`cli_binary_format`**  
AWS CLI バージョン 2 がバイナリ入力パラメータをどのように解釈するかを指定します。これには、次のいずれかの値を指定できます。  
+ **base64** - これはデフォルト値です。バイナリラージオブジェクト (BLOB) として型指定された入力パラメータは、base64 でエンコードされた文字列を受け入れます。真のバイナリコンテンツを渡すには、コンテンツをファイルに置き、ファイルのパスと名前をパラメータの値として `fileb://` プレフィックスを付けて指定します。ファイルに含まれる base64 エンコードされたテキストを渡すには、ファイルのパスと名前をパラメータの値として `file://` プレフィックスを付けて指定します。
+ **raw-in-base64-out** — AWS CLI バージョン 1 のデフォルト。設定の値が `raw-in-base64-out` の場合、`file://` プレフィックスを使用して参照されるファイルはテキストとして読み取られます。AWS CLI は、これをバイナリにエンコードしようとします。
このエントリには、同等の環境変数はありません。`--cli-binary-format raw-in-base64-out` パラメータを使用すると、1 つのコマンドで値を指定できます。  

```
cli_binary_format = raw-in-base64-out
```
`fileb://` プレフィックス表記を使用してファイル内のバイナリ値を参照する場合、AWS CLI は *常に*ファイルに raw バイナリコンテンツが含まれていることを想定し、値の変換は試行しません。  
`file://` プレフィックス表記を使用してファイル内のバイナリ値を参照する場合、AWS CLI は現在の `cli_binary_format` 設定に従ってファイルを処理します。その設定の値が `base64` (明示的に設定されていない場合のデフォルト) の場合、AWS CLI はファイルに base64 エンコードされたテキストが含まれていることを期待します。設定の値が `raw-in-base64-out` の場合、AWS CLI はファイルに raw バイナリコンテンツが含まれていることを期待します。

**`cli_help_output`**  
バージョン `2.31.0` における `help` コマンドの表示は `cli_help_output` 設定で設定され、次の値があります。  
+  **(デフォルト)** `terminal` - ターミナルで man ページを開きます。
+ `browser` - デフォルトのブラウザで man ページをローカル HTML ファイルとして開きます。デフォルトのブラウザを開くと、ターミナルに通知が出力され、AWS CLI がブラウザを開くことができない場合はエラーメッセージが表示されます。
+ `url` - インストールした AWS CLI のバージョンに関するオンライン AWS CLI リファレンスガイドの URL を出力します。`AWS_PAGER` 環境変数など、クライアント側のページングの設定が優先されます。

```
cli_help_output = browser
```
`help` コマンドの詳細については、「[Accessing help and resources for the AWS CLI](cli-usage-help.md)」を参照してください。

**`cli_history`**  
デフォルトでは無効になっています。この設定により、AWS CLI のコマンド履歴が有効になります。この設定を有効にすると、AWS CLI は `aws` コマンドの履歴を記録します。  

```
cli_history = enabled
```
`aws history list` コマンドを使用すると履歴を一覧表示でき、そこから得られた `command_ids` を `aws history show` コマンドに使用すると詳細を確認できます。詳細については、「*AWS CLI リファレンスガイド*」の「[https://docs.aws.amazon.com/cli/latest/reference/history/index.html](https://docs.aws.amazon.com/cli/latest/reference/history/index.html)」を参照してください。

**`cli_pager`**  
出力に使用されるページャープログラムを指定します。AWS CLI バージョン 2 はデフォルトで、すべての出力をオペレーティングシステムのデフォルトページャープログラム経由で返します。  
AWS\$1PAGER 環境変数によって上書きできます。  

```
cli_pager=less
```

**`cli_timestamp_format`**  
タイムスタンプの値の出力形式を指定します。次の値のいずれかを指定できます。  
+ **iso8601** – AWS CLI バージョン 2 のデフォルト値。指定すると、AWS CLI は、[ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) に従って出力のすべてのタイムスタンプを再フォーマットします。ISO 8601 形式のタイムスタンプは、次の例のようになります。次の例では、日付と時刻を `T` で区切り、時刻の後に `Z` を含めることで時刻をフォーマットする方法を示しています。

  ```
  YYYY-MM-DDThh:mm:ssZ
  ```

  次の例は、前の形式を使用したタイムスタンプを示しています。

  ```
  2024-05-08T15:16:43Z
  ```
+ **wire** – AWS CLI バージョン 1 のデフォルト値。指定すると、AWS CLI は、HTTP クエリレスポンスで受信したとおりにすべてのタイムスタンプ値を表示します。
この設定には同等の環境変数あるいはコマンドラインオプションがありません。この設定では、タイムスタンプ入力は変更されず、出力形式のみが変更されます。  

```
cli_timestamp_format = iso8601
```

**`credential\$1process`**  
このコマンドに使用する認証情報を生成あるいは取得するために AWS CLI が実行する外部のコマンドを指定します。このコマンドは、特定の形式で認証情報を返す必要があります。この設定を使用する方法の詳細については、「[Sourcing credentials with an external process in the AWS CLI](cli-configure-sourcing-external.md)」を参照してください。  
このエントリには同等の環境変数あるいはコマンドラインオプションがありません。  

```
credential_process = /opt/bin/awscreds-retriever --username susan
```

**`credential\$1source`**  
Amazon EC2 インスタンスまたは EC2 コンテナ内で使用され、`role_arn` パラメータで指定したロールを引き受けるために使用する認証情報を AWS CLI が検索できる場所を指定します。`source_profile` と `credential_source` の両方を同じプロファイルで指定することはできません。  
このパラメータには、次の 3 つの値のいずれかを指定できます。  
+ **Environment** – AWS CLI が環境変数からソース認証情報を取得することを指定します。
+ **EC2InstanceMetadata** – AWS CLI が [EC2 インスタンスプロファイル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)にアタッチされた IAM ロールを使用してソースの認証情報を取得することを指定します。
+ **EcsContainer** – AWS CLI が ECS コンテナにアタッチされた IAM ロールをソースの認証情報として使用することを指定します。

```
credential_source = Ec2InstanceMetadata
```

**`duration_seconds`**  
ロールセッションの最大期間を秒単位で指定します。この値は 900 秒 (15 分) からロールの最大セッション期間設定 (上限は 43200) までの範囲を指定できます。これはオプションのパラメータであり、デフォルトでは 3600 秒に設定されています。

**`endpoint_url`**  
すべてのサービスリクエストに使用されるエンドポイントを指定します。この設定が `config` ファイルの [`services`](#cli-configure-files-format-services) セクションで使用されている場合、エンドポイントは指定されたサービスにのみ使用されます。詳細については、「[すべての AWS のサービス にグローバルエンドポイントを設定します。](cli-configure-endpoints.md#endpoints-global)」を参照してください。  
次の例では、Amazon S3 のグローバルエンドポイント `http://localhost:1234` とサービス固有のエンドポイント `http://localhost:4567` を使用しています。  

```
[profile dev]
endpoint_url = http://localhost:1234
services = s3-specific

[services s3-specific]
s3 = 
  endpoint_url = http://localhost:4567
```
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`ignore_configure_endpoint_urls`**  
有効にすると、AWS CLI は `config` ファイルに指定されているカスタムエンドポイント設定をすべて無視します。有効な値は、`true` および `false` です。  

```
ignore_configure_endpoint_urls = true
```
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`external\$1id`**  
お客様のアカウントでサードパーティーがロールを引き受けるために使用される独自の識別子を指定します。これは `ExternalId` オペレーションの `AssumeRole` パラメータにマップします。このパラメータは、ロールの信頼ポリシーで `ExternalId` の値が指定されている場合にのみ必要です。詳細については、「*IAM ユーザーガイド*」の「[AWS リソースへのアクセス権を第三者に付与するときに外部 ID を使用する方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)」を参照してください。

**`max\$1attempts`**  
AWS CLI 再試行ハンドラが使用する最大再試行回数を指定します。ここで最初の呼び出しは、指定した `max_attempts` 値に対してカウントされます。  
環境変数 `AWS_MAX_ATTEMPTS` を使用して、この値を上書きできます。  

```
max_attempts = 3
```

**`mfa\$1serial`**  
ロールを引き受けるときに使用する MFA デバイスの ID 番号。これは、引き受けるロールの信頼ポリシーに MFA 認証を必要とする条件が含まれている場合にのみ必須です。値には、ハードウェアデバイスのシリアルナンバー (`GAHT12345678`など) または仮想 MFA デバイス (`arn:aws:iam::123456789012:mfa/user`など) の Amazon リソースネーム (ARN) のいずれか指定できます。

**`output`**  
このプロファイルを使用してリクエストするコマンドのデフォルトの出力形式を指定します。次の値のいずれかを指定できます。  
+ **[`json`](cli-usage-output-format.md#json-output)** - 出力は [JSON](https://json.org/) 文字列としてフォーマットされます。
+  **[`yaml`](cli-usage-output-format.md#yaml-output)** - 出力は [YAML](https://yaml.org/) 文字列としてフォーマットされます。
+ **[`yaml-stream`](cli-usage-output-format.md#yaml-stream-output)** - 出力はストリームされ、[ YAML ](https://yaml.org/)文字列としてフォーマットされます。ストリーミングにより、大きなデータタイプの処理を高速化できます。
+ **[`text`](cli-usage-output-format.md#text-output)** - 出力は、複数行のタブ区切りの文字列値としてフォーマットされます。これは、`grep`、`sed`、または `awk` などのテキストプロセッサに出力を渡すのに役立ちます。
+ **[`table`](cli-usage-output-format.md#table-output)** - 出力は、テーブルとしてフォーマットされ、文字の「\$1\$1-」を使用してセルの境界を形成します。通常、情報は他の形式よりも読みやすい「わかりやすい」形式で表示されますが、プログラムとしては役立ちません。
+ **[`off`](cli-usage-output-format.md#off-output)** - 出力は、stdout へのすべてのコマンド出力を制限します。これは、出力を処理せずにコマンドの終了コードを確認するだけで済む自動化スクリプトや CI/CD パイプラインに役立ちます。
`AWS_DEFAULT_OUTPUT` 環境変数あるいは `--output` コマンドラインオプションで上書きできます。  

```
output = table
```

**`parameter_validation`**  
AWS CLI サービスエンドポイントに送信する前に、AWS クライアントがパラメータの検証を試行するかどうかを指定します。  
+ **true** - これはデフォルト値です。これを指定すると、AWS CLI がコマンドラインパラメータのローカル検証を実行します。
+ **false** – これを指定すると、AWS CLI は、コマンドラインパラメータを AWS サービスエンドポイントに送信する前に、それらの検証を行いません。
このエントリには同等の環境変数あるいはコマンドラインオプションがありません。  

```
parameter_validation = false
```

**`region`**  
このプロファイルを使用してリクエストされたコマンドへのリクエストを送信するための AWS リージョン リージョンを指定します。  
+ 「*Amazon Web Services 全般のリファレンス*」の「[AWS のリージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html)」にリストされるように、選択されたサービスに使用できるリージョンコードのいずれかを指定できます。
+ `aws_global` では、AWS Security Token Service (AWS STS) や Amazon Simple Storage Service (Amazon S3) などのリージョンのエンドポイントに加えて、グローバルエンドポイントをサポートするサービスのグローバルエンドポイントを指定できます。
`AWS_REGION` 環境変数、`AWS_DEFAULT_REGION` 環境変数、または `--region` コマンドラインオプションを使用して、この値を上書きできます。  

```
region = us-west-2
```

**`request_checksum_calculation`**  
リクエストペイロードのチェックサムをどの場合に計算するかを指定します。次のオプションがあります。  
+ `when_supported` - **(デフォルト)** リクエストペイロードのチェックサムは、オペレーションがサービスモデルでチェックサムアルゴリズムを指定している場合、またはリクエストチェックサムを必須としている場合に計算されます。
+ `when_required` - リクエストペイロードのチェックサムは、オペレーションがリクエストチェックサムを必須としている場合、または AWS のサービス によってモデル化された `requestAlgorithmMember` をユーザーが指定している場合に計算されます。

```
request_checksum_calculation = when_supported
```
環境変数 [`AWS_REQUEST_CHECKSUM_CALCULATION`](cli-configure-envvars.md#envvars-list-AWS_REQUEST_CHECKSUM_CALCULATION) により、この設定が上書きされます。

**`response_checksum_validation`**  
レスポンスペイロードのチェックサム検証をどの場合に実行するかを指定します。次のオプションがあります。  
+ `when_supported` - **(デフォルト)** レスポンスペイロードのチェックサム検証は、オペレーションが AWS CLI でサポートされているサービスモデルでレスポンスアルゴリズムを指定している場合に実行されます。
+ `when_required` - レスポンスペイロードのチェックサム検証は、オペレーションが AWS CLI でサポートされているサービスモデルでレスポンスアルゴリズムを指定し、お客様がオペレーション入力でモデル化された `requestValidationModeMember` を `ENABLED` に設定している場合に実行されます。

```
response_checksum_validation = when_supported
```
環境変数 [`AWS_RESPONSE_CHECKSUM_VALIDATION`](cli-configure-envvars.md#envvars-list-AWS_RESPONSE_CHECKSUM_VALIDATION) により、この設定が上書きされます。

**`retry\$1mode`**  
AWS CLI が使用する再試行モードを指定します。再試行モードには、`standard` (デフォルト)、`legacy` (デフォルト)、`adaptive` の 3 つがあります。再試行の詳細については、「[AWS CLI retries in the AWS CLI](cli-configure-retries.md)」を参照してください。  
環境変数 `AWS_RETRY_MODE` を使用して、この値を上書きできます。  

```
retry_mode = standard
```

**`role\$1arn`**  
AWS CLI コマンドの実行に使用する IAM ロールの Amazon リソースネーム (ARN) を指定します。また、以下のいずれかのパラメータを指定して、このロールを引き受けるアクセス権限を持つ認証情報を特定する必要があります。  
+ source\$1profile
+ credential\$1source

```
role_arn = arn:aws:iam::123456789012:role/role-name
```
環境変数 [`AWS_ROLE_ARN`](cli-configure-envvars.md#envvars-list-AWS_ROLE_ARN) により、この設定が上書きされます。  
ウェブ ID の使用の詳細については、「[ウェブ ID を使用したロールの継承](cli-configure-role.md#cli-configure-role-oidc)」を参照してください。

**`role\$1session\$1name`**  
ロールセッションにアタッチする名前を指定します。この値は、`RoleSessionName` が AWS CLI オペレーションを呼び出す場合に `AssumeRole` パラメータに提供され、引き受けたロールユーザー ARN ` arn:aws:sts::123456789012:assumed-role/role_name/role_session_name` の一部になります。このパラメータはオプションです。この値を指定しない場合、セッション名は自動的に生成されます。この名前は、このセッションに関連付けられたエントリの AWS CloudTrail ログに表示されます。  

```
role_session_name = maria_garcia_role
```
環境変数 [`AWS_ROLE_SESSION_NAME`](cli-configure-envvars.md#envvars-list-AWS_ROLE_SESSION_NAME) により、この設定が上書きされます。  
ウェブ ID の使用の詳細については、「[ウェブ ID を使用したロールの継承](cli-configure-role.md#cli-configure-role-oidc)」を参照してください。

**`services`**  
プロファイルに使用するサービス設定を指定します。  

```
[profile dev-s3-specific-and-global]
endpoint_url = http://localhost:1234
services = s3-specific

[services s3-specific]
s3 = 
  endpoint_url = http://localhost:4567
```
詳細については、`services` セクションの「[セクションタイプ: `services`](#cli-configure-files-format-services)」を参照してください。  
環境変数 [`AWS_ROLE_SESSION_NAME`](cli-configure-envvars.md#envvars-list-AWS_ROLE_SESSION_NAME) により、この設定が上書きされます。  
ウェブ ID の使用の詳細については、「[ウェブ ID を使用したロールの継承](cli-configure-role.md#cli-configure-role-oidc)」を参照してください。

**`sdk_ua_app_id`**  
単一の AWS アカウントを複数のカスタマーアプリケーションで使用して、AWS のサービスを呼び出すことができます。アプリケーション ID は、AWS のサービスを使用して一連の呼び出しを行ったソースアプリケーションを識別します。AWSSDK とサービスは、カスタマーコミュニケーションに返す以外の目的で、この値を使用したり解釈したりはしません。例えば、この値を運用 E メールに含めることにより、通知に関連付けられているアプリケーションを一意に識別できます。  
アプリケーション ID は、最大長 50 文字の文字列です。文字、数字、および次の特殊文字を使用できます: `! $ % & * + - . , ^ _ ` | ~`。デフォルトでは、値は割り当てられていません。  

```
sdk_ua_app_id = prod1
```
この設定は、[`AWS_SDK_UA_APP_ID`](cli-configure-envvars.md#envvars-list-AWS_SDK_UA_APP_ID) 環境変数を使用して上書きできます。この値をコマンドラインパラメータとして設定することはできません。

**`sigv4a_signing_region_set`**  
SigV4a で署名するときに使用するリージョンをカンマ区切りリストで指定します。この変数が設定されていない場合、AWS CLI は AWS のサービス で使用されるデフォルト値を使用します。AWS のサービス にデフォルト値がない場合、リクエスト署名は `*` の値を使用してすべてのリージョンで有効になります。  

```
sigv4a_signing_region_set = us-west-2, us-east-1
```
SigV4a の詳細については、*IAM ユーザーガイド*の「[API リクエストに対する AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)」を参照してください。  
この設定は、[`AWS_SIGV4A_SIGNING_REGION_SET`](cli-configure-envvars.md#envvars-list-AWS_SIGV4A_SIGNING_REGION_SET) 環境変数を使用して上書きできます。この値をコマンドラインパラメータとして設定することはできません。

**`source\$1profile`**  
AWS CLI パラメータで指定したロールを引き受けるために `role_arn` が使用できる、長期的な認証情報を持つ名前付きプロファイルを指定します。`source_profile` と `credential_source` の両方を同じプロファイルで指定することはできません。  

```
source_profile = production-profile
```

**`sso\$1account\$1id`**  
関連付けられた IAM Identity Center ユーザーに付与する許可を持つ IAM ロールが含まれた AWS アカウント ID を指定します。  
この設定には、環境変数またはコマンドラインオプションはありません。  

```
sso_account_id = 123456789012
```

**`sso\$1region` **  
AWS アクセスポータルホストを含む AWS リージョンを指定します。これはデフォルトの CLI `region` パラメータとは別で、異なるリージョンにすることができます。  
この設定には、環境変数またはコマンドラインオプションはありません。  

```
sso_region = us_west-2
```

**`sso\$1registration\$1scopes` **  
`sso-session` に許可するスコープのカンマ区切りのリストです。スコープは、IAM Identity Center ベアラートークンで承認されたエンドポイントへのアクセスを許可します。有効なスコープは、`sso:account:access` などの文字列です。この設定は、更新できない従来の設定には適用されません。  

```
sso_registration_scopes = sso:account:access
```

**`sso\$1role\$1name` **  
このプロファイルを使用する際のユーザーのアクセス許可を定義する IAM ロールのフレンドリ名を指定します。  
この設定には、環境変数またはコマンドラインオプションはありません。  

```
sso_role_name = ReadAccess
```

**`sso\$1start\$1url`**  
組織の AWS アクセスポータルを指す URL を指定します。AWS CLI は、この URL を使用して、IAM Identity Center サービスとのセッションを確立し、ユーザーを認証します。AWS アクセスポータル URL を検索するには、次のいずれかを使用します。  
+ 招待 E メールを開くと、AWS アクセスポータル URL が一覧で表示されます。
+ [https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/) で AWS IAM アイデンティティセンター コンソールを開きます。AWS アクセスポータル URL がお客様の設定に一覧で表示されます。
この設定には、環境変数またはコマンドラインオプションはありません。  

```
sso_start_url = https://my-sso-portal.awsapps.com/start
```

**`use_dualstack_endpoint`**  
デュアルスタックのエンドポイントを使用して AWS リクエストを送信できるようにします。IPv4 と IPv6 の両方のトラフィックをサポートするデュアルスタックエンドポイントの詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 デュアルスタックエンドポイントの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)」を参照してください。デュアルスタックのエンドポイントは、一部のリージョンでは一部のサービスで利用できます。サービスまたは AWS リージョン にデュアルスタックエンドポイントが存在しない場合、リクエストは失敗します。有効な設定は `true` と `false` です。これはデフォルトでは無効になっています。詳細については、「[すべての AWS のサービスでデュアルスタックのエンドポイントを使用するように設定](cli-configure-endpoints.md#endpoints-dual-stack)」を参照してください。  
 これは `use_accelerate_endpoint` 設定と相互に排他的となります。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`use_fips_endpoint`**  
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 エンドポイントを使用するように設定](cli-configure-endpoints.md#endpoints-fips)」を参照してください。  
この設定が有効になっているが、AWS リージョン内のサービス用 FIPS エンドポイントが存在しない場合、AWS のコマンドは失敗する可能性があります。この場合は、`--endpoint-url` オプションを使用してコマンドで使用するエンドポイントを手動で指定するか、[サービス固有のエンドポイント](cli-configure-endpoints.md#endpoints-service-specific)を使用します。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`web\$1identity\$1token\$1file`**  
OAuth 2.0 アクセストークンまたは ID プロバイダーによって提供される OpenID Connect ID トークンを含むファイルへのパスを指定します。AWS CLI はこのファイルの内容をロードし、`WebIdentityToken` 引数として `AssumeRoleWithWebIdentity` オペレーションに渡します。  
環境変数 `AWS\$1WEB\$1IDENTITY\$1TOKEN\$1FILE` により、この設定が上書きされます。  
ウェブ ID の使用の詳細については、「[ウェブ ID を使用したロールの継承](cli-configure-role.md#cli-configure-role-oidc)」を参照してください。

**`tcp_keepalive`**  
AWS CLI クライアントが TCP キープアライブパケットを使用するかどうかを指定します。  
このエントリには同等の環境変数あるいはコマンドラインオプションがありません。  

```
tcp_keepalive = false
```

### S3 カスタマーコマンド設定
<a name="cli-configure-files-s3"></a>

Amazon S3 は、AWS CLI がどのように Amazon S3 オペレーションを実行するかを設定する複数の設定をサポートします。一部は、`s3api` および `s3` 名前空間の両方のすべての S3 コマンドに適用されます。それ以外は、一般的なオペレーションを抽象化する S3 の「カスタム」コマンド専用となり、API オペレーションで 1 対 1 のマッピング以上に機能します。`aws s3` は `cp`、`sync`、`mv` を転送し、`rm` には S3 転送に使用できる追加の設定があります。

これらすべてのオプションは、`s3` ファイル内のネストされた `config` 設定を指定することで構成できます。各設定は、それぞれの行にインデントされます。

**注記**  
これらの設定はすべてオプションです。これらの設定を一切構成せずに、`aws s3` 転送コマンドを正しく使用できることが必要です。これらの設定は、パフォーマンスを調整したり、上述の `aws s3` コマンドを実行する特定の環境に対応したりできるように用意されています。

次の `s3` プロファイルの例に示すように、これらの設定はすべて、`config` ファイルの上位レベル `development` キーで設定します。

```
[profile development]
s3 =
  max_concurrent_requests = 20
  max_queue_size = 10000
  multipart_threshold = 64MB
  multipart_chunksize = 16MB
  max_bandwidth = 50MB/s
  use_accelerate_endpoint = true
  addressing_style = path
```

次の設定は、`s3` あるいは `s3api` 名前空間内の任意の S3 コマンドに適用されます。

**`addressing_style`**  
使用するアドレス形式を指定します。バケット名がホスト名にあるか、または URL の一部にあるかを制御します。有効な値は、`path`、`virtual`、`auto` です。デフォルト値は `auto` です。  
Amazon S3 エンドポイントを構成するには 2 つのスタイルがあります。1 つ目は `virtual` と呼ばれ、ホスト名の一部としてバケット名が含まれています。例: `https://bucketname.s3.amazonaws.com`。また、`path` スタイルでは、バケット名を URI 内のパスとして扱います (例: `https://s3.amazonaws.com/bucketname`)。CLI におけるデフォルト値では、できる範囲では `auto` スタイルを使用し、必要に応じて `virtual` に戻る `path` を使用します。例えば、バケット名に DNS との互換性がない場合い、このバケット名はホスト名の一部にならず、パス内にする必要があります。`auto` を使用すると、CLI はこの条件を検出し、ユーザーに代わって自動的に `path` に切り替えます。アドレス形式を `path` に設定する場合、AWS で設定した AWS CLI リージョンがバケットのリージョンと一致していることを確認する必要があります。

**`payload_signing_enabled`**  
SHA256 が sigv4 ペイロードを署名するかどうかを指定します。デフォルトでは、HTTPS 使用時のストリーミングアップロード (`UploadPart` および `PutObject`) にはこれが無効化されています。デフォルトでは、`false` があり (デフォルトで生成されます)、エンドポイントが HTTPS を使用する場合にのみ、これはストリーミングアップロード (`UploadPart` および `PutObject`) 用に `ContentMD5` に設定されます。  
true に設定すると、S3 は SHA256 チェックサム形式 (自動的に計算されてリクエスト署名に追加) で追加のコンテンツ検証の受信をリクエストします。false に設定すると、チェックサムは計算されません。これを無効にすると、チェックサム計算によって生じるパフォーマンスのオーバーヘッドの減少に役立ちます。

**`use_accelerate_endpoint`**  
`s3` および `s3api` のすべてのコマンドに対して Amazon S3 アクセラレートエンドポイントを使用します。デフォルト値は false です。これは `use_dualstack_endpoint` 設定と相互に排他的となります。  
true に設定すると、AWS CLI は、`S3 Accelerate` の `s3-accelerate.amazonaws.com` エンドポイントにすべての Amazon S3 リクエストを送信します。このエンドポイントを使用するには、`S3 Accelerate` を使用するようにバケットを有効化する必要があります。リクエストはすべて、仮想形式のバケットのアドレス指定 (`my-bucket.s3-accelerate.amazonaws.com`) を使用して送信されます。いずれの `ListBuckets`、`CreateBucket`、`DeleteBucket ` リクエストも、S3 高速化エンドポイントには送信されません。高速化エンドポイントでは、これらのオペレーションをサポートしていないためです。また、`--endpoint-url` または `https://s3-accelerate.amazonaws.com` コマンドのいずれかに `http://s3-accelerate.amazonaws.com` パラメータが `s3` あるいは `s3api` に設定されている場合には、この動作を実行できます。

**`use_dualstack_endpoint`**  
デュアルスタックのエンドポイントを使用して `s3` および `s3api` リクエストを送信できるようにします。IPv4 と IPv6 の両方のトラフィックをサポートするデュアルスタックエンドポイントの詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 デュアルスタックエンドポイントの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)」を参照してください。デュアルスタックのエンドポイントは、一部のリージョンでは一部のサービスで利用できます。サービスまたは AWS リージョン にデュアルスタックエンドポイントが存在しない場合、リクエストは失敗します。有効な設定は `true` と `false` です。これはデフォルトでは無効になっています。詳細については、「[すべての AWS のサービスでデュアルスタックのエンドポイントを使用するように設定](cli-configure-endpoints.md#endpoints-dual-stack)」を参照してください。  
 これは `use_accelerate_endpoint` 設定と相互に排他的となります。

以下の設定は、`s3` 名前空間コマンドセット内のコマンドのみに適用されます。

**`max_bandwidth`**  
Amazon S3 との間でデータをアップロードおよびダウンロードするために消費できる最大帯域幅を指定します。デフォルトは無制限です。  
これにより、S3 コマンドが Amazon S3 との間でデータを転送するために使用できる最大帯域幅が制限されます。この値は、アップロードとダウンロードのみに適用され、コピーや削除には適用されません。この値は 1 秒あたりのバイト数で示されます。この値は次のように指定できます。  
+ 整数。例えば、`1048576` は 1 秒あたりの 1 メガバイトの最大帯域幅使用を設定します。
+ 整数に続くレートサフィックス。`KB/s`、`MB/s`、あるいは `GB/s` を使用して、レートサフィックスを指定できます。例えば、`300KB/s` や `10MB/s` などです。
一般的には、まず、`max_concurrent_requests` を低くして、低い帯域幅の消費を試してみることが推奨されます。必要なレートの帯域幅消費を十分に制限できない場合には、`max_bandwidth` 設定を使用して、さらに帯域幅消費を制限できます。これは、`max_concurrent_requests` が現在実行中のスレッド数を制御できるためです。代わりに、まず `max_bandwidth` を低くしながら `max_concurrent_requests` 設定を高くすると、スレッドが不必要に待機する結果が生じることがあります。これにより、余分なリソースの消費と接続タイムアウトにつながる可能性があります。

**`max_concurrent_requests`**  
同時リクエストの最大数を指定します。デフォルト値は 10 です。  
`aws s3` 転送コマンドはマルチスレッドです。いつでも、複数の Amazon S3 リクエストを実行できます。例えば、コマンド `aws s3 cp localdir s3://bucket/ --recursive` を使用して S3 バケットにファイルをアップロードする場合、AWS CLI は `localdir/file1`、`localdir/file2`、`localdir/file3` ファイルを並行してアップロードできます。`max_concurrent_requests` の設定は、同時に実行できる転送オペレーションの最大数を指定します。  
この値を変更する必要には、いくつかの理由が考えられます。  
+ この値を下げる - 環境によっては、デフォルトの 10 個の同時要求がシステムに過負荷になる場合があります。これによって接続タイムアウトやシステムの応答性の低下が見られる場合があります。この値を小さくすると、S3 転送コマンドのリソース消費が減少します。その代わり、S3 転送の完了により長くかかる可能性があります。帯域幅を制限するツールを使用する場合、この値を低めに抑える必要が生じることがあります。
+ この値を増やす – シナリオによっては、必要なだけのネットワーク帯域幅を使用して、Amazon S3 転送をできるだけ早く完了させることができます。このシナリオでは、利用できるすべてのネットワーク帯域幅を使用するためにデフォルトの同時リクエスト数が十分でないことがあります。この値を大きくすると、Amazon S3 転送が完了する時間を短縮できます。

**`max_queue_size`**  
タスクキューのタスクの最大数を指定します。デフォルト値は 1000 です。  
AWS CLI は Amazon S3 タスクをキューに入れるモデルを内部で使用し、これらのタスクはその後、`max_concurrent_requests` によって数が制限されているコンシューマーによって実行されます。タスクは通常の場合、単一の Amazon S3 オペレーションをマッピングします。例えば、タスクは `PutObjectTask`、`GetObjectTask`、または `UploadPartTask` にできます。タスクがキューに追加される率は、コンシューマーがタスクを終了する率よりも早くなることがあります。無限の拡大を回避するには、タスクキューのサイズを指定するサイズに抑えます。この設定は、タスクキューの最大数値を変更します。  
一般的には、この設定を変更する必要はありません。この設定は、AWS CLI が実行される必要性を認識しているタスクの数にも対応します。つまり、AWS CLI はデフォルトで、その先の 1,000 個のタスクしか認識できないことを意味します。この値を大きくすると、AWS CLI は必要なタスクの合計数をより迅速に把握できることになります (クエリ速度がタスクの完了速度よりも速いと仮定した場合)。その代わり、より大きな max\$1queue\$1size はより多くのメモリを必要とします。

**`multipart_chunksize`**  
個別ファイルのマルチパート転送用に AWS CLI が使用するチャンクのサイズを指定します。デフォルト値は 8 MB、最小は 5 MB です。  
ファイル転送が `multipart_threshold` を超えると、AWS CLI はファイルをこのサイズのチャンクに分割します。`multipart_threshold` と同じ構文をバイト数あるいは整数として使用するか、またはサイズとサフィックスを使用して、この値を指定することができます。

**`multipart_threshold`**  
個別ファイルのマルチパート転送用に AWS CLI が使用するしきい値のサイズを指定します。デフォルト値は 8 MB です。  
ファイルのアップロード、ダウンロードやコピーを行うとき、Amazon S3 コマンドは、ファイルがこのサイズを超える場合に、マルチパートオペレーションに切り替わります。この値は、次の 2 つのいずれかに指定します。  
+ ファイルサイズ (バイト単位)。例えば、`1048576`。
+ サイズのサフィックスを使用したファイルサイズ。`KB`、`MB`、`GB`、あるいは `TB` を使用できます。例: `10MB`、`1GB`。
**注記**  
S3 は、マルチパートオペレーションに使用できる有効値に制約を課すことができます。詳細については、[ Amazon Simple Storage Service デベロッパーガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)の*S3 マルチパートアップロードのドキュメント*を参照してください。

# Configuring environment variables for the AWS CLI
<a name="cli-configure-envvars"></a>

環境変数を使用すると、別の方法で設定オプションと認証情報を指定できます。このため、スクリプト処理に便利です。

**オプションの優先順位**
+ このトピックで示されている環境変数のいずれかを使用してオプションを指定した場合、設定ファイルのプロファイルからロードされた値は上書きされます。
+ AWS CLI コマンドラインでパラメータを使用してオプションを指定した場合、対応する環境変数、または設定ファイルのプロファイルからの値が上書きされます。

優先順位および AWS CLI が使用する認証情報を決定する方法の詳細については、「[Configuring settings for the AWS CLI](cli-chap-configure.md)」を参照してください。

**Topics**
+ [環境変数の設定方法](#envvars-set)
+ [AWS CLI でサポートされている環境変数](#envvars-list)

## 環境変数の設定方法
<a name="envvars-set"></a>

次の例では、デフォルトのユーザーの環境変数を設定する方法を示します。

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

```
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2
```

環境変数を設定すると、シェルセッションの終了時まで、または変数に別の値を設定するまで、使用する値が変更されます。シェルのスタートアップスクリプトで変数を設定することで、以降のセッションでその変数を永続的にすることができます。

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

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

```
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> setx AWS_DEFAULT_REGION us-west-2
```

[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx) を使用して環境変数を設定すると、現在のコマンドプロンプトセッションおよびコマンド実行後に作成するすべてのコマンドプロンプトセッションで使用する値が変更されます。これは、コマンド実行時にすでに実行されている他のコマンドシェルには影響を及ぼし***ません***。設定をロードするには、ターミナルの再起動が必要になる場合があります。

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

`[set](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` を使用して環境変数を設定すると、現在のコマンドプロンプトセッションの終了時まで、または変数を別の値に設定するまで、使用する値が変更されます。

```
C:\> set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
C:\> set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> set AWS_DEFAULT_REGION=us-west-2
```

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

```
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"
```

前の例に示すように PowerShell プロンプトで環境変数を設定した場合は、現在のセッションの期間だけ値が保存されます。PowerShell およびコマンドプロンプトセッション間で環境変数を永続的に設定するには、[**コントロールパネル**] の [**システム**] アプリケーションを使用して変数を保存します。または、変数を PowerShell プロファイルに追加すると、その変数を今後のすべての PowerShell セッションに設定できます。環境変数の保存やそれをセッション間で永続的に維持する詳細については、[PowerShell ドキュメント](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables)を参照してください。

------

## AWS CLI でサポートされている環境変数
<a name="envvars-list"></a>

AWS CLI は次の環境変数をサポートしています。

**`AWS_ACCESS_KEY_ID`**  
IAM アカウントに関連付けられる AWS アクセスキーを指定します。  
定義されている場合、この環境変数はプロファイル設定 `aws_access_key_id` の値よりも優先されます。アクセスキー ID をコマンドラインオプションを使用して指定することはできません。

**`AWS_ACCOUNT_ID`**  
サポートされている AWS のサービスへの呼び出しに使用する AWS アカウントベースのエンドポイント ID を指定します。アカウントベースのエンドポイントの詳細については、「[アカウントベースのエンドポイント](cli-configure-endpoints.md#endpoints-accountid)」を参照してください。  
この設定により `aws\$1account\$1id` 設定は上書きされます。この設定を使用するには、`AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 環境変数または `account\$1id\$1endpoint\$1mode` 設定を `preferred` または `required` に設定する必要があります。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`AWS_ACCOUNT_ID_ENDPOINT_MODE`**  
サポートされている AWS のサービスへの呼び出しに AWS アカウントベースのエンドポイント ID を使用するかどうかを指定します。アカウントベースのエンドポイントの詳細については、「[アカウントベースのエンドポイント](cli-configure-endpoints.md#endpoints-accountid)」を参照してください。  
この設定は、次のように設定できます。  
+ **(デフォルト)** **`preferred`** – アカウント ID が使用可能な場合、エンドポイントに含める必要があります。
+ **`disabled`** – 解決済みのエンドポイントにアカウント ID は含まれません。
+ **`required`** – エンドポイントにアカウント ID が含まれる必要があります。アカウント ID が使用できない場合、SDK はエラーをスローします。
この設定により `account\$1id\$1endpoint\$1mode` 設定は上書きされます。アカウントベースのエンドポイントを使用するには、`AWS\$1ACCOUNT\$1ID` 環境変数または `aws\$1account\$1id` 設定で ID を設定する必要があります。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`AWS_CA_BUNDLE`**  
HTTPS 証明書の検証に使用する証明書バンドルへのパスを指定します。  
定義されている場合、この環境変数はプロファイル設定 `ca\$1bundle` の値よりも優先されます。この環境変数は、`--ca-bundle` コマンドラインパラメータを使用して上書きできます。

**`AWS_CLI_AUTO_PROMPT`**  
AWS CLI バージョン 2 の自動プロンプトを有効にします。使用できる設定は 2 つあります。  
+ **`on`** は、ユーザーが `aws` コマンドを実行しようとするたびに、完全な自動プロンプトモードを使用します。これには、完全なコマンドまたは不完全なコマンドを問わず、それらの後で **Enter** キーを押すことが含まれます。
+ **`on-partial`** は、部分的な自動プロンプトモードを使用します。コマンドが不完全、またはクライアント側の検証エラーが原因でコマンドを実行できない場合は、自動プロンプトが使用されます。このモードは、既存のスクリプトまたはランブックがある場合、あるいはすべてのコマンドに対してプロンプトを表示するのではなく、不慣れなコマンドにのみ自動プロンプトを表示したい場合に便利です。
定義されている場合は、この環境変数が `cli\$1auto\$1prompt` プロファイル設定の値を上書きします。この環境変数は、`--cli-auto-prompt` および `--no-cli-auto-prompt` コマンドラインパラメータを使用して上書きできます。  
AWS CLI バージョン 2 の自動プロンプト機能の詳細については、「[AWS CLI でのコマンドプロンプトの有効化と使用](cli-usage-parameters-prompting.md)」を参照してください。

**`AWS_CLI_FILE_ENCODING`**  
テキストファイルに使用するエンコードを指定します。デフォルトでは、エンコードはロケールと一致します。ロケールとは異なるエンコードを設定するには、`aws_cli_file_encoding` 環境変数を使用します。例えば、Windows でデフォルトのエンコード `CP1252` を使用する場合、`aws_cli_file_encoding=UTF-8` を設定すると、テキストファイルを開くときに `UTF-8` が使用されるように CLI が設定されます。

**`AWS_CLI_HISTORY_FILE`**  
`cli_history` 機能が有効になっている場合、コマンド履歴を保存するためのデフォルトの場所を上書きします。デフォルトのパスは `~/.aws/cli/history/history.db` です。この変数を使用して、代替ストレージの場所を指定できます。

**`AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS`**  
`s3 mv` コマンドを使用する際、ソースバケットと宛先バケットが同じ場合、ソースファイルまたはオブジェクトをそれ自体に移動する可能性があるため、ソースファイルまたはオブジェクトが誤って削除される恐れがあります。`AWS_CLI_S3_MV_VALIDATE_SAME_S3_PATHS` 環境変数と `--validate-same-s3-paths` オプションにより、Amazon S3 送信元または送信先 URIでアクセスポイント ARN またはアクセスポイントエイリアスを検証するかどうかを指定します。  
`s3 mv` のパス検証には、追加の API コールが必要です。

**`AWS_CONFIG_FILE`**  
AWS CLI が設定プロファイルを保存するために使用するファイルの場所を指定します。デフォルトのパスは `~/.aws/config` です。  
この値は、名前付きプロファイル設定に指定したり、コマンドラインパラメータを使用して指定したりすることはできません。

**`AWS_DATA_PATH`**  
AWS CLI データをロードする場合、`~/.aws/models` のパスの検索が組み込まれた以外をチェックする追加のディレクトリのリスト。環境変数を設定することで、組み込まれた検索パスに戻る前に最初にチェックする追加のディレクトリを表示します。複数のエントリは `os.pathsep` 文字で区切る必要があり、Linux または macOS では `:`、Windows では `;` を使用します。

**`AWS_DEFAULT_OUTPUT`**  
使用する[出力形式](cli-usage-output.md)を指定します。  
定義されている場合、この環境変数はプロファイル設定 `output` の値よりも優先されます。この環境変数は、`--output` コマンドラインパラメータを使用して上書きできます。

**`AWS_DEFAULT_REGION`**  
`Default region name` では、デフォルトでリクエストを送信するサーバーの AWS リージョンを特定します。通常、お客様の最寄りのリージョンですが、どのリージョンでもかまいません。例えば、「`us-west-2`」と入力すると、米国西部 (オレゴン) を使用できます。これは、個別のコマンドで指定されない限り、今後のすべてのリクエストが送信されるリージョンです。  
AWS を使用する際は、明示的に、またはデフォルトリージョンを設定して、AWS CLI リージョンを指定する必要があります。使用可能なリージョンのリストについては、「[リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html)」を参照してください。AWS CLI で使用されるリージョン識別子は、AWS マネジメントコンソール の URL およびサービスエンドポイントに表示されるのと同じ名前です。
定義されている場合、この環境変数はプロファイル設定 `region` の値よりも優先されます。`--region` のコマンドラインパラメータと AWS SDK 互換の `AWS_REGION` 環境変数を使用することにより、環境変数を上書きできます。

**`AWS_EC2_METADATA_DISABLED`**  
Amazon EC2 インスタンスメタデータサービス (IMDS) の使用を無効にします。  
true に設定した場合、ユーザーの認証情報または設定 (リージョンなど) は IMDS から要求されません。

**`AWS_ENDPOINT_URL`**  
すべてのサービスリクエストに使用されるエンドポイントを指定します。詳細については、「[すべての AWS のサービス にグローバルエンドポイントを設定します。](cli-configure-endpoints.md#endpoints-global)」を参照してください。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`AWS_ENDPOINT_URL_<SERVICE>`**  
特定のサービスに使用されるカスタムエンドポイントを指定します。`<SERVICE>` は AWS のサービス 識別子に置き換えられます。例えば、Amazon DynamoDB には [https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/dynamodb/2012-08-10/service-2.json#L10](https://github.com/boto/botocore/blob/bcaf618c4b93c067efa0b85d3e92f3985ff60906/botocore/data/dynamodb/2012-08-10/service-2.json#L10) の `serviceId` があります。このサービスのエンドポイント URL 環境変数は `AWS_ENDPOINT_URL_DYNAMODB` です。  
サービス固有の環境変数のリストについては、「[サービス固有の識別子のリスト](cli-configure-endpoints.md#endpoints-service-specific-table)」を参照してください。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`AWS_IGNORE_CONFIGURED_ENDPOINT_URLS`**  
有効にすると、AWS CLI はカスタムエンドポイント設定をすべて無視します。有効な値は、`true` および `false` です。詳細については、「[すべての AWS のサービス にグローバルエンドポイントを設定します。](cli-configure-endpoints.md#endpoints-global)」を参照してください。  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。エンドポイントの優先順位については、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**[`AWS_MAX_ATTEMPTS`](cli-configure-files.md#cli-config-max_attempts)**  
再試行ハンドラが使用する AWS CLI の最大再試行回数を指定します。最初の呼び出しは、指定した値に対してカウントされます。再試行の詳細については、「[AWS CLI retries in the AWS CLI](cli-configure-retries.md)」を参照してください。  
定義されている場合、この環境変数はプロファイル設定 `max_attempts` の値よりも優先されます。

**`AWS_METADATA_SERVICE_NUM_ATTEMPTS`**  
IAM ロールで設定された Amazon EC2 instance インスタンスで認証情報の取得を試行すると、AWS CLI では停止する前にインスタンスメタデータサービスからの認証情報の取得を試行します。Amazon EC2 インスタンスで実行されるコマンドがわかっている場合は、停止するまでに AWS CLI が複数回再試行するように、この値を増やすことができます。

**`AWS_METADATA_SERVICE_TIMEOUT`**  
インスタンスメタデータサービスに接続する前にタイムアウトするまでの秒数。IAM ロールで設定された Amazon EC2 インスタンスで認証情報の取得を試行すると、インスタンスメタデータサービスへの接続はデフォルトで 1 秒後にタイムアウトします。設定された IAM ロールを使用して Amazon EC2 インスタンスで実行されていることがわかっている場合は、必要に応じてこの値を増やすことができます。

**[`AWS_PAGER`](cli-configure-files.md#cli-config-cli_pager)**  
出力に使用されるページャープログラムを指定します。AWS CLI バージョン 2 はデフォルトで、オペレーティングシステムのデフォルトページャープログラム経由ですべての出力を返します。  
外部ページングプログラムの使用をすべて無効にするには、変数を空の文字列に設定します。  
定義されている場合、この環境変数はプロファイル設定 `cli_pager` の値よりも優先されます。

**[`AWS_PROFILE`](cli-configure-files.md#cli-configure-files-using-profiles)**  
使用する認証情報およびオプションと共に AWS CLI プロファイルの名前を指定します。これは、`credentials` ファイルまたは `config` ファイルに保存されているプロファイルの名前、または、デフォルトプロファイルを使用する場合は値 `default` となります。  
この環境変数を指定した場合、設定ファイルの `[default]` という名前のプロファイルを使用する動作は上書きされます。この環境変数は、`--profile` コマンドラインパラメータを使用して上書きできます。

**`AWS_REGION`**  
リクエストを送信する AWS リージョンを指定する AWS 互換の環境変数。  
定義されている場合、この環境変数は環境変数 `AWS_DEFAULT_REGION` とプロファイル設定 `region` の値を上書きします。この環境変数は、`--region` コマンドラインパラメータを使用して上書きできます。

**`AWS_REQUEST_CHECKSUM_CALCULATION`**  
リクエストペイロードのチェックサムをどの場合に計算するかを指定します。次のオプションがあります。  
+ `when_supported` - **(デフォルト)** リクエストペイロードのチェックサムは、オペレーションがサービスモデルでチェックサムアルゴリズムを指定している場合、またはリクエストチェックサムを必須としている場合に計算されます。
+ `when_required` - リクエストペイロードのチェックサムは、オペレーションがリクエストチェックサムを必須としている場合、または AWS のサービス によってモデル化された `requestAlgorithmMember` をユーザーが指定している場合に計算されます。
定義されている場合、この環境変数はプロファイル設定 [`request_checksum_calculation`](cli-configure-files.md#cli-config-request_checksum_calculation) の値よりも優先されます。

**`AWS_RESPONSE_CHECKSUM_VALIDATION`**  
レスポンスペイロードのチェックサム検証をどの場合に実行するかを指定します。次のオプションがあります。  
+ `when_supported` - **(デフォルト)** レスポンスペイロードのチェックサム検証は、オペレーションが AWS CLI でサポートされているサービスモデルでレスポンスアルゴリズムを指定している場合に実行されます。
+ `when_required` - レスポンスペイロードのチェックサム検証は、オペレーションが AWS CLI でサポートされているサービスモデルでレスポンスアルゴリズムを指定し、お客様がオペレーション入力でモデル化された `requestValidationModeMember` を `ENABLED` に設定している場合に実行されます。
定義されている場合、この環境変数はプロファイル設定 [`response_checksum_validation`](cli-configure-files.md#cli-config-response_checksum_validation) の値よりも優先されます。

**[`AWS_RETRY_MODE`](cli-configure-files.md#cli-config-retry_mode)**  
AWS CLI が使用する再試行モードを指定します。再試行モードには、レガシー (デフォルト)、標準、アダプティブの 3 つがあります。再試行の詳細については、「[AWS CLI retries in the AWS CLI](cli-configure-retries.md)」を参照してください。  
定義されている場合、この環境変数はプロファイル設定 `retry_mode` の値よりも優先されます。

**`AWS_ROLE_ARN`**  
AWS CLI コマンドの実行に使用するウェブ ID プロバイダの IAM ロールの Amazon リソースネーム (ARN) を指定します。  
`AWS_WEB_IDENTITY_TOKEN_FILE` および `AWS_ROLE_SESSION_NAME` 環境変数で使用されます。  
定義されている場合、この環境変数はプロファイル設定 [`role_arn`](cli-configure-files.md#cli-config-role_arn) の値よりも優先されます。ロールセッション名をコマンドラインパラメータとして指定することはできません。  
この環境変数は、ウェブ ID プロバイダを使用したロール継承にのみ適用され、一般的なロール継承プロバイダ設定には適用されません。
ウェブ ID の使用の詳細については、「[ウェブ ID を使用したロールの継承](cli-configure-role.md#cli-configure-role-oidc)」を参照してください。

**`AWS_ROLE_SESSION_NAME`**  
ロールセッションにアタッチする名前を指定します。この値は、`RoleSessionName` が AWS CLI オペレーションを呼び出す場合に `AssumeRole` パラメータに提供され、引き受けたロールユーザー ARN ` arn:aws:sts::123456789012:assumed-role/role_name/role_session_name` の一部になります。このパラメータはオプションです。この値を指定しない場合、セッション名は自動的に生成されます。この名前は、このセッションに関連付けられたエントリの AWS CloudTrail ログに表示されます。  
定義されている場合、この環境変数はプロファイル設定 [`role_session_name`](cli-configure-files.md#cli-config-role_session_name) の値よりも優先されます。  
`AWS_ROLE_ARN` および `AWS_WEB_IDENTITY_TOKEN_FILE` 環境変数で使用されます。  
ウェブ ID の使用の詳細については、「[ウェブ ID を使用したロールの継承](cli-configure-role.md#cli-configure-role-oidc)」を参照してください。  
この環境変数は、ウェブ ID プロバイダを使用したロール継承にのみ適用され、一般的なロール継承プロバイダ設定には適用されません。

**`AWS_SDK_UA_APP_ID`**  
単一の AWS アカウントを複数のカスタマーアプリケーションで使用して、AWS のサービスを呼び出すことができます。アプリケーション ID は、AWS のサービスを使用して一連の呼び出しを行ったソースアプリケーションを識別します。AWSSDK とサービスは、カスタマーコミュニケーションに返す以外の目的で、この値を使用したり解釈したりはしません。例えば、この値を運用 E メールに含めることにより、通知に関連付けられているアプリケーションを一意に識別できます。  
デフォルトでは、値がありません。  
アプリケーション ID は、最大長 50 文字の文字列です。文字、数字および次の特殊文字を使用することができます。  

```
! $ % & * + - . , ^ _ ` | ~
```
定義されている場合、この環境変数はプロファイル設定 [`sdk_ua_app_id`](cli-configure-files.md#cli-config-sdk_ua_app_id) の値よりも優先されます。アプリケーション ID をコマンドラインオプションとして指定することはできません。

**`AWS_SECRET_ACCESS_KEY`**  
アクセスキーに関連付けられるシークレットキーを指定します。これは、基本的にアクセスキーの「パスワード」です。  
定義されている場合、この環境変数はプロファイル設定 `aws_secret_access_key` の値よりも優先されます。シークレットアクセスキー ID をコマンドラインオプションとして指定することはできません。

**`AWS_SESSION_TOKEN`**  
AWS STS オペレーションから直接取得した一時的なセキュリティ認証情報を使用している場合に必要なセッショントークン値を指定します。詳細については、*AWS CLI コマンドリファレンス*にある [assume-role コマンドの「出力」](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role.html#output)セクションを参照してください。  
定義されている場合、この環境変数はプロファイル設定 `aws_session_token` の値よりも優先されます。

**`AWS_SHARED_CREDENTIALS_FILE`**  
AWS CLI がアクセスキーを保存するために使用するファイルの場所を指定します。デフォルトのパスは `~/.aws/credentials` です。  
この値は、名前付きプロファイル設定に指定したり、コマンドラインパラメータを使用して指定したりすることはできません。

**`AWS_SIGV4A_SIGNING_REGION_SET`**  
SigV4a で署名するときに使用するリージョンをカンマ区切りリストで指定します。この変数が設定されていない場合、AWS CLI は AWS のサービス で使用されるデフォルト値を使用します。AWS のサービス にデフォルト値がない場合、リクエスト署名は `*` の値を使用してすべてのリージョンで有効になります。  
SigV4a の詳細については、*IAM ユーザーガイド*の「[API リクエストに対する AWS Signature Version 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)」を参照してください。  
定義されている場合、この環境変数はプロファイル設定 [`sigv4a_signing_region_set`](cli-configure-files.md#cli-config-sigv4a_signing_region_set) の値よりも優先されます。

**`AWS_USE_DUALSTACK_ENDPOINT`**  
デュアルスタックのエンドポイントを使用して AWS リクエストを送信できるようにします。IPv4 と IPv6 の両方のトラフィックをサポートするデュアルスタックエンドポイントの詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 デュアルスタックエンドポイントの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/dual-stack-endpoints.html)」を参照してください。デュアルスタックのエンドポイントは、一部のリージョンでは一部のサービスで利用できます。サービスまたは AWS リージョン にデュアルスタックエンドポイントが存在しない場合、リクエストは失敗します。これはデフォルトでは無効になっています。詳細については、「[すべての AWS のサービスでデュアルスタックのエンドポイントを使用するように設定](cli-configure-endpoints.md#endpoints-dual-stack)」を参照してください。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**`AWS_USE_FIPS_ENDPOINT`**  
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 エンドポイントを使用するように設定](cli-configure-endpoints.md#endpoints-fips)」を参照してください。  
この設定が有効になっているが、AWS リージョン内のサービス用 FIPS エンドポイントが存在しない場合、AWS のコマンドは失敗する可能性があります。この場合は、`--endpoint-url` オプションを使用してコマンドで使用するエンドポイントを手動で指定するか、[サービス固有のエンドポイント](cli-configure-endpoints.md#endpoints-service-specific)を使用します。  
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**[`AWS_WEB_IDENTITY_TOKEN_FILE`](#cli-configure-envvars)**  
OAuth 2.0 アクセストークンまたは ID プロバイダーによって提供される OpenID Connect ID トークンを含むファイルへのパスを指定します。AWS CLI はこのファイルの内容をロードし、`WebIdentityToken` 引数として `AssumeRoleWithWebIdentity` オペレーションに渡します。  
`AWS_ROLE_ARN` および `AWS_ROLE_SESSION_NAME` 環境変数で使用されます。  
定義されている場合、この環境変数はプロファイル設定 `web_identity_token_file` の値よりも優先されます。  
ウェブ ID の使用の詳細については、「[ウェブ ID を使用したロールの継承](cli-configure-role.md#cli-configure-role-oidc)」を参照してください。  
この環境変数は、ウェブ ID プロバイダを使用したロール継承にのみ適用され、一般的なロール継承プロバイダ設定には適用されません。

# Command line options in the AWS CLI
<a name="cli-configure-options"></a>

AWS CLI で、コマンドラインオプションはグローバルパラメータであり、デフォルトの設定、対応するプロファイル設定、単一のコマンドの環境変数設定を上書きできます。使用するプロファイルを指定することはできますが、コマンドラインオプションを使用して認証情報を直接指定することはできません。

**Topics**
+ [コマンドラインオプションの使用方法](#cli-configure-options-how)
+ [AWS CLI でサポートされているグローバルコマンドラインオプション](#cli-configure-options-list)
+ [コマンドラインオプションの一般的な用途](#cli-configure-options-common)

## コマンドラインオプションの使用方法
<a name="cli-configure-options-how"></a>

ほとんどのコマンドラインオプションは、次の例のプロファイル名 `profile1` などの単純な文字列です。

```
$ aws s3 ls --profile profile1
amzn-s3-demo-bucket1
amzn-s3-demo-bucket2
...
```

引数を使用する各オプションには、オプション名から引数を分離するスペースまたは等号 (=) が必要です。引数値にスペースが含まれている文字列がある場合は、引数を引用符で囲む必要があります。引数の型とパラメータの書式設定の詳細については、「[AWS CLI でのパラメータ値の指定](cli-usage-parameters.md)」を参照してください。

## AWS CLI でサポートされているグローバルコマンドラインオプション
<a name="cli-configure-options-list"></a>

AWS CLI では、次のコマンドラインオプションを使用して、デフォルトの構成設定、対応するプロファイル設定、またはその単一のコマンドの環境変数設定を上書きできます。

**--ca-bundle *<string>***  
SSL 証明書の検証時に使用する証明機関 (CA) 証明書バンドルを指定します。  
定義されている場合、このオプションはプロファイル設定 `ca\$1bundle` の値および `AWS\$1CA\$1BUNDLE` 環境変数よりも優先されます。

**--cli-auto-prompt**  
単一のコマンドに対して自動プロンプトモードを有効にします。以下の例にあるように、これは任意の場所で指定できます。  

```
$ aws --cli-auto-prompt
$ aws dynamodb --cli-auto-prompt
$ aws dynamodb describe-table --cli-auto-prompt
```
このオプションは、`aws\$1cli\$1auto\$1prompt` 環境変数と `cli\$1auto\$1prompt` プロファイル設定を上書きします。  
AWS CLI バージョン 2 の自動プロンプト機能の詳細については、「[AWS CLI でのコマンドプロンプトの有効化と使用](cli-usage-parameters-prompting.md)」を参照してください。

**--cli-binary-format**  
AWS CLI バージョン 2 がバイナリ入力パラメータをどのように解釈するかを指定します。これには、次のいずれかの値を指定できます。  
+ base64 - これはデフォルト値です。バイナリラージオブジェクト (BLOB) として型指定された入力パラメータは、base64 でエンコードされた文字列を受け入れます。真のバイナリコンテンツを渡すには、コンテンツをファイルに置き、ファイルのパスと名前をパラメータの値として `fileb://` プレフィックスを付けて指定します。ファイルに含まれる base64 エンコードされたテキストを渡すには、ファイルのパスと名前をパラメータの値として `file://` プレフィックスを付けて指定します。
+ **raw-in-base64-out** — AWS CLI バージョン 1 のデフォルト。設定の値が `raw-in-base64-out` の場合、`file://` プレフィックスを使用して参照されるファイルはテキストとして読み取られます。AWS CLI は、これをバイナリにエンコードしようとします。
これは `cli\$1binary\$1format` ファイル設定を上書きします。  

```
$ aws lambda invoke \
    --cli-binary-format raw-in-base64-out \
    --function-name my-function \
    --invocation-type Event \
    --payload '{ "name": "Bob" }' \
    response.json
```
`fileb://` プレフィックス表記を使用してファイル内のバイナリ値を参照する場合、AWS CLI は 常にファイルに raw バイナリコンテンツが含まれていることを想定し、値の変換は試行しません。  
`file://` プレフィックス表記を使用してファイル内のバイナリ値を参照する場合、AWS CLI は現在の `cli_binary_format` 設定に従ってファイルを処理します。その設定の値が `base64` (明示的に設定されていない場合のデフォルト) の場合、AWS CLI はファイルに base64 エンコードされたテキストが含まれていることを期待します。設定の値が `raw-in-base64-out` の場合、AWS CLI はファイルに raw バイナリコンテンツが含まれていることを期待します。

**--cli-connect-timeout *<integer>***  
ソケットの最大接続時間を秒単位で指定します。この値をゼロ (0) に設定すると、ソケットの接続は無期限に待機し (ブロックされ)、タイムアウトになりません。デフォルト値は 60 秒です。

**--cli-read-timeout *<integer>***  
ソケットの最大読み込み時間を秒単位で指定します。この値をゼロ (0) に設定すると、ソケットの読み込みは無期限に待機し (ブロックされ)、タイムアウトになりません。デフォルト値は 60 秒です。

**--color *<string>***  
色出力のサポートを指定します。有効な値は、`on`、`off`、`auto` です。デフォルト値は `auto` です。

**--debug**  
デバッグログ記録を有効にするブールスイッチ。デフォルトでは、AWS CLI は、コマンド出力のコマンド結果に関する成功または失敗に関するクリーンアップ情報を提供します。`--debug` このオプションでは、完全な Python ログが提供されます。これには、コマンドが予期しない結果を提供する原因をトラブルシューティングするときに使用できるコマンドのオペレーションに関する追加の `stderr` 診断情報が含まれています。デバッグログを簡単に表示するには、ログをファイルに送信して、情報をより簡単に検索することをお勧めします。これを行うには、次のいずれかを使用します。  
`stderr` の診断情報のみを送信するには、`2> debug.txt` を追加します。ここで、`debug.txt` はデバッグファイルに使用する名前です。  

```
$ aws servicename commandname options --debug 2> debug.txt
```
出力情報と `stderr` 診断情報の両方を送信するには、`&> debug.txt` を追加します。ここで、`debug.txt` はデバッグファイルに使用する名前です。  

```
$ aws servicename commandname options --debug &> debug.txt
```

**--endpoint-url *<string>***  
リクエストを送信する URL を指定します。ほとんどのコマンドでは、AWS CLI により、選択したサービスと AWS リージョンに基づいて URL が自動的に決定されます。ただし、一部のコマンドでは、アカウント固有の URL を指定する必要があります。一部の AWS サービスでは、[プライベート VPC 内で直接エンドポイントをホストする](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#what-is-privatelink)こともできますが、URL を指定する必要がある場合があります。  
以下のコマンド例では、カスタム Amazon S3 エンドポイント URL を使用しています。  

```
$ aws s3 ls --endpoint-url http://localhost:4567
```
**エンドポイントの優先順位**  
エンドポイント設定は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイルなど複数の場所にあり、コマンドラインでパラメータとして明示的に宣言される場合もあります。AWS CLI により、これらのエンドポイント設定を特定の順序でチェックされ、優先順位が最も高いエンドポイント設定が使用されます。エンドポイントの優先順位リストについては、「[エンドポイント設定と設定の優先順位](cli-configure-endpoints.md#endpoints-precedence)」を参照してください。

**--no-cli-auto-prompt**  
単一のコマンドに対して自動プロンプトモードを無効にします。  

```
$ aws dynamodb describe-table --table-name Table1 --no-cli-auto-prompt
```
このオプションは、`aws\$1cli\$1auto\$1prompt` 環境変数と `cli\$1auto\$1prompt` プロファイル設定を上書きします。  
AWS CLI バージョン 2 の自動プロンプト機能の詳細については、「[AWS CLI でのコマンドプロンプトの有効化と使用](cli-usage-parameters-prompting.md)」を参照してください。

**--no-cli-pager**  
コマンドの出力に対するページャーの使用を無効にするブール型スイッチ。

**--no-paginate**  
出力のページ分割を作成するすべてのコマンド結果を受け取るために AWS CLI が自動的に行う複数の呼び出しを無効にするブール型スイッチ。つまり、出力の最初のページのみが表示されます。

**--no-sign-request**  
AWS サービスエンドポイントに対する HTTP リクエストへの署名を無効にするブールスイッチ。これにより、認証情報がロードされることを防ぎます。

**--no-verify-ssl**  
デフォルトでは、AWS CLI は AWS のサービスとの通信に SSL を使用します。SSL 接続およびコールごとに、AWS CLI は SSL 証明書を検証します。このオプションを使用すると、SSL 証明書を検証するデフォルトの動作がオーバーライドされます。  
このオプションは、ベストプラクティスでは**ありません**。`--no-verify-ssl` を使用すると、クライアントと AWS のサービスとの間のトラフィックは保護されなくなります。つまり、トラフィックはセキュリティ上のリスクとなり、中間者攻撃を受けやすくなります。証明書に問題がある場合は、代わりに問題を解決するのが最善です。証明書のトラブルシューティング手順については、「[SSL 証明書のエラー](cli-chap-troubleshooting.md#tshoot-certificate-verify-failed)」を参照してください。

**--output *<string>***  
このコマンドに使用する出力形式を指定します。次の値のいずれかを指定できます。  
+ **[`json`](cli-usage-output-format.md#json-output)** - 出力は [JSON](https://json.org/) 文字列としてフォーマットされます。
+  **[`yaml`](cli-usage-output-format.md#yaml-output)** - 出力は [YAML](https://yaml.org/) 文字列としてフォーマットされます。
+ **[`yaml-stream`](cli-usage-output-format.md#yaml-stream-output)** - 出力はストリームされ、[ YAML ](https://yaml.org/)文字列としてフォーマットされます。ストリーミングにより、大きなデータタイプの処理を高速化できます。
+ **[`text`](cli-usage-output-format.md#text-output)** - 出力は、複数行のタブ区切りの文字列値としてフォーマットされます。これは、`grep`、`sed`、または `awk` などのテキストプロセッサに出力を渡すのに役立ちます。
+ **[`table`](cli-usage-output-format.md#table-output)** - 出力は、テーブルとしてフォーマットされ、文字の「\$1\$1-」を使用してセルの境界を形成します。通常、情報は他の形式よりも読みやすい「わかりやすい」形式で表示されますが、プログラムとしては役立ちません。
+ **[`off`](cli-usage-output-format.md#off-output)** - 出力は、stdout へのすべてのコマンド出力を制限します。これは、出力を処理せずにコマンドの終了コードを確認するだけで済む自動化スクリプトや CI/CD パイプラインに役立ちます。

**--profile *<string>***  
このコマンドに使用する [named profile](cli-configure-files.md#cli-configure-files-using-profiles) を指定します。追加の名前付きプロファイルを設定するには、`aws configure` オプションを指定して `--profile` コマンドを使用します。  

```
$ aws configure --profile <profilename>
```

**--query *<string>***  
[JMESPath クエリ](https://jmespath.org/)を指定して、レスポンスデータのフィルタリングに使用します。詳細については、「[Filtering output in the AWS CLI](cli-usage-filter.md)」を参照してください。

**--region *<string>***  
このコマンドの AWS リクエストを送信する AWS リージョンを指定します。指定できるすべてのリージョンのリストについては、「*Amazon Web Services 全般のリファレンス*」の「[AWS リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html)」を参照してください。

**--version**  
実行している AWS CLI プログラムの現在バージョンを表示するブールスイッチ。

## コマンドラインオプションの一般的な用途
<a name="cli-configure-options-common"></a>

コマンドラインオプションの一般的な使用方法には、複数の AWS リージョンでのリソースの確認、および、スクリプティングでの読みやすさや使いやすさのための出力形式の変更が含まれます。次の例では、インスタンスがどのリージョンにあるかを見つけるまで、各リージョンに対して **describe-instances** コマンドを実行します。

```
$ aws ec2 describe-instances --output table --region us-west-1
-------------------
|DescribeInstances|
+-----------------+
$ aws ec2 describe-instances --output table --region us-west-2
------------------------------------------------------------------------------
|                              DescribeInstances                             |
+----------------------------------------------------------------------------+
||                               Reservations                               ||
|+-------------------------------------+------------------------------------+|
||  OwnerId                            |  012345678901                      ||
||  ReservationId                      |  r-abcdefgh                        ||
|+-------------------------------------+------------------------------------+|
|||                                Instances                               |||
||+------------------------+-----------------------------------------------+||
|||  AmiLaunchIndex        |  0                                            |||
|||  Architecture          |  x86_64                                       |||
...
```

# Configuring command completion in the AWS CLI
<a name="cli-configure-completion"></a>

AWS Command Line Interface (AWS CLI) には、**Tab** キーを使用して部分的に入力されたコマンドを完了できる bash 互換のコマンド補完機能が含まれています。ほとんどのシステムでは、これを手動で設定する必要があります。

AWS CLI バージョン 2 の自動プロンプト機能のについては、「[AWS CLI でのコマンドプロンプトの有効化と使用](cli-usage-parameters-prompting.md)」を参照してください。

**Topics**
+ [仕組み](#cli-command-completion-about)
+ [Linux または macOS でのコマンド補完の設定。](#cli-command-completion-linux)
+ [Windows でのコマンド補完の設定。](#cli-command-completion-windows)

## 仕組み
<a name="cli-command-completion-about"></a>

コマンド、パラメータ、またはオプションの一部を入力すると、コマンド補完機能によってコマンドが自動的に入力されるか、コマンドの候補リストが表示されます。コマンド補完を使用するには、コマンドの一部を入力し、ほとんどのシェルで通常は*[Tab]* (タブ) になっている保管キーを押します。

次の例は、コマンド補完を使用するさまざまな方法を示しています。
+ コマンドの一部を入力して *Tab* キーを押すと、コマンドの候補リストが表示されます。

  ```
  $ aws dynamodb dTAB
  delete-backup                        describe-global-table
  delete-item                          describe-global-table-settings
  delete-table                         describe-limits
  describe-backup                      describe-table
  describe-continuous-backups          describe-table-replica-auto-scaling
  describe-contributor-insights        describe-time-to-live
  describe-endpoints
  ```
+ パラメータの一部を入力して *Tab* キーを押すと、パラメータの候補リストが表示されます。

  ```
  $ aws dynamodb delete-table --TAB
  --ca-bundle              --endpoint-url           --profile              
  --cli-connect-timeout    --generate-cli-skeleton  --query                
  --cli-input-json         --no-paginate            --region               
  --cli-read-timeout       --no-sign-request        --table-name           
  --color                  --no-verify-ssl          --version              
  --debug                  --output
  ```
+ パラメータを入力して *Tab* キーを押すと、リソース値の候補リストが表示されます。この機能は、AWS CLI バージョン 2 でのみ使用できます。

  ```
  $ aws dynamodb delete-table --table-name TAB
  Table 1                  Table 2                  Table 3
  ```

## Linux または macOS でのコマンド補完の設定。
<a name="cli-command-completion-linux"></a>

Linux または macOS でコマンド補完を設定するには、使用しているシェルの名前と `aws_completer` スクリプトの場所を知っている必要があります。

**注記**  
コマンド補完は自動的に設定され、Amazon Linux を実行する Amazon EC2 インスタンス上でデフォルトで有効化されます。

**Topics**
+ [コンプリータがフォルダがパスにあることを確認します](#cli-command-completion-path)
+ [コマンド補完を有効にする](#cli-command-completion-enable)
+ [コマンド補完の確認](#cli-command-completion-test)

### コンプリータがフォルダがパスにあることを確認します
<a name="cli-command-completion-path"></a>

AWS コンプリータを正常に動作させるには、`aws_completer` がシェルのパス上にある必要があります。「`which`」コマンドで、コンプリータがパスにあるかどうかをチェックできます。

```
$ which aws_completer
/usr/local/bin/aws_completer
```

「which」コマンドで補完するものが見つからない場合は、次の手順を使用してコンプリータのフォルダをパスに追加します。

#### ステップ 1: AWS コンプリータを見つける
<a name="cli-command-completion-locate"></a>

 AWS コンプリータの場所は、使用するインストール方法によって異なります。
+ **パッケージマネージャー** - `pip`、`yum`、`brew`、および `apt-get` などのプログラムは通常、AWS コンプリータ (またはシンボリックリンク) を標準のパスの場所にインストールします。
  + `pip` を「`--user`」パラメータを**指定せずに**を使用した場合、デフォルトのパスは「`/usr/local/bin/aws_completer`」です。
  + `pip` を「`--user`」パラメータと**共に使用した**場合デフォルトのパスは「`/home/username/.local/bin/aws_completer`」です。
+ **バンドルインストーラ** - バンドルされたインストーラを使用した場合、デフォルトのパスは「`/usr/local/bin/aws_completer`」です。

他のすべてが失敗した場合は、`find` コマンドを使用して AWS コンプリータのファイルシステムを検索します。

```
$ find / -name aws_completer
/usr/local/bin/aws_completer
```

#### ステップ 2: シェルを識別する
<a name="cli-command-completion-shell"></a>

使用しているシェルを特定するには、次のコマンドのいずれかを使用します。
+ **echo \$1SHELL** - シェルのプログラムファイル名を表示します。これは通常、ログイン後に別のシェルを起動しない限り、使用中のシェルの名前と一致します。

  ```
  $ echo $SHELL
  /bin/bash
  ```
+ **ps** - 現在のユーザーに対して実行中のプロセスを表示します。それらの 1 つはシェルです。

  ```
  $ ps
    PID TTY          TIME CMD
   2148 pts/1    00:00:00 bash
   8756 pts/1    00:00:00 ps
  ```

#### ステップ 3: コンプリータをパスに追加する
<a name="cli-command-completion-path-add"></a>

1. ユーザーフォルダーでシェルのプロファイルスクリプトを見つけます。

   ```
   $ ls -a ~/
   .  ..  .bash_logout  .bash_profile  .bashrc  Desktop  Documents  Downloads
   ```
   + **Bash** – `.bash_profile`、`.profile`、または `.bash_login`。
   + **Zsh** -`.zshrc` 
   + **Tcsh** - `.tcshrc`、`.cshrc`、または `.login`

1. 次の例のように、プロファイルスクリプトの末尾にエクスポートコマンドを追加します。「`/usr/local/bin/`」を、前のセクションで検出したフォルダに置き換えます。

   ```
   export PATH=/usr/local/bin/:$PATH
   ```

1. 変更が有効になるように、プロファイルを現在のセッションに再ロードします。`.bash_profile` を最初のセッションで見つけたシェルスクリプトの名前で置き換えます。

   ```
   $ source ~/.bash_profile
   ```

### コマンド補完を有効にする
<a name="cli-command-completion-enable"></a>

コンプリータがパスにあることを確認したら、使用しているシェル上で適切なコマンドを実行して、コマンド補完を有効にします。コマンドをシェルのプロファイルに追加して、新しいシェルを開くたびに実行できます。各コマンドで、「*/usr/local/bin/*」パスを、[コンプリータがフォルダがパスにあることを確認します](#cli-command-completion-path) のシステムにあるパスに置き換えます。
+ **`bash`** - 組み込みコマンド「`complete`」を使用します。

  ```
  $ complete -C '/usr/local/bin/aws_completer' aws
  ```

  前のコマンドを `~/.bashrc` に追加して、新しいシェルを開くたびに実行します。`~/.bash_profile` はソースとして `~/.bashrc` を使用して、コマンドがログインシェルでも実行されるようにできます。
+  **`zsh`** - コマンド補完を実行するには、 `bashcompinit` プロファイルスクリプトの最後に次の自動ロード行を追加して「`~/.zshrc`」を実行する必要があります。

  ```
  $ autoload bashcompinit && bashcompinit
  $ autoload -Uz compinit && compinit
  ```

  コマンド補完を有効にするには、組み込みコマンド `complete` を使用します。

  ```
  $ complete -C '/usr/local/bin/aws_completer' aws
  ```

  前のコマンドを `~/.zshrc` に追加して、新しいシェルを開くたびに実行します。
+  **`tcsh`** – 「`tcsh`」の補完は、補完の振る舞いを定義するためのワードタイプとパターンを取ります。

  ```
  > complete aws 'p/*/`aws_completer`/'
  ```

  前のコマンドを `~/.tcshrc` に追加して、新しいシェルを開くたびに実行します。

コマンド補完を有効にした後は、「[コマンド補完の確認](#cli-command-completion-test)」は動作しています。

### コマンド補完の確認
<a name="cli-command-completion-test"></a>

コマンド補完を有効にしたら、シェルをリロードし、コマンドの一部を入力し、**Tab** を押して使用可能なコマンドを表示します。

```
$ aws sTAB
s3              ses             sqs             sts             swf
s3api           sns             storagegateway  support
```

## Windows でのコマンド補完の設定。
<a name="cli-command-completion-windows"></a>

**注記**  
PowerShell による補完の処理 (さまざまな補完キーを含む) についての詳細は、*Microsoft PowerShell Docs* の [about\$1Tab\$1Expansion](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_tab_expansion) を参照してください。

Windows で PowerShell のコマンド補完を有効にするには、PowerShell で次の手順を実行します。

1. 次のコマンドで「`$PROFILE`」を開きます。

   ```
   PS C:\> Notepad $PROFILE
   ```

   「`$PROFILE`」がない場合は、次のコマンドを使用してユーザープロファイルを作成します。

   ```
   PS C:\> if (!(Test-Path -Path $PROFILE ))
   { New-Item -Type File -Path $PROFILE -Force }
   ```

   PowerShell プロファイルの詳細については、*Microsoft Docs* ウェブサイトの「[Windows PowerShell ISE でプロファイルを使用する方法](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/how-to-use-profiles-in-windows-powershell-ise)」を参照してください。

1. コマンド補完を有効にするには、次のコードブロックをプロファイルに追加し、保存し、ファイルを閉じます。

   ```
   Register-ArgumentCompleter -Native -CommandName aws -ScriptBlock {
       param($commandName, $wordToComplete, $cursorPosition)
           $env:COMP_LINE=$wordToComplete
           if ($env:COMP_LINE.Length -lt $cursorPosition){
               $env:COMP_LINE=$env:COMP_LINE + " "
           }
           $env:COMP_POINT=$cursorPosition
           aws_completer.exe | ForEach-Object {
               [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
           }
           Remove-Item Env:\COMP_LINE     
           Remove-Item Env:\COMP_POINT  
   }
   ```

1. コマンド補完を有効にしたらシェルをリロードして、コマンドの一部を入力し、**[Tab]** (タブ) を押して使用可能なコマンドを順次表示させます。

   ```
   $ aws sTab
   ```

   ```
   $ aws s3
   ```

   補完で使用できるコマンドを表示するには、コマンドの一部を入力して、**Ctrl** \$1 **[Space]** (スペース) を押します。

   ```
   $ aws sCtrl + Space
   s3              ses             sqs             sts             swf
   s3api           sns             storagegateway  support
   ```

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

このトピックでは、予期しない問題による AWS CLI のサービスへの呼び出し失敗を AWS がどのように判断するかについて説明します。これらの問題は、サーバー側で発生するか、呼び出しを実行しようとしている AWS のサービスからのレート制限が原因で発生する可能性があります。通常、これらの種類のエラーは特別な処理を必要とせず、多くの場合、短い待機期間の後に自動的に再度呼び出しが実行されます。AWS CLI には、このようなエラーまたは例外が発生した場合に、AWS のサービスへのクライアント呼び出しの再試行を支援する多くの機能があります。

**Topics**
+ [使用可能な再試行モード](#cli-usage-retries-modes)
+ [再試行モードの設定](#cli-usage-retries-configure)
+ [再試行ログの表示](#cli-usage-retries-validate)

## 使用可能な再試行モード
<a name="cli-usage-retries-modes"></a>

**Topics**
+ [標準再試行モード (デフォルト)](#cli-usage-retries-modes-standard.title)
+ [レガシー再試行モード](#cli-usage-retries-legacy)
+ [アダプティブ再試行モード](#cli-usage-retries-modes-adaptive)

### 標準再試行モード (デフォルト)
<a name="cli-usage-retries-modes-standard.title"></a>

`Standard` モードは、レガシーよりも多くの機能を備えた AWS SDK 全体の再試行ルールの標準セットであり、AWS CLI のデフォルトです。AWS CLI バージョン 2 には標準モードが作成されており、AWS CLI バージョン 1 にバックポートされます。標準モードの機能は次のとおりです。
+ 最大再試行回数のデフォルト値は 2 で、合計で 3 回呼び出しが試みられます。この値は、`max_attempts` 設定パラメータを使用して上書きできます。
+ 次の拡張されたエラー/例外リストを再試行します。
  + 一時的なエラー/例外
    + `RequestTimeout` 
    + `RequestTimeoutException` 
    + `PriorRequestNotComplete` 
    + `ConnectionError`
    + `HTTPClientError` 
  + サービス側のスロットリング/制限エラーと例外:
    + `Throttling`
    + `ThrottlingException`
    + `ThrottledException`
    + `RequestThrottledException`
    + `TooManyRequestsException`
    + `ProvisionedThroughputExceededException`
    + `TransactionInProgressException` 
    + `RequestLimitExceeded` 
    + `BandwidthLimitExceeded`
    + `LimitExceededException`
    + `RequestThrottled`
    + `SlowDown`
    + `EC2ThrottledException` 
+ わかりにくい一時的なエラーコードに対して再試行します。具体的には、これらの HTTP ステータスコードは 500、502、503、504 です。
+ 再試行には、最大バックオフ時間が 20 秒の場合、基本係数 2 によるエクスポネンシャルバックオフが含まれます。

### レガシー再試行モード
<a name="cli-usage-retries-legacy"></a>

`Legacy` モードでは、以下を含む、機能が制限された古い再試行ハンドラーが使用されます。
+ 最大再試行回数のデフォルト値は 4 で、呼び出しの試行回数は合計 5 回です。この値は、`max_attempts` 設定パラメータを使用して上書きできます。
+ DynamoDB では、最大再試行回数のデフォルト値は 9 で、呼び出しの試行回数は合計 10 回です。この値は、`max_attempts` 設定パラメータを使用して上書きできます。
+ 次の限られた数のエラー/例外を再試行します。
  + 一般的なソケット/接続エラー:
    + `ConnectionError`
    + `ConnectionClosedError`
    + `ReadTimeoutError`
    + `EndpointConnectionError`
  + サービス側のスロットリング/制限エラーと例外:
    + `Throttling`
    + `ThrottlingException`
    + `ThrottledException`
    + `RequestThrottledException`
    + `ProvisionedThroughputExceededException`
+ 429、500、502、503、504、509 など、複数の HTTP ステータスコードで再試行します。
+ 再試行には、基本係数 2 によるエクスポネンシャルバックオフが含まれます。

### アダプティブ再試行モード
<a name="cli-usage-retries-modes-adaptive"></a>

**警告**  
アダプティブモードは実験的なモードであり、機能と動作の両方について変更される可能性があります。

`Adaptive` 再試行モードは、標準モードのすべての機能を含む実験的な再試行モードです。アダプティブモードでは、標準モード機能に加えて、トークンバケットおよびレート制限変数の使用を通じて、クライアント側のレート制限も導入されます。これらの変数は、再試行するたびに動的に更新されます。このモードは、AWS のサービスからのエラー/例外状態のレスポンスに適応するクライアント側の再試行における柔軟性を提供します。

新しい再試行ごとに、アダプティブモードは、AWS のサービスからのレスポンスに表示されるエラー、例外、または HTTP ステータスコードに基づいて、レート制限変数を変更します。その後、クライアントの新しい呼び出しレートを計算するためにこれらのレート制限変数が使用されす。成功する、トークンバケットを使い果たす、または設定された最大試行値に達するまでは再試行が発生するため、AWS のサービスからの例外/エラーまたは成功以外の HTTP レスポンス (上記のリストを参照) がレート制限変数を更新します。

## 再試行モードの設定
<a name="cli-usage-retries-configure"></a>

AWS CLI には、クライアントオブジェクトの作成時に考慮する必要がある、さまざまな再試行設定と設定方法が用意されています。

### 使用可能な設定方法
<a name="cli-usage-retries-configure-options"></a>

AWS CLI では、次の方法で再試行を設定できます。
+ 環境変数
+ AWS CLI 設定ファイル

次の再試行オプションをカスタマイズできます。
+ 再試行モード - AWS CLI が使用する再試行モードを指定します。前述のように、レガシー、標準、アダプティブの 3 つの再試行モードを使用できます。、AWS CLI バージョン 2 のデフォルト値が標準です。
+ 最大試行回数 - AWS CLI 再試行ハンドラーが使用する最大再試行回数を指定します。最初の呼び出しは、指定した値に対してカウントされます。デフォルト値は再試行モードに基づきます。

### 環境変数での再試行設定の定義
<a name="cli-usage-retries-configure-envvar"></a>

AWS CLI の再試行設定を定義するには、オペレーティングシステムの環境変数を更新します。

再試行環境変数は次のとおりです。
+ `AWS_RETRY_MODE`
+ `AWS_MAX_ATTEMPTS`

環境変数の詳細については、「[Configuring environment variables for the AWS CLI](cli-configure-envvars.md)」を参照してください。

### AWS 設定ファイルでの再試行設定の定義
<a name="cli-usage-retries-configure-file"></a>

再試行設定を変更するには、グローバル AWS 設定ファイルを更新します。AWS 設定ファイルのデフォルトの場所は～/.aws/config です。

以下は AWS 設定ファイルの例です。

```
[default]
retry_mode = standard
max_attempts = 6
```

設定ファイルの詳細については、「[Configuration and credential file settings in the AWS CLI](cli-configure-files.md)」を参照してください。

## 再試行ログの表示
<a name="cli-usage-retries-validate"></a>

AWS CLI は、Boto3 の再試行方法とログ記録を使用します。任意のコマンドで `--debug` オプションを使用して、デバッグログを受け取ることができます。`--debug`オプションの使用方法の詳細については、「[Command line options in the AWS CLI](cli-configure-options.md)」を参照してください。

デバッグログで「retry」を検索すると、必要な再試行情報が表示されます。再試行のクライアントログエントリは、有効にした再試行モードによって異なります。

**レガシーモード:**

 再試行メッセージは、botocore.retryhandler によって生成されます。次の 3 つのメッセージのいずれかが表示されます。
+ `No retry needed`
+ `Retry needed, action of: <action_name>`
+ `Reached the maximum number of retry attempts: <attempt_number>`

**標準モードまたはアダプティブモード:** 

 再試行メッセージは、botocore.retries.standard によって生成されます。次の 3 つのメッセージのいずれかが表示されます。
+ `No retrying request` 
+ `Retry needed, retrying request after delay of: <delay_value>`
+ `Retry needed but retry quota reached, not retrying request`

botocore 再試行の完全な定義ファイルについては、*botocore GitHub リポジトリ*の [\$1retry.json](https://github.com/boto/botocore/blob/develop/botocore/data/_retry.json) を参照してください。

# Using an HTTP proxy for the AWS CLI
<a name="cli-configure-proxy"></a>

プロキシサーバーを使用して AWS にアクセスするには、DNS ドメイン名またはプロキシサービスが使用する IP アドレスとポート番号で、`HTTP_PROXY` および `HTTPS_PROXY` 環境変数を設定できます。

**Topics**
+ [例の使用](#cli-configure-proxy-using)
+ [プロキシを認証する](#cli-configure-proxy-auth)
+ [Amazon EC2 インスタンスでのプロキシの使用](#cli-configure-proxy-ec2)
+ [トラブルシューティング](#cli-configure-proxy-tshoot)

## 例の使用
<a name="cli-configure-proxy-using"></a>

**注記**  
次の例は、環境変数名をすべて大文字で示しています。ただし、大文字と小文字を区別して変数を 2 回指定した場合、小文字が優先されます。システムでの混同や予期しない動作を回避するため、各変数は 1 回だけ定義することをお勧めします。

次の例では、プロキシの明示的な IP アドレスあるいはプロキシの IP アドレスを解結する DNS 名のいずれかを使用する方法を示しています。どちらの場合でも、コロンおよびクエリが送信されるべきポート番号を追加することができます。

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

```
$ export HTTP_PROXY=http://10.15.20.25:1234
$ export HTTP_PROXY=http://proxy.example.com:1234
$ export HTTPS_PROXY=http://10.15.20.25:5678
$ export HTTPS_PROXY=http://proxy.example.com:5678
```

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

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

```
C:\> setx HTTP_PROXY http://10.15.20.25:1234
C:\> setx HTTP_PROXY http://proxy.example.com:1234
C:\> setx HTTPS_PROXY http://10.15.20.25:5678
C:\> setx HTTPS_PROXY http://proxy.example.com:5678
```

[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/setx) を使用して環境変数を設定すると、現在のコマンドプロンプトセッションおよびコマンド実行後に作成するすべてのコマンドプロンプトセッションで使用する値が変更されます。これは、コマンド実行時にすでに実行されている他のコマンドシェルには影響を及ぼし***ません***。

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

`[set](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` を使用して環境変数を設定すると、現在のコマンドプロンプトセッションの終了時まで、または変数を別の値に設定するまで、使用する値が変更されます。

```
C:\> set HTTP_PROXY=http://10.15.20.25:1234
C:\> set HTTP_PROXY=http://proxy.example.com:1234
C:\> set HTTPS_PROXY=http://10.15.20.25:5678
C:\> set HTTPS_PROXY=http://proxy.example.com:5678
```

------

## プロキシを認証する
<a name="cli-configure-proxy-auth"></a>

**注記**  
AWS CLI では NTLM プロキシはサポートされていません。NTLM または Kerberos プロトコルプロキシを使用する場合は、[Cntlm](http://cntlm.sourceforge.net) などの認証プロキシを介して接続できることがあります。

AWS CLI は HTTP Basic 認証をサポートしています。次のように、プロキシ URL にユーザー名とパスワードを指定します。

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

```
$ export HTTP_PROXY=http://username:password@proxy.example.com:1234
$ export HTTPS_PROXY=http://username:password@proxy.example.com:5678
```

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

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

```
C:\> setx HTTP_PROXY http://username:password@proxy.example.com:1234
C:\> setx HTTPS_PROXY http://username:password@proxy.example.com:5678
```

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

```
C:\> set HTTP_PROXY=http://username:password@proxy.example.com:1234
C:\> set HTTPS_PROXY=http://username:password@proxy.example.com:5678
```

------

## Amazon EC2 インスタンスでのプロキシの使用
<a name="cli-configure-proxy-ec2"></a>

IAM ロールがアタッチされた状態で起動された Amazon EC2 インスタンスでプロキシを設定する場合は、[インスタンスメタデータ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)へのアクセスに使用されるアドレスを除外してください。これを行うには、`NO_PROXY` 環境変数をインスタンスメタデータサービスの IP アドレス「169.254.169.254」に設定します。このアドレスは変化しません。

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

```
$ export NO_PROXY=169.254.169.254
```

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

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

```
C:\> setx NO_PROXY 169.254.169.254
```

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

```
C:\> set NO_PROXY=169.254.169.254
```

------

## トラブルシューティング
<a name="cli-configure-proxy-tshoot"></a>

AWS CLI を使用した問題が発生した場合のトラブルシューティングステップについては、「[AWS CLI のエラーのトラブルシューティング](cli-chap-troubleshooting.md)」を参照してください。最も関連性の高いトラブルシューティングステップについては、「[SSL 証明書のエラー](cli-chap-troubleshooting.md#tshoot-certificate-verify-failed)」を参照してください。

# 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\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - 設定済みのエンドポイント 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\$1ENDPOINT\$1URL` - グローバルエンドポイント 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\$1configure\$1endpoint\$1urls` - 設定済みのエンドポイント URL を無視します。

    ```
    ignore_configure_endpoint_urls = true
    ```
  + `endpoint\$1url` - グローバルエンドポイント URL を設定します。

    ```
    endpoint_url = http://localhost:4567
    ```

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

## すべての AWS のサービスに FIPS エンドポイントを使用するように設定
<a name="endpoints-fips"></a>

すべてのサービスのリクエストを FIP エンドポイントを使用するようにルーティングするには、以下のいずれかを使用します。
+ `AWS\$1USE\$1FIPS\$1ENDPOINT` 環境変数

------
#### [ 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\$1fips\$1endpoint` ファイルの設定。

  ```
  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\$1USE\$1DUALSTACK\$1ENDPOINT` 環境変数

------
#### [ 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\$1dualstack\$1endpoint` ファイルの設定。

  ```
  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\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - コマンドラインで指定されている場合を除き、設定済みのエンドポイント URL をすべて無視します。
  + `AWS\$1ENDPOINT\$1URL\$1<SERVICE>` - 特定のサービスに使用されるカスタムエンドポイントを指定します。`<SERVICE>` は AWS のサービス 識別子に置き換えられます。すべてのサービス固有の変数については、「[サービス固有のエンドポイント: サービス固有の識別子のリスト](#endpoints-service-specific-table)」を参照してください。
+ `config` ファイル:
  + `ignore\$1configure\$1endpoint\$1urls` - 環境変数を使用して、またはコマンドラインで指定されている場合を除き、設定済みのエンドポイント URL をすべて無視します。
  + `endpoint\$1url` ファイル設定と組み合わされた `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\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` - コマンドラインで指定されている場合を除き、設定済みのエンドポイント 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\$1ENDPOINT\$1URL\$1<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\$1ACCOUNT\$1ID` - サポートされている 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\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` - サポートされている 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\$1account\$1id` - サポートされている AWS のサービスへの呼び出しに使用する AWS アカウントベースのエンドポイント ID を指定します。

    ```
    aws_account_id = <account-id>
    ```
  + `account\$1id\$1endpoint\$1mode` - サポートされている 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\$1IGNORE\$1CONFIGURED\$1ENDPOINT\$1URLS` グローバルエンドポイント環境変数またはプロファイル設定 `ignore\$1configure\$1endpoint\$1urls` はカスタムエンドポイントを無視します。

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

1. `AWS\$1USE\$1DUALSTACK\$1ENDPOINT`、`AWS\$1USE\$1FIPS\$1ENDPOINT`、および `AWS\$1ENDPOINT\$1URL` 環境変数によって提供される値。

1. `AWS\$1ACCOUNT\$1ID\$1ENDPOINT\$1MODE` 環境変数は、`AWS\$1ACCOUNT\$1ID` 環境変数または `aws\$1account\$1id` 設定でのアカウント ID の使用について、`preferred` または `required` に設定されます。

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

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

1. `use\$1dualstack\$1endpoint`、`use\$1fips\$1endpoint`、および `endpoint\$1url` の設定。

1. `account\$1id\$1endpoint\$1mode` 設定は、`AWS\$1ACCOUNT\$1ID` 環境変数または `aws\$1account\$1id` 設定でのアカウント ID の使用について、`preferred` または `required` に設定されます。

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