

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 共有ファイル`config`と `credentials` ファイルを使用して AWS SDKs とツールをグローバルに設定する
<a name="file-format"></a>

共有 AWS `config` ファイルと `credentials`ファイルは、 AWS SDK またはツールへの認証と設定を指定できる最も一般的な方法です。

共有 `credentials` および `config` ファイルには一連のプロファイルが含まれています。プロファイルは、 AWS SDKs、 AWS Command Line Interface (AWS CLI)、およびその他のツールで使用されるキーと値のペアの一連の設定です。プロファイルを使用するときに SDK／ツールの一部を設定するために、設定値がプロファイルに添付されます。これらのファイルは、値がユーザーのローカル環境にあるすべてのアプリケーション、プロセス、または SDK に影響するという点で「共有」されます。

共有 `config` ファイルと `credentials` ファイルはどちらも ASCII 文字（UTF-8 でエンコードされた）のみを含むプレーンテキストファイルです。これらは一般に [INI ファイル](https://wikipedia.org/wiki/INI_file)と呼ばれる形式をとります。

## プロファイル
<a name="file-format-profile"></a>

共有 `config` ファイルと `credentials` ファイル内の設定は特定のプロファイルに関連付けられます。ファイル内で複数のプロファイルを定義し、異なる設定を作成して異なる開発環境に適用することができます。

 `[default]` プロファイルには、特定の名前付きプロファイルが指定されていない場合に SDK またはツールオペレーションで使用される値が含まれます。名前で明示的に参照できる個別のプロファイルを作成することもできます。各プロファイルは、アプリケーションやシナリオに応じて異なる設定と値を使用できます。

**注記**  
`[default]` は単に名前のないプロファイルです。このプロファイルは、ユーザーがプロファイルを指定しない場合に SDK が使用するデフォルトのプロファイルであるため、`default` の名前が付けられています。継承されたデフォルト値を他のプロファイルに使用することはありません。`[default]` プロファイルに何かを設定し、それを名前付きプロファイルでは設定しなかった場合、名前付きプロファイルを使用してもその値は設定されません。

### 名前付きプロファイルの設定
<a name="set-named-profile"></a>

`[default]` プロファイルと複数の名前付きプロファイルは、同じファイル内に存在できます。次の設定を使用して、コードの実行時に SDK またはツールがどのプロファイルの設定を使用するかを選択します。プロファイルはコード内で選択することも、 AWS CLIを使用する場合はコマンドごとに選択することもできます。

この機能を設定するには、以下のいずれかの設定を使用します。

**`AWS_PROFILE` - 環境変数**  
この環境変数を名前付きプロファイルまたは「デフォルト」に設定すると、すべての SDK コードと AWS CLI コマンドはそのプロファイルの設定を使用します。  
Linux/macOS のコマンドラインによる環境変数の設定の例を以下に示します。  

```
export AWS_PROFILE="my_default_profile_name";
```
Windows のコマンドラインによる環境変数の設定の例を以下に示します。  

```
setx AWS_PROFILE "my_default_profile_name"
```

**`aws.profile` - JVM システムプロパティ**  
JVM の SDK for Kotlin と SDK for Java 2.x では、[`aws.profile` システムプロパティを設定できます](jvm-system-properties.md#jvm-sys-props-set)。SDK はサービスクライアントを作成するときに、コードで設定が上書きされない限り、名前付きプロファイルの設定を使用します。SDK for Java 1.x は、このシステムプロパティをサポートしていません。

**注記**  
アプリケーションが複数のアプリケーションを実行しているサーバー上にある場合は、デフォルトのプロファイルではなく、常に名前付きプロファイルを使用することをお勧めします。デフォルトのプロファイルは、環境内の任意の AWS アプリケーションによって自動的に取得され、それらの間で共有されます。したがって、他のユーザーがアプリケーションのデフォルトプロファイルを更新すると、意図せず他のユーザーに影響を与える可能性があります。これを防ぐには、共有 `config` ファイルで名前付きプロファイルを定義し、コードに名前付きプロファイルを設定して、アプリケーションでその名前付きプロファイルを使用します。名前付きプロファイルのスコープがアプリケーションにのみ影響することがわかっている場合は、環境変数または JVM システムプロパティを使用して名前付きプロファイルを設定できます。

## 設定ファイルの形式
<a name="file-format-config"></a>

`config` ファイルは、セクションにまとめられています。セクションは、設定の名前付きコレクションであり、別のセクション定義の行が検出されるまで続きます。

`config` ファイルは、次の形式を使用するプレーンテキストファイルです。
+ セクション内のすべてのエントリは、`setting-name=value` の一般的な形式になります。
+ 行の先頭にハッシュタグ (`#`) を付けると、行をコメントアウトできます。

### セクションタイプ
<a name="section-types"></a>

セクション定義は、設定のコレクションに名前を付ける行です。セクション定義行の先頭と末尾は角括弧 (`[` `]`) です。括弧内には、セクションタイプ識別子とセクションのカスタム名があります。英文字、数字、ハイフン (`-`)、アンダースコア (`_`) は使用できますが、スペースは使用できません。

#### セクションタイプ: `default`
<a name="section-default"></a>

セクション定義行の例：`[default]`

 `[default]` は、`profile` セクション識別子を必要としない唯一のプロファイルです。

`[default]` プロファイルのある基本 `config` ファイルの例を以下に示します。[`region`](feature-region.md) を設定します。別のセクション定義が見つかるまで、この行に続くすべての設定は、このプロファイルの一部になります。

```
[default]
#Full line comment, this text is ignored.
region = us-east-2
```

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

セクション定義行の例：`[profile dev]`

`profile` セクション定義行は、さまざまな開発シナリオに適用できる名前付き設定グループです。名前付きプロファイルについての理解を深めるには、前のセクションの「プロファイル」を参照してください。

次の例は、`profile` セクション定義行と `foo` という名前付きプロファイルを含む `config` ファイルを示しています。別のセクション定義が見つかるまで、この行に続くすべての設定は、この名前付きプロファイルの一部になります。

```
[profile foo]
...settings...
```

次の例の `s3` 設定やサブ設定など、一部の設定には独自のサブ設定グループがネストされています。サブ設定を 1 つまたは複数のスペースでインデントしてグループに関連付けます。

```
[profile test]
region = us-west-2
s3 =
    max_concurrent_requests=10
    max_queue_size=1000
```

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

セクション定義行の例：`[sso-session my-sso]`

`sso-session` セクション定義行には、 を使用して AWS 認証情報を解決するようにプロファイルを設定するために使用される設定のグループの名前が付けられます AWS IAM アイデンティティセンター。シングルサインオン認証の設定の詳細については、「[IAM Identity Center を使用して AWS SDK とツールを認証する](access-sso.md)」を参照してください。プロファイルは、キーと値のペアによって `sso-session` セクションにリンクされます。ここで、`sso-session` はキー、`sso-session` セクションの名前は値です（`sso-session = <name-of-sso-session-section>` など）。

次の例では、「my-sso」のトークンを使用して「111122223333」アカウントの「SampleRole」IAM ロールの短期 AWS 認証情報を取得するプロファイルを設定しています。「my-sso」`sso-session` セクションは、`profile` セクションの中で `sso-session` キーを使用して名前で参照されます。

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

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

セクション定義行の例：`[services dev]`

**注記**  
`services` セクションはサービス固有のエンドポイントのカスタマイズをサポートしており、この機能を含む SDK とツールでのみ使用できます。お使いの SDK でこの機能が使用できるかどうかを確認するには、「サービス固有のエンドポイント」の [AWS SDKsとツールによるサポート](feature-ss-endpoints.md#ss-endpoints-sdk-compat) を参照してください。

`services` セクション定義行は、 AWS のサービス リクエストのカスタムエンドポイントを設定する設定のグループに名前を付けます。プロファイルは、キーと値のペアによって `services` セクションにリンクされます。ここで、`services` はキー、`services` セクションの名前は値です（`services = <name-of-services-section>` など）。

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

 次の例では、`services` 定義を使用して、 Amazon DynamoDB サービスに対して行われたリクエストにのみ使用するようにエンドポイントを設定しています。`"local-dynamodb"` `services` セクションは、`profile` セクションの中で `services` キーを使用して名前で参照されます。 AWS のサービス 識別子キーは です`dynamodb`。 Amazon DynamoDB サービスサブセクションは行 で始まります`dynamodb = `。直後のインデントされた行はすべてそのサブセクションに含まれ、そのサービスに適用されます。

```
[profile dev]
services = local-dynamodb

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

カスタムエンドポイントの設定の詳細については、「[サービス固有のエンドポイント](feature-ss-endpoints.md)」を参照してください。

## 認証情報ファイルの形式
<a name="file-format-creds"></a>

プロファイルセクションが単語 `profile` で始まらないことを除けば、`credentials` ファイルのルールは一般的に `config` ファイルのルールと同じです。角括弧内にはプロファイル名だけを使用してください。次の例は、`foo` という名前付きプロファイルセクションを含む `credentials` ファイルを示しています。

```
[foo]
...credential settings...
```

`credentials` ファイルに保存できるのは、「シークレット」または機密と見なされる次の設定のみです。`aws_access_key_id`、`aws_secret_access_key`、および `aws_session_token`。これらの設定は共有 `config` ファイルに配置することもできますが、これらの機密の値は別の `credentials` ファイルに保持することをお勧めします。これにより、必要に応じてファイルごとに個別のアクセス許可を与えることができます。

`[default]` プロファイルのある基本 `credentials` ファイルの例を以下に示します。[`aws_access_key_id`、`aws_secret_access_key`、および `aws_session_token`](feature-static-credentials.md) グローバル設定を設定します。

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

`credentials` ファイルで名前付きプロファイルを使用するか「`default`」を使用するかにかかわらず、ここでの設定は、同じプロファイル名を使用する `config` ファイルの設定と組み合わせられます。同じ名前を共有するプロファイルの両方のファイルに認証情報がある場合、認証情報ファイルのキーが優先されます。