Servisphere
AWS Security Token Service (STS) のアイコン(AWS Architecture Icons)

AWS Security Token Service (STS)

一時的な credential の発行

AssumeRole、AssumeRoleWithWebIdentity、GetSessionToken などの API を通じて一時的な credential(access key、secret、有効期限付きの session token)を発行し、長期の key を使わずに AWS にアクセスできるようにします。

  • コスト$ 安い
  • 難易度●●●●●
  • 未使用でも課金?いいえ
  • サーバーレス
  • 出題試験SAA · DVA · SOA

範囲: Global(Regional endpoint の利用を推奨)

STS をマップで開く →
たとえるなら当日限り有効で、時間が過ぎると自動的に無効になるゲストパスのようなものです。

いつ使う?

✓ 使うべき場面

クロスアカウントアクセス、フェデレーション、または短期の credential が必要なアプリケーション。

✗ 避けるべき場面

サードパーティのパスワードや API key の保管 → Secrets Manager。

よくある使い方

  • 別アカウントへの AssumeRole
  • SAML/OIDC IdP からのフェデレーション
  • 機密性の高い操作への MFA の強制

料金はいくら?

  • 課金方式: 無料です。

料金は us-east-1 の参考値(2026年10月14日 更新)で、変更されている可能性があります。必ず AWS の料金ページでご確認ください。

💡 試験のコツ

「長期アクセスキーを使わないクロスアカウントアクセス」なら IAM ロールと STS AssumeRole、「企業 IdP (SAML) のユーザーが AWS にサインイン」ならフェデレーション (AssumeRoleWithSAML)、「モバイルアプリで Google/Facebook ログイン後に AWS を呼ぶ」なら Cognito を選びます。

よくある質問

IAM ユーザーのアクセスキーではなく STS の一時的な認証情報を使うのはなぜですか?

一時的な認証情報は自動的に失効するため、漏えいしても被害が限定されます。長期のアクセスキーは誰かが削除するまで有効です。そのため AWS 上のアプリケーションには IAM ロールを使い (EC2、Lambda、ECS などは STS 経由で自動的に認証情報を取得します)、人はフェデレーションや IAM Identity Center でサインインします。

AssumeRole はいつ使い、何を設定しますか?

AssumeRole は、ユーザーやサービスが別のロールの権限を引き受けるための操作で、最も一般的なのはクロスアカウントアクセスです。両側の設定が必要で、ロールの信頼ポリシーで呼び出し元を許可し、呼び出し元の ID ポリシーで sts:AssumeRole を許可します。組織外のサードパーティには、confused deputy 問題を避けるため external ID も使います。

STS は外部 ID とのフェデレーションをどうサポートしますか?

AssumeRoleWithSAML は企業の IdP (SAML 経由の Active Directory など) 向け、AssumeRoleWithWebIdentity は Google や Facebook などの Web ID ログイン向けです。Web やモバイルアプリでは、直接呼び出すより Amazon Cognito の利用が推奨されます。いずれも有効期限付きの一時的な認証情報を返します。

関連サービス

SAA-C03 対策

STS は次の対策モジュールで扱っています:

STS をマップで開く →