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条件を使う場合も、その引受け方式で条件を満たせるか確認します。
図解
重要ポイント
- 一時的認証情報はトークンを含む。
- 最大設定とロールチェーン1時間は別制約。
- PassRoleはサービスへ渡す権限。
間違えやすい点
- ロール最大12時間ならチェーンも12時間使えると思う。
- セッションポリシーでロールの許可を拡張する。
- 一時情報を固定値として保存し続ける。
用語解説
- ロールチェーン
- ロールセッションの認証情報で別ロールを引き受けること。
- インスタンスプロファイル
- EC2へIAMロールを渡すために用いるコンテナ。
- PassRole
- 対応AWSサービスへ使用するロールを渡す際の権限。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
- https://docs.aws.amazon.com/aws-certification/latest/solutions-architect-associate-03/solutions-architect-associate-03.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
- https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html
確認問題の出題・採点や学習履歴の保存にはログインが必要です。