

# 一時的なセキュリティ認証情報をリクエストする
<a name="id_credentials_temp_request"></a>

一時的なセキュリティ認証情報をリクエストするには、AWS API で AWS Security Token Service (AWS STS) を使用できます。これには、AWS リソースへのアクセスを制御できる一時的セキュリティ認証情報を持つ、信頼されたユーザーを作成および提供するオペレーションが含まれます。の詳細については、「AWS STS」を参照してください。[IAM の一時的な認証情報](id_credentials_temp.md)ロールを引き受けることで一時的なセキュリティ認証情報をリクエストするための別の方法については、「[ロールを引き受けるための各種方法](id_roles_manage-assume.md)」を参照してください。

API オペレーションを呼び出すには、いずれかの [AWS SDK](https://aws.amazon.com/tools/) を使用することができます。SDK は、Java、.NET、Python、Ruby、Android、iOS など、さまざまなプログラミング言語や環境で使用できます。SDK は、リクエストへの暗号を使用した署名、必要に応じてリクエストの再試行、エラーレスポンスの処理などのタスクを処理します。また、[AWS Security Token Service API リファレンス](https://docs.aws.amazon.com/STS/latest/APIReference/) で説明されている AWS STS Query API を使用することもできます。最後に、AWS STS コマンドは [AWS Command Line Interface](https://aws.amazon.com/documentation/cli) および [AWS Tools for Windows PowerShell](https://aws.amazon.com/documentation/powershell) という 2 つのコマンドラインツールでサポートされています。

AWS STS API オペレーションは、アクセスキーペアやセキュリティトークンを含む一時的セキュリティ認証情報で新しいセッションを作成します。アクセスキーペアは、アクセスキー ID とシークレットキーで構成されます。ユーザー（またはユーザーが実行しているアプリケーション）はこれらの認証情報を使用して、リソースにアクセスできます。AWS STS API オペレーションを使用して、ロールセッションを作成し、プログラムでセッションポリシーとセッションタグを渡すことができます。結果として得られるセッションのアクセス許可は、ロールの ID ベースのポリシーとセッションポリシーの共通部分です。セッションポリシーの詳細については、「[セッションポリシー](access_policies.md#policies_session)」を参照してください。セッションタグの詳細については、「[AWS STS でセッションタグを渡します](id_session-tags.md)」を参照してください。

**注記**  
AWS STS API オペレーションから返されるセッショントークンのサイズは固定ではありません。最大サイズを仮定しないことを強くお勧めします。一般的なトークンのサイズは 4096 バイト未満ですが、変化する可能性があります。

## AWS リージョンでの AWS STS の使用
<a name="using_sts_regions"></a>

AWS STS API 呼び出しは、グローバルエンドポイントにも、リージョンのエンドポイントの 1 つに対しても送信できます。より近くのエンドポイントを選択した場合、レイテンシーを軽減し、API 呼び出しのパフォーマンスが向上します。また、元のエンドポイントとの通信ができなくなった場合は、代替リージョンのエンドポイントに呼び出しを送信することもできます。各種 AWS SDK の 1 つを使用している場合、API コールを行う前に SDK メソッドを使用してリージョンを選択します。手動で HTTP API リクエストを組み立てる場合、独自で正しいエンドポイントにリクエストを送信する必要があります。詳細については、[*リージョンとエンドポイント*の「AWS STS 」セクション](https://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region)および「[AWS リージョン で AWS STS を管理する](id_credentials_temp_enable-regions.md)」 を参照してください。

AWS 環境およびアプリケーションで使用する一時的な認証情報の取得に使用できる API オペレーションを、次に示します。

## カスタム ID ブローカーを介したクロスアカウントの委任とフェデレーションの認証情報のリクエスト
<a name="api_assumerole"></a>

この [https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html) API オペレーションは、既存の IAM ユーザーに、まだアクセスできない AWS リソースへのアクセスを許可する際に役立ちます。例えば、ユーザーが別の AWS アカウント のリソースにアクセスする必要がある場合があります。また、特権アクセスを一時的に得るための方法 ( 多要素認証 (MFA) など) としても役立ちます。アクティブなユーザーの認証情報を使用してこの API を呼び出す必要があります。誰がこの操作を呼び出すことができるのかについては、[AWS STS 認証情報を比較する](id_credentials_sts-comparison.md) を参照してください。詳細については、「[IAM ユーザーにアクセス許可を付与するロールを作成する](id_roles_create_for-user.md)」および「[MFA を使用した安全な API アクセス](id_credentials_mfa_configure-api-require.md)」を参照してください。

**カスタム ID ブローカーを通じてクロスアカウント委任とフェデレーションの一時的なセキュリティ認証情報をリクエストするには**

1. AWS セキュリティ認証情報を使用して認証します。この呼び出しは、有効な AWS セキュリティ認証情報を使用して実行される必要があります。

1. [https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html) 操作を呼び出します。

以下の例は、`AssumeRole` を使用したリクエストと応答のサンプルを示します。このサンプルリクエストは、含まれている[セッションポリシー](access_policies.md#policies_session)、[セッションタグ](id_session-tags.md)、[外部 ID](id_roles_common-scenarios_third-party.md)、および[ソース ID](id_credentials_temp_control-access_monitor.md) を使用して、指定された期間の `demo` ロールを引き受けます。結果のセッションには `John-session` という名前が付けられます。

**Example リクエスト例**  

```
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=AssumeRole
&RoleSessionName=John-session
&RoleArn=arn:aws::iam::123456789012:role/demo
&Policy=%7B%22Version%22%3A%222012-10-17		 	 	 %22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A%20%22Stmt1%22%2C%22Effect%22%3A%20%22Allow%22%2C%22Action%22%3A%20%22s3%3A*%22%2C%22Resource%22%3A%20%22*%22%7D%5D%7D
&DurationSeconds=1800
&Tags.member.1.Key=Project
&Tags.member.1.Value=Pegasus
&Tags.member.2.Key=Cost-Center
&Tags.member.2.Value=12345
&ExternalId=123ABC
&SourceIdentity=DevUser123
&AUTHPARAMS
```

上記の例に示すポリシーの値は、次のポリシーの URL エンコードされたバージョンです。

------
#### [ JSON ]

****  

```
{"Version":"2012-10-17",		 	 	 "Statement":[{"Sid":"Stmt1","Effect":"Allow","Action":"s3:*","Resource":"*"}]}
```

------

この例の `AUTHPARAMS` パラメータは *署名*のプレースホルダーです。署名は AWS HTTP API リクエストに含める必要がある認証情報です。[AWS SDK](https://aws.amazon.com/tools/) を使用して API リクエストを作成することをお勧めします。その利点の 1 つは、SDK がリクエストの署名を処理することです。API リクエストを手動で作成し、署名する必要がある場合は、[Amazon Web Services 全般のリファレンス] の「[署名バージョン 4 を使用して AWS リクエストに署名する](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html)」を参照してリクエストに署名する方法を確認してください。

一時的セキュリティ認証情報に加えて、レスポンスにはフェデレーティッドユーザーの Amazon リソースネーム（ARN）、および認証情報の有効期限が含まれています。

**Example レスポンスの例**  

```
<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleResult>
<SourceIdentity>DevUser123</SourceIdentity>
<Credentials>
  <SessionToken>
   AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
   LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
   QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
   9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
   +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
  </SessionToken>
  <SecretAccessKey>
   wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
  </SecretAccessKey>
  <Expiration>2019-07-15T23:28:33.359Z</Expiration>
  <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId>
</Credentials>
<AssumedRoleUser>
  <Arn>arn:aws:sts::123456789012:assumed-role/demo/John</Arn>
  <AssumedRoleId>ARO123EXAMPLE123:John</AssumedRoleId>
</AssumedRoleUser>
<PackedPolicySize>8</PackedPolicySize>
</AssumeRoleResult>
<ResponseMetadata>
<RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId>
</ResponseMetadata>
</AssumeRoleResponse>
```

**注記**  
AWS 変換では、渡されたセッションポリシーとセッションタグが、個別の制限を持つひとまとめのバイナリ形式に圧縮されます。プレーンテキストが他の要件を満たしていても、この制限ではリクエストが失敗する可能性があります。`PackedPolicySize` レスポンス要素は、リクエストのポリシーとタグがサイズ制限にどの程度近づいているかをパーセントで示します。

## OIDC プロバイダーを通じた認証情報のリクエスト
<a name="api_assumerolewithwebidentity"></a>

[https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) API オペレーションは、JSON ウェブトークン (JWT) と引き換えに一時的な AWS セキュリティ認証情報のセットを返します。これには、Login with Amazon、Facebook、Google などのパブリック ID プロバイダー、および GitHub アクションや Azure Devops などの OpenID Connect (OIDC) 検出と互換性のある JWTs を発行するプロバイダーが含まれます。詳細については、「[OIDC フェデレーション](id_roles_providers_oidc.md)」を参照してください。

**注記**  
`AssumeRoleWithWebIdentity` リクエストは で署名されていないため、AWS 認証情報は必要ありません。

**OIDC プロバイダーを通じた認証情報のリクエスト**

1. [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) 操作を呼び出します。

   を呼び出すと`AssumeRoleWithWebIdentity`、 は IdP の JSON ウェブキーセット (JWKS) で利用可能になったパブリックキーを使用してデジタル署名を検証することで、提示されたトークンAWSを検証します。トークンが有効で、IAM ロールの信頼ポリシーに規定されたすべての条件が満たされている場合、AWS は次の情報を返します。
   + 一時的なセキュリティ認証情報一式。一時的なセキュリティ認証情報は、アクセスキー ID、シークレットアクセスキー、およびセッショントークンで構成されています。
   + 引き受けたロールのロール ID と ARN。
   + 一意のユーザー ID を含む `SubjectFromWebIdentityToken` 値。

1. アプリケーションは、レスポンスで返された一時的なセキュリティ認証情報を使用して AWS APIコールを行うことができます。これは、長期的なセキュリティ認証情報を使用して AWS API 呼び出しを行うのと同じ処理です。異なる点は、AWS で一時的なセキュリティ認証情報が有効であることを確認できる、セッショントークンを含める必要があることです。

アプリケーションは、AWS STS が返した認証情報をキャッシュし、必要に応じて更新する必要があります。アプリケーションが AWS SDK を使用して構築されている場合、SDK には、有効期限が切れる前に `AssumeRoleWithWebIdentity` の呼び出しと AWS 認証情報の更新を処理できる認証情報プロバイダーがあります。詳細については、「*AWS SDKs および ツールリファレンスガイド*」の「[AWS SDKs および Tools 標準化された認証情報プロバイダー](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)」を参照してください。

## SAML 2.0 ID プロバイダーを通じた認証情報のリクエスト
<a name="api_assumerolewithsaml"></a>

[https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) API オペレーションでは、組織の既存の ID システムによって認証された SAML フェデレーティッドプリンシパルに一連の一時的なセキュリティ認証情報が返されます。また、ユーザーは [SAML](https://www.oasis-open.org/standards#samlv2.0)2.0 (Security Assertion Markup Language) を使用して AWS に認証および認可情報を渡す必要があります。この API オペレーションは、SAML アサーションを生成できるソフトウェアに認証システム (Windows Active Directory、OpenLDAP など) を統合している組織で役立ちます。このような統合はユーザー ID とアクセス許可に関する情報を提供します (Active Directory Federation Services や Shibboleth など)。詳細については、「[SAML 2.0 フェデレーション](id_roles_providers_saml.md)」を参照してください。

1. [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) 操作を呼び出します。

   これは署名なしの呼び出しです。つまり、リクエストを実行する前に AWS セキュリティ認証情報を認証する必要はありません。
**注記**  
`AssumeRoleWithSAML` に対する呼び出しは署名 (暗号化) されていません。そのため、信頼されている経路を通じてリクエストが送信される場合のみ、オプションのセッションポリシーを含める必要があります。そうでない場合、他のユーザーが制限を削除するようにポリシーを変更できます。

1. `AssumeRoleWithSAML` を呼び出すときに、AWS は SAML アサーションの信頼性を確認します。ID プロバイダーがアサーションを確認した場合、AWS は次の情報を返します。
   + 一時的なセキュリティ認証情報一式。一時的なセキュリティ認証情報は、アクセスキー ID、シークレットアクセスキー、およびセッショントークンで構成されています。
   + 引き受けたロールのロール ID と ARN。
   + SAML アサーションの `Audience` 要素の `Recipient` 属性値を含む `SubjectConfirmationData` 値。
   + SAML アサーションの `Issuer` 要素の値を含む `Issuer` 値。
   + `Issuer` 値、AWS アカウント ID、SAML プロバイダーのフレンドリ名から構築されたハッシュ値を含む `NameQualifier` 要素。`Subject` 要素と組み合わせると、SAML フェデレーティッドプリンシパルを一意に特定できます。
   + SAML アサーションの `Subject` 要素内の `NameID` 要素の値を含む `Subject` 要素。
   + `SubjectType` 要素の形式を示す `Subject` 要素。値は、`persistent`、`transient`、または SAML アサーションで使用されている `Format` および `Subject` 要素の完全な `NameID` URI とすることができます。`NameID` 要素の `Format` 属性の詳細については、「[認証レスポンス用の SAML アサーションを設定する](id_roles_providers_create_saml_assertions.md)」を参照してください。

1. レスポンスで返された一時的なセキュリティ認証情報を使用して AWS API コールを実行します。これは、長期的なセキュリティ認証情報を使用して AWS API 呼び出しを行うのと同じ処理です。異なる点は、AWS で一時的なセキュリティ認証情報が有効であることを確認できる、セッショントークンを含める必要があることです。

アプリで認証情報をキャッシュする必要があります。認証情報はデフォルトで 1 時間後に無効になります。[ SDK の ](https://aws.amazon.com/blogs/mobile/using-the-amazoncredentialsprovider-protocol-in-the-aws-sdk-for-ios)AmazonSTSCredentialsProviderAWS アクションを使用していない場合、再度 `AssumeRoleWithSAML` を呼び出すかどうかはお客様およびお客様のアプリによります。古い認証情報が失効する前に、このオペレーションを呼び出して新しい一時的なセキュリティ認証情報を取得します。

## カスタム ID ブローカーを通じた認証情報のリクエスト
<a name="api_getfederationtoken"></a>

[https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) API オペレーションでは、AWS STS フェデレーションユーザーのプリンシパルに一連の一時的なセキュリティ認証情報が返されます。この API は、デフォルトの有効期限が大幅に長い (1 時間ではなく 12 時間) という点で `AssumeRole` とは異なります。また、`DurationSeconds` パラメータを使用して、一時的なセキュリティ認証情報が有効である期間を選択することもできます。結果として得られる認証情報は、900 秒 (15 分) から 129,600 秒 (36 時間) までの指定された期間内で有効です。有効期限を長くすると、新しい認証情報を頻繁に取得する必要がなくなるため、AWS への呼び出し回数を減少させることができます。

1. 特定の IAM ユーザーの AWS セキュリティ認証情報を使用して認証します。この呼び出しは、有効な AWS セキュリティ認証情報を使用して実行される必要があります。

1. [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 操作を呼び出します。

`GetFederationToken` 呼び出しは、セッショントークン、アクセスキー、シークレットキー、失効情報で構成される一時的セキュリティ認証情報を返します。組織内でアクセス権限を管理する (たとえば、プロキシアプリケーションを使用してアクセス権限を割り当てる) 場合、`GetFederationToken` を使用できます。

以下の例に、`GetFederationToken` を使用したリクエストと応答のサンプルを示します。このリクエスト例では、指定された期間の呼び出し元ユーザーを[セッションポリシー](access_policies.md#policies_session) ARN および[セッションタグ](id_session-tags.md)とフェデレートします。結果のセッションには `Jane-session` という名前が付けられます。

**Example リクエスト例**  

```
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=GetFederationToken
&Name=Jane-session
&PolicyArns.member.1.arn==arn%3Aaws%3Aiam%3A%3A123456789012%3Apolicy%2FRole1policy
&DurationSeconds=1800
&Tags.member.1.Key=Project
&Tags.member.1.Value=Pegasus
&Tags.member.2.Key=Cost-Center
&Tags.member.2.Value=12345
&AUTHPARAMS
```

前述の例に示すポリシー ARN には、次の URL エンコードされた ARN が含まれています。

`arn:aws:iam::123456789012:policy/Role1policy`

また、例の `&AUTHPARAMS` パラメータは、認証情報のプレースホルダーとして使用されることに注意してください。これは、*署名*であり、AWS HTTP API リクエストに含める必要があります。[AWS SDK](https://aws.amazon.com/tools/) を使用して API リクエストを作成することをお勧めします。その利点の 1 つは、SDK がリクエストの署名を処理することです。API リクエストを手動で作成し、署名する必要がある場合は、「Amazon Web Services 全般のリファレンス」の「[署名バージョン 4 を使用して AWS リクエストに署名する](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html)」を参照してリクエストに署名する方法を確認してください。

一時的セキュリティ認証情報に加えて、レスポンスにはフェデレーティッドユーザーの Amazon リソースネーム（ARN）、および認証情報の有効期限が含まれています。

**Example レスポンスの例**  

```
<GetFederationTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<GetFederationTokenResult>
<Credentials>
  <SessionToken>
   AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
   LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
   QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
   9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
   +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCEXAMPLE==
  </SessionToken>
  <SecretAccessKey>
  wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
  </SecretAccessKey>
  <Expiration>2019-04-15T23:28:33.359Z</Expiration>
  <AccessKeyId>AKIAIOSFODNN7EXAMPLE;</AccessKeyId>
</Credentials>
<FederatedUser>
  <Arn>arn:aws:sts::123456789012:federated-user/Jean</Arn>
  <FederatedUserId>123456789012:Jean</FederatedUserId>
</FederatedUser>
<PackedPolicySize>4</PackedPolicySize>
</GetFederationTokenResult>
<ResponseMetadata>
<RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId>
</ResponseMetadata>
</GetFederationTokenResponse>
```

**注記**  
AWS 変換では、渡されたセッションポリシーとセッションタグが、個別の制限を持つひとまとめのバイナリ形式に圧縮されます。プレーンテキストが他の要件を満たしていても、この制限ではリクエストが失敗する可能性があります。`PackedPolicySize` レスポンス要素は、リクエストのポリシーとタグがサイズ制限にどの程度近づいているかをパーセントで示します。

AWS ではリソースレベルでアクセス許可を付与する（たとえば、Amazon S3 バケットにリソースベースのポリシーをアタッチする）ことを推奨しています。`Policy` パラメータは省略できます。ただし、AWS STS フェデレーションユーザーのプリンシパルにポリシーを含まない場合、一時的なセキュリティ認証情報によってアクセス権限が付与されません。この場合、リソースポリシーを使用してフェデレーティッドユーザーに AWS リソースへのアクセスを許可する*必要があります*。

例えば、AWS アカウント 番号が 111122223333 であり、Susan にアクセスを許可しようとしている Amazon S3 バケットがあるとします。Susan の一時的セキュリティ認証情報にはバケットのポリシーが含まれていません。この場合、Susan の ARN (`arn:aws:sts::111122223333:federated-user/Susan` など) と一致する ARN があるポリシーがバケットにあるようにする必要があります。

## 信頼されていない環境でのユーザーの認証情報のリクエスト
<a name="api_getsessiontoken"></a>

この [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) API オペレーションでは、既存の IAM ユーザーに一時的セキュリティ認証情報のセットが返ります。この API は、MFA が IAM ユーザーに対して有効なときに AWS リクエストを作成するなど、セキュリティを強化するために役立ちます。認証情報は一時的なものであるため、安全性の低い環境からリソースにアクセスする IAM ユーザーがいる場合、これによりセキュリティが強化されます。安全性の低い環境の例には、モバイルデバイスやウェブブラウザが含まれます。

1. 特定の IAM ユーザーの AWS セキュリティ認証情報を使用して認証します。この呼び出しは、有効な AWS セキュリティ認証情報を使用して実行される必要があります。

1. [https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetSessionToken.html) 操作を呼び出します。

1. `GetSessionToken` は、セッショントークン、アクセスキー ID、およびシークレットアクセスキーから構成される一時的なセキュリティ認証情報を返します。

デフォルトでは、IAM ユーザーの一時的なセキュリティ認証情報は、最大 12 時間有効です。ただし、`DurationSeconds` パラメータを使用して最短 15 分、最長 36 時間の有効期間をリクエストできます。セキュリティ上の理由から、AWS アカウントのルートユーザー のトークンは有効期間が 1 時間に制限されます。

以下の例は、`GetSessionToken` を使用したリクエストと応答のサンプルを示します。レスポンスには、一時的なセキュリティ認証情報の有効期限も含んでいます。

**Example リクエスト例**  

```
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=GetSessionToken
&DurationSeconds=1800
&AUTHPARAMS
```

この例の `AUTHPARAMS` パラメータは *署名*のプレースホルダーです。署名は AWS HTTP API リクエストに含める必要がある認証情報です。[AWS SDK](https://aws.amazon.com/tools/) を使用して API リクエストを作成することをお勧めします。その利点の 1 つは、SDK がリクエストの署名を処理することです。API リクエストを手動で作成し、署名する必要がある場合は、「*Amazon Web Services 全般のリファレンス*」の「[署名バージョン 4 を使用して AWS リクエストに署名する](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html)」を参照してリクエストに署名する方法を確認してください。

**Example レスポンスの例**  

```
<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<GetSessionTokenResult>
<Credentials>
  <SessionToken>
   AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L
   To6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3z
   rkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtp
   Z3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE
  </SessionToken>
  <SecretAccessKey>
  wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY
  </SecretAccessKey>
  <Expiration>2011-07-11T19:55:29.611Z</Expiration>
  <AccessKeyId>AKIAIOSFODNN7EXAMPLE</AccessKeyId>
</Credentials>
</GetSessionTokenResult>
<ResponseMetadata>
<RequestId>58c5dbae-abef-11e0-8cfe-09039844ac7d</RequestId>
</ResponseMetadata>
</GetSessionTokenResponse>
```

オプションで、`GetSessionToken` リクエストに、AWS の多要素認証 (MFA) で確認する `SerialNumber` および `TokenCode` 値を含めることができます。指定された値が有効であれば、AWS STS は、MFA 認証の状態を含む一時的なセキュリティ認証情報を提供します。この一時的セキュリティ認証情報を使用して、MFA で保護された API オペレーションまたは AWS ウェブサイトに、MFA 認証が有効である限りアクセスできます。

以下の例は、MFA 認証コードとデバイスのシリアルナンバーを含む `GetSessionToken` リクエストを示しています。

```
https://sts.amazonaws.com/
?Version=2011-06-15
&Action=GetSessionToken
&DurationSeconds=7200
&SerialNumber=YourMFADeviceSerialNumber
&TokenCode=123456
&AUTHPARAMS
```

**注記**  
AWS STS の呼び出しは、グローバルエンドポイントまたは AWS アカウント をアクティブ化しているリージョンのエンドポイントに対して行えます。詳細については、[*リージョンとエンドポイント*の「AWS STS」セクション](https://docs.aws.amazon.com/general/latest/gr/rande.html#sts_region)を参照してください。  
この例の `AUTHPARAMS` パラメータは *署名*のプレースホルダーです。署名は AWS HTTP API リクエストに含める必要がある認証情報です。[AWS SDK](https://aws.amazon.com/tools/) を使用して API リクエストを作成することをお勧めします。その利点の 1 つは、SDK がリクエストの署名を処理することです。API リクエストを手動で作成し、署名する必要がある場合は、[Amazon Web Services 全般のリファレンス] の「[署名バージョン 4 を使用して AWS リクエストに署名する](https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html)」を参照してリクエストに署名する方法を確認してください。