を使用した一時的な認証情報の取得AWS STS - AWS SDK for Java

-AWS SDK for Javaチームが採用していますソフトウェア開発エンジニアオープンソースソフトウェアとAWS開発者エクスペリエンス

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

を使用した一時的な認証情報の取得AWS STS

次を使用できます。AWS Security Token Service(AWS STS) を使用して、へのアクセスに使用できる一時的な限定権限認証情報を取得できます。AWSのサービス。

AWS STS の使用には 3 つのステップがあります。

  1. リージョンをアクティブ化する (オプション)。

  2. AWS STS から一時的なセキュリティ認証情報を取得する。

  3. 認証情報を使用して AWS リソースにアクセスします。

注記

リージョンのアクティブ化はオプションです。デフォルトでは、一時的なセキュリティ認証情報はグローバルエンドポイント sts.amazonaws.com から取得されます。ただし、最初のエンドポイントに対する AWS STS リクエストが失敗した場合に、レイテンシーを軽減し、追加のエンドポイントを使用してリクエストに冗長性を構築できるように、認証情報を使用するサービスやアプリケーションに近い場所に存在しているリージョンをアクティブ化できます。

(オプション) STS リージョンをアクティブ化して使用する

AWS STS に使用するリージョンをアクティブ化するには、AWS Management Console を使用してリージョンを選択し、アクティブ化します。

  1. 新しいリージョンで AWS STS をアクティブ化する対象のアカウントに対して、IAM 管理タスク "iam:*" を実行する許可を持つ IAM ユーザーとしてサインインします。

  2. IAM コンソールを開き、ナビゲーションペインで [Account Settings] をクリックします。

  3. [STS Regions] リストを展開し、使用するリージョンを見つけて、[Activate] をクリックします。

こうすることで、そのリージョンに関連付けられる STS エンドポイントに対して直接呼び出しができます。

注記

STS リージョンのアクティブ化の詳細と使用可能なAWS STSエンドポイント、「」を参照してくださいアクティブ化と無効化AWS STSでAWS リージョンのIAMユーザーガイド。

STS から一時的なセキュリティ認証情報を取得する

  1. AWSSecurityTokenServiceClient オブジェクトを作成します。

    AWSSecurityTokenService sts_client = new AWSSecurityTokenServiceClientBuilder().standard().withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("sts-endpoint.amazonaws.com", "signing-region")).build()

    引数 (AWSSecurityTokenService sts_client = new AWSSecurityTokenServiceClientBuilder().standard().build();) を指定せずにクライアントを作成する場合は、デフォルトの認証情報プロバイダチェーンを使用して認証情報が取得されます。必要に応じて特定の認証情報プロバイダーを指定できます。詳細については、「」を参照してください。提供AWSの認証情報AWS SDK for Java

  2. GetSessionTokenRequest オブジェクトを作成し、オプションで一時的な認証情報の有効期間を秒で設定します。

+

GetSessionTokenRequest session_token_request = new GetSessionTokenRequest(); session_token_request.setDurationSeconds(7200); // optional.

+

IAM ユーザーの一時的な認証情報の有効期間は 900 秒 (15 分) から 129600 秒 (36 時間) までの範囲で設定できます。期間を指定しない場合、デフォルトで 43200 秒 (12 時間) が使用されます。

+

ルート AWS アカウント の場合、一時的な認証情報の有効期間の範囲は 900 秒から 3600 秒まで指定できます。有効期間を指定しない場合のデフォルト値は 3600 秒 (1 時間) です。

+ 重要: それはそうだ強く推奨のセキュリティ上の観点から、IAM ユーザーを使用するのルートアカウントの代わりにAWSにアクセスする。詳細については、『』の「IAM ベストプラクティス」を参照してください。IAMユーザーガイド。STS クライアントで getSessionToken を呼び出して、GetSessionTokenRequest オブジェクトを使用してセッショントークンを取得します。

+

GetSessionTokenResult session_token_result = sts_client.getSessionToken(session_token_request);
  1. getSessionToken 呼び出しの結果を使用してセッション認証情報を取得します。

    Credentials session_creds = session_token_result.getCredentials();

セッション認証情報は、GetSessionTokenRequest オブジェクトによって指定された期間のみアクセスを提供します。認証情報の期限が切れると、もう一度 getSessionToken を呼び出して、AWS へのアクセスを継続するための新しいセッショントークンを取得する必要があります。

== 一時的な認証情報を使用して Amazon リソースにアクセスする

一時的な認証情報を取得すると、それを使用して AWS のサービス クライアントを初期化し、リソースを使用できます。方法は認証情報の明示的な指定で説明されています。

たとえば、一時的なサービス認証情報を使用して S3 クライアントを作成するには、次のように指定します。

BasicSessionCredentials sessionCredentials = new BasicSessionCredentials( session_creds.getAccessKeyId(), session_creds.getSecretAccessKey(), session_creds.getSessionToken()); AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)) .build();

これで、AmazonS3 オブジェクトを使用して Amazon S3 リクエストを実行できます。

== 詳細

AWS リソースにアクセスするための一時的なセキュリティ認証情報の使用方法の詳細については、IAM ユーザーガイドで以下のセクションを参照してください。