AWS SDK for Java 2.x を使用してインタラクティブな開発作業のための認証情報にアクセスする
セキュリティを強化するために、AWS では長期間有効な認証情報の代わりに一時的な認証情報を使用するように SDK for Java を設定することをお勧めします。一時的な認証情報は、アクセスキー (アクセスキー ID とシークレットアクセスキー) およびセッショントークンで構成されています。
一時的な認証情報を使用するには、いくつかのアプローチを使用できます。使用するアプローチ、つまり SDK に提供する設定は、ユースケースに応じて異なります。
Java SDK でインタラクティブな開発作業を行う場合は、シングルサインオンアプローチを使用することをお勧めします。このアプリケーションには、次の設定が必要になります。
-
AWS CLI の使用と コマンドの実行によるログインとアクティブセッションの作成
IAM Identity Center の設定
このガイドの 設定の概要 で説明されているように 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」セクションを参照してください。
重要
すべてのプロジェクトで動作する、共有 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 アクセスポータルからの一時的な認証情報の取得
IAM Identity Center のシングルサインオン設定の代わりに、AWS アクセスポータルにある一時的な認証情報をコピーして使用することもできます。一時的な認証情報は、プロファイルで使用することも、システムプロパティや環境変数の値として使用することもできます。
一時的な認証情報用のローカルの認証情報ファイルを設定する
-
認証情報ファイルに、作業用の一時的な認証情報を貼り付けるまで、次のプレースホルダーテキストを貼り付けます。
[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> -
ファイルを保存します。これで、ファイル
~/.aws/credentialsはローカルの開発システムに存在しているはずです。このファイルには、特定の名前付きプロファイルが指定されていない場合に SDK for Java が使用する [default] プロファイルが含まれています。 -
AWS アクセスポータルから IAM ロール 認証情報をコピーするには、「認証情報の手動更新」の見出しにある以下の指示に従います。
-
リンク先の手順のステップ 2 で、開発ニーズに合ったアクセスを許可する IAM ロールの名前に
Access keysを選択します。通常、このロールには PowerUserAccess や Developer などの名前が付いています。 -
モーダルダイアログボックスでお使いのオペレーティングシステムを選択し、[AWS 認証情報ファイルにプロファイルを追加する] からコンテンツをコピーします。
-
-
コピーした認証情報をローカル
credentialsファイルに貼り付け、生成されたプロファイル名を削除します。ファイルは以下のようになります。[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE -
credentialsファイルを保存します。
SDK for Java は、サービスクライアントを作成するときに、これらの一時的な認証情報にアクセスしてリクエストごとに使用します。ステップ 5a で選択した IAM ロールの設定により、一時的な認証情報の有効期間が決まります。最大期間は 12 時間です。
一時的な認証情報の有効期限が切れたら、ステップ 4~7 を繰り返します。