AWS SDK または CLI GetSessionTokenで使用する - AWS SDKコードの例

Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK

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

AWS SDK または CLI GetSessionTokenで使用する

以下のコード例は、GetSessionToken の使用方法を示しています。

アクション例は、より大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。次のコード例で、このアクションのコンテキストを確認できます。

CLI
AWS CLI

IAM ID の短期認証情報を取得するには

次のget-session-tokenコマンドは、呼び出しを行う IAM ID の短期認証情報のセットを取得します。生成された認証情報は、ポリシーで多要素認証 (MFA) が必要なリクエストに使用できます。認証情報は生成されてから 15 分後に失効します。

aws sts get-session-token \ --duration-seconds 900 \ --serial-number "YourMFADeviceSerialNumber" \ --token-code 123456

出力:

{ "Credentials": { "AccessKeyId": "ASIAIOSFODNN7EXAMPLE", "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", "SessionToken": "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE", "Expiration": "2020-05-19T18:06:10+00:00" } }

詳細については、AWS IAM ユーザーガイド「一時的なセキュリティ認証情報のリクエスト」を参照してください。

  • API の詳細については、AWS CLI 「 コマンドリファレンス」のGetSessionToken」を参照してください。

PowerShell
ツール for PowerShell

例 1: 一定期間有効な一時的な認証情報を含む Amazon.RuntimeAWSCredentials インスタンスを返します。一時的な認証情報をリクエストするために使用される認証情報は、現在のシェルのデフォルトから推測されます。他の認証情報を指定するには、-ProfileName パラメータまたは -AccessKey/-SecretKey パラメータを使用します。

Get-STSSessionToken

出力:

AccessKeyId Expiration SecretAccessKey SessionToken ----------- ---------- --------------- ------------ EXAMPLEACCESSKEYID 2/16/2015 9:12:28 PM examplesecretaccesskey... SamPleTokeN.....

例 2: 1 時間有効な一時的な認証情報を含む Amazon.RuntimeAWSCredentials インスタンスを返します。リクエストを行うために使用される認証情報は、指定されたプロファイルから取得されます。

Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile

出力:

AccessKeyId Expiration SecretAccessKey SessionToken ----------- ---------- --------------- ------------ EXAMPLEACCESSKEYID 2/16/2015 9:12:28 PM examplesecretaccesskey... SamPleTokeN.....

例 3: プロファイル 'myprofilename' で認証情報が指定されているアカウントに関連付けられた MFA デバイスの識別番号と、デバイスによって提供される値を使用して、1 時間有効な一時的な認証情報を含むAmazon.RuntimeAWSCredentialsインスタンスを返します。

Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile -SerialNumber YourMFADeviceSerialNumber -TokenCode 123456

出力:

AccessKeyId Expiration SecretAccessKey SessionToken ----------- ---------- --------------- ------------ EXAMPLEACCESSKEYID 2/16/2015 9:12:28 PM examplesecretaccesskey... SamPleTokeN.....
  • APIの詳細については、「コマンドレットリファレンス」のGetSessionToken」を参照してください。 AWS Tools for PowerShell

Python
Python 用 SDK (Boto3)
注記

GitHub には他にもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

MFA トークンを渡してセッショントークンを取得し、それを使用してアカウントの Amazon S3 バケットを一覧表示します。

def list_buckets_with_session_token_with_mfa(mfa_serial_number, mfa_totp, sts_client): """ Gets a session token with MFA credentials and uses the temporary session credentials to list Amazon S3 buckets. Requires an MFA device serial number and token. :param mfa_serial_number: The serial number of the MFA device. For a virtual MFA device, this is an Amazon Resource Name (ARN). :param mfa_totp: A time-based, one-time password issued by the MFA device. :param sts_client: A Boto3 STS instance that has permission to assume the role. """ if mfa_serial_number is not None: response = sts_client.get_session_token( SerialNumber=mfa_serial_number, TokenCode=mfa_totp ) else: response = sts_client.get_session_token() temp_credentials = response["Credentials"] s3_resource = boto3.resource( "s3", aws_access_key_id=temp_credentials["AccessKeyId"], aws_secret_access_key=temp_credentials["SecretAccessKey"], aws_session_token=temp_credentials["SessionToken"], ) print(f"Buckets for the account:") for bucket in s3_resource.buckets.all(): print(bucket.name)
  • API の詳細については、GetSessionToken for Python (Boto3) Word リファレンス」を参照してください。 AWS SDK API