

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

# を使用してインタラクティブ開発作業の認証情報にアクセスする AWS SDK for Java 2.x
<a name="credentials-temporary"></a>

セキュリティを強化するために、 では、存続期間の長い[認証情報ではなく一時的な認証情報を使用する](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)ように SDK for Java を設定する AWS ことをお勧めします。一時的な認証情報は、アクセスキー (アクセスキー ID とシークレットアクセスキー) およびセッショントークンで構成されています。

一時的な認証情報を使用するには、いくつかのアプローチを使用できます。使用するアプローチ、つまり SDK に提供する設定は、ユースケースに応じて異なります。

Java SDK でインタラクティブな開発作業を行う場合は、 AWS コンソールのログイン認証情報を使用することをお勧めします。

## コンソールのログイン認証情報の使用
<a name="using-con-login-creds"></a>

既存の AWS マネジメントコンソールのサインイン認証情報を使用して、 AWS サービスにプログラムでアクセスできます。ブラウザベースの認証フローの後、 は AWS CLI や SDK for Java 2.x などのローカル開発ツールで動作する一時的な認証情報 AWS を生成します。

このプロセスでは、最初のアカウント設定時に作成されたルート認証情報、IAM ユーザー、または ID プロバイダーからのフェデレーティッド ID を使用して認証でき、 によって一時的な認証情報 AWS CLI が自動的に管理されます。このアプローチにより、長期的な認証情報をローカルに保存する必要がなくなるため、セキュリティが強化されます。

`aws login` コマンドを実行すると、アクティブなコンソールセッションから選択することも、ブラウザベースの認証フローを使用してサインインすることもできます。これにより、一時的な認証情報が自動的に生成されます。SDK for Java 2.x は、これらの認証情報を最大 12 時間自動的に更新します。

**重要**  
すべてのプロジェクトで動作する共有設定ファイルで設定した設定に加えて、個々の Java プロジェクトごとに Maven `pom.xml` ファイルで次の依存関係が必要です。  

```
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>signin</artifactId>
</dependency>
```
`signin` 依存関係は、SDK for Java 2.x がコンソールのログイン認証情報にアクセスして使用できるようにするコードを提供します。

前提条件、ログインおよびサインアウトの詳細については、 *AWS SDK およびツールリファレンスガイド*の[「コンソール認証情報を使用した AWS ローカル開発のログイン](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html)」を参照してください。

## Single-sign-onアプローチ
<a name="single-sign-on-approach"></a>

Java SDK でインタラクティブな開発作業を行う場合は、シングルサインオンアプローチを使用することもできます。このアプリケーションには、次の設定が必要になります。
+ [IAM Identity Center による設定](get-started-auth.md#setup-auth)
+ [AWS 共有設定ファイルでプロファイルを設定する](get-started-auth.md#setup-credentials) 
+ を使用して コマンド AWS CLI を実行してログインし、アクティブなセッションを作成する [3. を使用してサインインする AWS CLI](get-started-auth.md#setup-login-sso) 

### IAM Identity Center の設定
<a name="credentials-temporary-idc"></a>

このガイドの [設定の概要](setup.md#setup-overview) で説明されているように IAM Identity Center シングルサインオンアクセスを使用するように SDK を設定すると、SDK は一時的な認証情報を使用します。

SDK は IAM Identity Center アクセストークンを使用して、`config`ファイルの `sso_role_name` 設定で設定された IAM ロールにアクセスします。SDK はこの IAM ロールを引き受け、 AWS のサービス リクエストに署名するための一時的な認証情報を取得します。

SDK が設定から一時的な認証情報を取得する方法の詳細については、「 AWS SDKs and Tools リファレンスガイド」の「[Understanding IAM Identity Center authentication](https://docs.aws.amazon.com/sdkref/latest/guide/understanding-sso.html)」セクションを参照してください。

**重要**  
すべてのプロジェクトで動作する、共有 `config` ファイルで設定した設定に加えて、個々の Java プロジェクトごとに Maven `pom.xml` ファイルに次の依存関係が必要です。  

```
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>sso</artifactId>
</dependency>
<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>ssooidc</artifactId>
</dependency>
```
`sso` と `ssooidc` の依存関係は、SDK for Java 2.x が一時的な認証情報にアクセスできるようにするコードを提供します。

### AWS アクセスポータルから一時的な認証情報を取得する
<a name="credentials-temporary-from-portal"></a>

IAM Identity Center シングルサインオン設定の代わりに、 AWS アクセスポータルで利用可能な一時的な認証情報をコピーして使用できます。一時的な認証情報は、プロファイルで使用することも、システムプロパティや環境変数の値として使用することもできます。

**一時的な認証情報用のローカルの認証情報ファイルを設定する**

1. [認証情報の共有ファイルを作成する](https://docs.aws.amazon.com/sdkref/latest/guide/file-location.html)

1. 認証情報ファイルに、作業用の一時的な認証情報を貼り付けるまで、次のプレースホルダーテキストを貼り付けます。

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

1. ファイルを保存します。これで、ファイル `~/.aws/credentials` はローカルの開発システムに存在しているはずです。このファイルには、特定の名前付きプロファイルが指定されていない場合に SDK for Java が使用する [[default] プロファイル](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html#file-format-profile)が含まれています。

1. [AWS アクセスポータルにサインインする](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosignin.html)

1. アクセス AWS ポータルから IAM ロールの認証情報をコピーするには、[「手動認証情報更新](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials)」の見出しにある手順に従ってください。

   1. リンク先の手順のステップ 2 で、開発ニーズに合ったアクセスを許可する IAM ロールの名前に `Access keys` を選択します。通常、このロールには **PowerUserAccess** や **Developer** などの名前が付いています。

   1. モーダルダイアログボックスでお使いのオペレーティングシステムを選択し、**[ AWS 認証情報ファイルにプロファイルを追加する]** からコンテンツをコピーします。

1. コピーした認証情報をローカル `credentials` ファイルに貼り付け、生成されたプロファイル名を削除します。ファイルは以下のようになります。

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

1. `credentials` ファイルを保存します。

SDK for Java は、サービスクライアントを作成するときに、これらの一時的な認証情報にアクセスしてリクエストごとに使用します。ステップ 5a で選択した IAM ロールの設定により、[一時的な認証情報の有効期間](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtosessionduration.html)が決まります。最大期間は 12 時間です。

一時的な認証情報の有効期限が切れたら、ステップ 4～7 を繰り返します。