

 AWS SDK for Java 1.x は 2025 年 12 月 31 日にend-of-supportしました。新しい機能、可用性の向上、セキュリティ更新のために、[AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) に移行することをお勧めします。

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

# に一時的な認証情報を提供する AWS SDK for Java
<a name="credentials"></a>

にリクエストを行うには Amazon Web Services、 が サービスを呼び出すときに AWS SDK for Java 使用する AWS 一時的な認証情報を指定する必要があります。これは以下の方法で対応できます。
+ デフォルトの認証情報プロバイダーチェーンを使用する *(推奨)*。
+ 特定の認証情報プロバイダーまたはプロバイダーチェーンを使用する (または独自のものを作成する)。
+ 一時的な認証情報はご自分でコードに入力してください。

## デフォルトの認証情報プロバイダチェーンの使用
<a name="credentials-default"></a>

引数を指定せずに新しいサービスクライアントを初期化すると、 は [DefaultAWSCredentialsProviderChain](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html) クラスによって実装された*デフォルトの認証情報プロバイダーチェーンを使用して一時的な認証情報*を検索 AWS SDK for Java しようとします。デフォルトの認証情報プロバイダーチェーンは、次の順序で認証情報を検索します。

1.  **環境変数** - `AWS_ACCESS_KEY_ID` `AWS_SECRET_KEY`、または`AWS_SECRET_ACCESS_KEY` および `AWS_SESSION_TOKEN`。 AWS SDK for Java は [EnvironmentVariableCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/EnvironmentVariableCredentialsProvider.html) クラスを使用してこれらの認証情報をロードします。

1.  **Java システムプロパティ** - `aws.accessKeyId`、 `aws.secretKey` (ただし、 `aws.secretAccessKey` ではありません)、および `aws.sessionToken`。 AWS SDK for Java は [SystemPropertiesCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/SystemPropertiesCredentialsProvider.html) を使用してこれらの認証情報を読み込みます。

1.  環境またはコンテナからの**ウェブアイデンティティトークンの認証情報**。

1.  **デフォルトの認証情報プロファイルファイル **- 通常、 に配置され `~/.aws/credentials` (場所はプラットフォームによって異なります）、多くの AWS SDKs と によって共有されます AWS CLI。 AWS SDK for Java は [ProfileCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/profile/ProfileCredentialsProvider.html) を使用してこれらの認証情報をロードします。

   が提供する `aws configure` コマンドを使用して認証情報ファイルを作成することも AWS CLI、テキストエディタでファイルを編集して作成することもできます。認証情報ファイル形式に関する情報については、「[AWS Credentials File Format](#credentials-file-format)」を参照してください。

1.  **Amazon ECS コンテナの認証情報** - 環境変数 `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` が設定されている場合に、Amazon ECS からロードされます。 AWS SDK for Java は [ContainerCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/ContainerCredentialsProvider.html) を使用してこれらの認証情報をロードします。この値の IP アドレスを指定できます。

1.  **インスタンスプロファイル認証情報** - EC2 インスタンスで使用され、 Amazon EC2 メタデータサービスを介して配信されます。 AWS SDK for Java は [InstanceProfileCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/InstanceProfileCredentialsProvider.html) を使用してこれらの認証情報をロードします。この値の IP アドレスを指定できます。
**注記**  
インスタンスプロファイル認証情報は、`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` が設定されていない場合にのみ使用されます。詳細については、「[EC2ContainerCredentialsProviderWrapper](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/EC2ContainerCredentialsProviderWrapper.html)」を参照してください。

### 一時的な認証情報の設定
<a name="setting-credentials"></a>

 AWS 一時的な認証情報を使用するには、前述の場所*の少なくとも 1* つに設定する必要があります。認証情報の設定の詳細については、以下のトピックを参照してください。
+ *環境*またはデフォルトの*認証情報プロファイルファイル*での認証情報の指定については、「[一時的な認証情報の設定](setup-credentials.md#setup-credentials-setting)」を参照してください。
+ Java *システムプロパティ*の設定については、公式の [Java Tutorials](http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html) ウェブサイトにある「*System Properties*」チュートリアルを参照してください。
+ EC2 *インスタンスでインスタンスプロファイル認証情報*をセットアップして使用するには、[「IAM ロールを使用して の AWS リソースへのアクセスを許可する Amazon EC2](java-dg-roles.md)」を参照してください。

### 別の認証情報プロファイルの設定
<a name="setting-an-alternate-credentials-profile"></a>

はデフォルトで*デフォルトの*プロファイル AWS SDK for Java を使用しますが、認証情報ファイルから取得されるプロファイルをカスタマイズする方法があります。

 AWS プロファイル環境変数を使用して、SDK によってロードされたプロファイルを変更できます。

例えば、Linux、macOS、または Unix の場合は、次のコマンドを実行してプロファイルを *myProfile* に変更します。

```
export AWS_PROFILE="myProfile"
```

Windows の場合は次のコマンドを使用します。

```
set AWS_PROFILE="myProfile"
```

`AWS_PROFILE` 環境変数を設定すると、正式にサポートされているすべての AWS SDKsとツール ( AWS CLI と を含む AWS Tools for Windows PowerShell) の認証情報のロードに影響します。Java アプリケーションのプロファイルだけを変更する場合は、代わりにシステムプロパティ `aws.profile` を使用できます。

**注記**  
環境変数はシステムプロパティより優先されます。

### 別の認証情報ファイルの場所を設定する
<a name="setting-an-alternate-credentials-file-location"></a>

は、デフォルトの認証情報ファイルの場所から AWS 一時的な認証情報を自動的に AWS SDK for Java ロードします。ただし、認証情報ファイルへのフルパスを使用して `AWS_CREDENTIAL_PROFILES_FILE` 環境変数を設定することで、場所を指定することもできます。

この機能を使用して、 が認証情報ファイル AWS SDK for Java を検索する場所を一時的に変更できます (たとえば、この変数をコマンドラインで設定するなど）。または、ユーザー環境やシステム環境で環境変数を設定して、ユーザーやシステム全体に対して変数を変更できます。

#### 認証情報ファイルのデフォルトの場所を上書きするには
<a name="w3aab9c15b9c11b7b1"></a>
+ `AWS_CREDENTIAL_PROFILES_FILE` 環境変数を AWS 認証情報ファイルの場所に設定します。
  + Linux、macOS、または Unix では、次を使用します。

    ```
    export AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    ```
  + Windows では、次を使用します。

    ```
    set AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    ```

### `Credentials` ファイル形式
<a name="credentials-file-format"></a>

このガイドの[基本設定の指示](signup-create-iam-user.md#setup-temp-creds)に従うと、認証情報ファイルは次の基本形式になります。

```
[default]
aws_access_key_id=<value from AWS access portal>
aws_secret_access_key=<value from AWS access portal>
aws_session_token=<value from AWS access portal>

[profile2]
aws_access_key_id=<value from AWS access portal>
aws_secret_access_key=<value from AWS access portal>
aws_session_token=<value from AWS access portal>
```

プロファイル名では角括弧 (例: `[default]`) に続いて、キーと値のペアとして、そのプロファイルの設定可能なフィールドを指定します。`credentials` ファイルで複数のプロファイルを持つことができ、それらは `aws configure --profile PROFILE_NAME ` を使用して設定するプロファイルを選択することで追加または編集できます。

`metadata_service_timeout`、`metadata_service_num_attempts` などの追加のフィールドを指定できます。これらは、CLI で設定可能ではなく、使用する場合は手動でファイルを編集する必要があります。設定ファイルとその使用可能なフィールドの詳細については、 AWS Command Line Interface ユーザーガイドの[「 の設定 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)」を参照してください。

### 認証情報の読み込み
<a name="loading-credentials"></a>

一時的な認証情報を設定した後は、SDK はデフォルトの認証情報プロバイダーチェーンを使用してその認証情報をロードします。

これを行うには、次のように、ビルダーに認証情報を明示的に提供せずに AWS のサービス クライアントをインスタンス化します。

```
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withRegion(Regions.US_WEST_2)
                       .build();
```

## 認証情報プロバイダーまたはプロバイダーチェーンの指定
<a name="credentials-specify-provider"></a>

クライアントビルダーを使用して、*デフォルト*の認証情報プロバイダーチェーンとは異なる認証情報プロバイダーを指定できます。

[AWSCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProvider.html) インターフェイスを入力として受け取るクライアントビルダーに、認証情報プロバイダーまたはプロバイダーチェーンのインスタンスを指定します。以下の例は、*環境*認証情報を具体的に使用する方法を示しています。

```
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withCredentials(new EnvironmentVariableCredentialsProvider())
                       .build();
```

 AWS SDK for Java提供された認証情報プロバイダーとプロバイダーチェーンの完全なリストについては、[AWSCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProvider.html) **のすべての既知の実装クラス**」を参照してください。

**注記**  
この手法を使用して、`AWSCredentialsProvider` インターフェイスを実装する独自の認証情報プロバイダーを使用するか、[AWSCredentialsProviderChain](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProviderChain.html) クラスをサブクラス化して、作成する認証情報プロバイダーまたはプロバイダーチェーンを指定できます。

## 一時的な認証情報を明示的に指定する
<a name="credentials-explicit"></a>

デフォルトの認証情報チェーンまたは特定あるいはカスタムのプロバイダーやプロバイダーチェーンがコードに対して機能しない場合は、明示的に指定する認証情報を設定できます。を使用して一時的な認証情報を取得した場合は AWS STS、この方法を使用して AWS アクセス用の認証情報を指定します。

1. [BasicSessionCredentials](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/BasicSessionCredentials.html) クラスをインスタンス化し、SDK が接続に使用するアクセスキー、 AWS シークレットキー、および AWS セッショントークンを提供します AWS 。

1. [ オブジェクトを使用して ](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSStaticCredentialsProvider.html)AWSStaticCredentialsProvider`AWSCredentials` を作成します。

1. `AWSStaticCredentialsProvider` を使用してクライアントビルダーを設定し、クライアントをビルドします。

以下に例を示します。

```
BasicSessionCredentials awsCreds = new BasicSessionCredentials("access_key_id", "secret_key_id", "session_token");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                        .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
                        .build();
```

## 詳細情報
<a name="more-info"></a>
+  [にサインアップ AWS して IAM ユーザーを作成する](signup-create-iam-user.md) 
+  [開発用の AWS 認証情報とリージョンを設定する](setup-credentials.md) 
+  [IAM ロールを使用して の AWS リソースへのアクセスを許可する Amazon EC2](java-dg-roles.md) 