AWS SDK for Java 2.x を使用した AWS での認証 - AWS SDK for Java 2.x

AWS SDK for Java 2.x を使用した AWS での認証

AWS SDK for Java 2.x を使用する場合、認証について知っておくべき重要なことは、SDK が暗号化アルゴリズムを実装することなく、環境または IAM ロールの認証情報を使用して、複雑なリクエスト署名プロセスを自動的に処理することです。

SDK は、認証情報の検出、署名の作成、認証情報の更新を完全にバックグラウンドで管理するため、ユーザーはアプリケーションロジックに集中できます。

認証の設定

「AWS SDK およびツールリファレンスガイド」の「認証とアクセス」トピックでは、さまざまな認証アプローチについて説明しています。SDK が認証情報を取得できるように、手順に従って IAM アイデンティティセンターへのアクセスを設定することをお勧めします。

「AWS SDK およびツールリファレンスガイド」の手順を完了したら、SDK がリクエストに署名できるようにシステムが設定されます。

1. SDK のシングルサインオンアクセスの設定

SDK が IAM Identity Center 認証を使用するように「プログラムによるアクセス」セクションのステップ 2 を完了したら、システムに次の要素が含まれているはずです。

  • アプリケーションを実行する前に AWS アクセスポータルセッションを開始するために使用する AWS CLI。

  • デフォルトプロファイルを含む ~/.aws/config ファイル。SDK for Java は、リクエストを AWS に送信する前に、プロファイルの SSO トークンプロバイダー設定を使用して認証情報を取得します。IAM Identity Center 許可セットに接続された IAM ロールである sso_role_name 値により、アプリケーションで使用されている AWS のサービス にアクセスできます。

    次のサンプル config ファイルは、SSO トークンプロバイダー設定で設定されたデフォルトプロファイルを示しています。プロファイルの sso_session 設定は、指定された sso-session セクションを参照します。sso-session セクションには、AWS アクセスポータルセッションを開始するための設定が含まれています。

    [default] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = SampleRole region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://provided-domain.awsapps.com/start sso_registration_scopes = sso:account:access

SSO トークンプロバイダー設定で使用される設定の詳細については、「AWS SDKs and Tools リファレンスガイド」の「SSO token provider configuration」を参照してください。

開発環境が前述のようにプログラムによるアクセス用に設定されていない場合は、SDK リファレンスガイドのステップ 2 に従ってください。

2. AWS CLI を使用してサインインする

AWS のサービス にアクセスするアプリケーションを実行する前に、SDK が IAM Identity Center 認証を使用して認証情報を解決するためのアクティブな AWS アクセスポータルセッションが必要です。AWS アクセスポータルにサインインするには、AWS CLI で次のコマンドを実行します。

aws sso login

デフォルトのプロファイルを設定している場合は、--profile オプションを指定してコマンドを呼び出す必要はありません。SSO トークンプロバイダー設定で名前付きプロファイルを使用している場合、コマンドは aws sso login --profile named-profile です。

既にアクティブなセッションがあるかどうかをテストするには、次の AWS CLI コマンドを実行します。

aws sts get-caller-identity

このコマンドへの応答により、共有 config ファイルに設定されている IAM Identity Center アカウントとアクセス許可のセットが報告されます。

注記

既にアクティブな AWS アクセスポータルセッションがあって aws sso login を実行している場合は、認証情報を入力するように要求されません。

ただし、botocore に情報へのアクセス許可を求めるダイアログが表示されます。botocore は AWS CLI の基盤です。

AWS CLI および SDK for Java の情報へのアクセスを許可するには、[許可] を選択します。

追加認証オプション

プロファイルや環境変数の使用など、Tools for PowerShell の認証に関するその他のオプションについては、「AWS SDKs and Tools リファレンスガイド」の設定に関する章を参照してください。