IAMユーザーへ一時的権限付与する承認ワークフロー

2022年4月6日水曜日

AWS IAM SystemManager

t f B! P L

やりたいこと

一時的な特権がほしいIAMユーザーから承認者へ申請→承認→特権付与のワークフローを作成し、管理者作業を一部自動化します。

狙い

ワークフローを実装することで管理者の負担を軽減するのが狙いです。管理者のやることは申請を確認し、入力フォームに権限有効期間の指定、承認or拒否ボタンを押すだけです。特権付与の作業を自動化することで作業負担の軽減を行います。

概要

必要な要素

太文字は今回ハンズオンで設定する値となります。

  • IAMユーザー
    1. 申請者:Request_User
    2. 承認者:Approve_User
  • IAMロール
    1. 特権IAMロール:EC2_FullAccess_Role
      ※今回はEC2フルアクセス(特権は任意で決めてください)
    2. サービスIAMロール:ApproveWorkflow_ServiceRole
      SystemManager用のIAMロールを作成します。(詳細後述)
  • IAMポリシー
    1. Request_User_Policy
    2. Approve_User_Policy
    3. ServiceRole_Policy
  • SystemManager
    1. Automation ドキュメント:ApproveWorkflow_Automation_Document
  • SNS
    1. トピック:ApproveWorkflow_Topic

ワークフロー詳細

  1. 許可申請
    SystemManager Automationから特権付与申請。
  2. 申請関連
    1. 申請承認依頼
      申請を受けてAutomationで管理者へ承認依頼。
    2. サブスクライブ
      SNSトピックへサブスクライブ
  3. 通知メール
    承認依頼の通知メールを送信。
  4. 承認(or拒否)
    管理者が申請に対して、承認または拒否を実施。
  5. スイッチ権限の付与
    4.で承認された場合、スイッチ先の特権IAMロールへのアクセス権付与。
  6. スイッチ
    申請者が特権IAMロールにスイッチ。
  7. アクセス
    該当サービスへアクセス。

ハンズオン

それでは、ハンズオンです。

※資料にGoogleスライドを使用していますが、文字が見づらいため「︙」ボタンを押して「全画面表示に変更」で確認頂きたいと思います。Escで全画面表示解除です。

  1. IAMユーザー作成
    1. 申請者と承認者のIAMユーザーそれぞれ作成していきます。
      スライドは申請者の分だけ作成。承認者も同様の手順で実施してください。
    2. 申請者と承認者にそれぞれインラインポリシーを付与します。
      (補足)承認者を複数用意や使い回す場合はカスタム管理ポリシーで付与してください。今回は一人だけ用意するためインラインポリシーを作成しています。
      ①申請者
    3. ■ソースコード

      ②承認者
  2. IAMロール作成
    1. EC2の特権付与されたIAMロールを作成します。
    2. サービスIAMロールを作成します。
      SystemManager用のIAMロールを作成することで申請者にSystemManagerの承認権限やSNSへのサブスクライブ権限などを付与する必要がなくなり、最小限の権限でワークフローを作成できます。
  3. SNSトピック作成
    通知メール用のSNSトピックとサブスクライブを作成します。
  4. Automationドキュメント作成
    SystemManagerのAutomationドキュメントを作成します。
    ■ソースコード

    動作確認

    1. 申請者が特権を申請
      申請者のIAMユーザーにログインします。
      その後下記スライドのとおり実施。

    2. 承認者が申請メールを確認し、承認。
    3. スイッチロールでEC2へアクセス可能となっていることを確認
      再度申請者のIAMユーザーでログインします。
      (ログインしたままだと特権が適用される前の状態で作業することになるので承認後、ログアウトを実施してください。)


    ハンズオンは以上です。

    まとめ

    管理者が手動で特権権限を付与する必要がなく、入力フォームの必要事項を入力するだけで自動で申請者に対して特権を与えることができました。SysmtemManager Automationは各種サービスのAPIもサポートしているので様々なサービスの運用作業など自動化ができ、非常に便利です。
    運用作業を自動化したいといったニーズではSysmtemManager Automationは選択肢に入りそうです。

    また運用作業自動化の他選択肢としてStepFunctionsがあるので今後こちらもまとめてみたいと思います。

    以上です。

    参考記事

    1. IAMユーザーに特権を一時的に付与する簡易承認ワークフローをSystems Manager (Automation) で実装してみた 
    2. 委任管理者を使用して、オートメーションを実行する 

    使用サービス

    1. AWS Systems Managerオートメーション 
    2. IAM とは
    3. Amazon SNS とは

    このブログを検索

    プロフィール

    ミニマリストなエンジニア AWSエンジニアとして技術支援を行っています。 好きなAWSサービスはCloudFormation。 (2022/3)AWS11冠達成!

    人気の投稿

    アーカイブ

    QooQ