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

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

を使用した一時的な認証情報の取得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. IAM 管理タスクを実行するアクセス権限を持つ IAM ユーザーとしてサインインします。"iam:*"アクティブ化する対象のアカウントAWS STSが新しいリージョンで利用可能になりました。

  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ユーザーガイド。

  3. STS クライアントで getSessionToken を呼び出して、GetSessionTokenRequest オブジェクトを使用してセッショントークンを取得します。

    GetSessionTokenResult session_token_result = sts_client.getSessionToken(session_token_request);
  4. 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ユーザーガイド: