IAMロールと一時的認証情報を理解する

STSのロールセッションを、権限・期限・実際の主体まで含めて設計します。

この単元で学ぶこと

  • ロール利用の認証情報と権限を説明する
  • セッション時間と更新を判断する
  • EC2への委譲と監査を設計する

本文解説

1. セッションを作る AssumeRoleは一時的認証情報を返す操作です。ロール自体には標準的な長期パスワードやアクセスキーを付けません。アクセスキーID、秘密値、セッショントークンを使って以後の要求を行います。

2. 信頼と認可 誰が引き受けられるかは信頼ポリシー、引受け後の操作は権限ポリシーです。他アカウントの引受けでは呼出し側のAssumeRole許可も確認します。同一アカウントでは信頼ポリシーの直接付与等の評価があるため、全ケースで同じ許可配置が必須と一般化しません。

3. セッションの権限 セッションポリシーを渡すとロールのIDベース権限をさらに絞れます。資源側付与がない条件で、ロールはGetObjectだけなのにセッションへPutObjectを加えても、PutObjectが新たに許可されることはありません。

4. 有効期限 通常のAssumeRoleの要求時間は、対象ロールの最大セッション時間等に収めます。最大2時間に設定したロールへ4時間を要求すると失敗します。期限の長さと付与する操作の範囲は別の制御です。

5. ロールチェーン ロールAのセッションからロールBを引き受けるAPIのロールチェーンでは、最大1時間という制限を確認します。Bの最大設定が12時間でも、チェーンで12時間を要求できるわけではありません。1時間は3,600秒です。

6. 取得と更新 EC2のワークロードにはインスタンスプロファイルを通じてロールを関連付け、SDK等の認証情報プロバイダーで一時的認証情報を取得します。取得結果を固定値として保存すると期限切れに弱くなります。実際にどの認証情報が選ばれるかも確認します。

7. PassRoleの範囲 EC2等の対応サービスへロールを渡す権限がiam:PassRoleです。ユーザー自身のAssumeRoleと異なり、必要なサービス操作の権限も別に要ります。渡せるロールを広げすぎると強いロールをサービスへ渡す経路になるため、対象ARN等を限定します。

8. セッションを追う 監査ではCloudTrail等で実際のロールセッションを確認します。ロールARNとセッションARNを区別し、誰が引き受け何をしたかを追える設計にします。MFA条件を使う場合も、その引受け方式で条件を満たせるか確認します。

図解

ロールチェーンの時間制限
この図はAPIによるロールチェーンを扱います。

重要ポイント

  • 一時的認証情報はトークンを含む。
  • 最大設定とロールチェーン1時間は別制約。
  • PassRoleはサービスへ渡す権限。

間違えやすい点

  • ロール最大12時間ならチェーンも12時間使えると思う。
  • セッションポリシーでロールの許可を拡張する。
  • 一時情報を固定値として保存し続ける。

用語解説

ロールチェーン
ロールセッションの認証情報で別ロールを引き受けること。
インスタンスプロファイル
EC2へIAMロールを渡すために用いるコンテナ。
PassRole
対応AWSサービスへ使用するロールを渡す際の権限。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。