LayerX エンジニアブログ

LayerX の エンジニアブログです。

最小権限の原則に一歩近づく - Entra ID の "Just-in-time application access with PIM for Groups" 機能の紹介

LayerX Fintech事業部(※)の piroshi です。 ※三井物産デジタル・アセットマネジメント (MDM)に出向しています。

沖縄からリモートワークで働いており、蒸し暑い日が続いています。クーラーをつけないと寝苦しくなってきました。

ところでみなさん、特権 (ちから) が欲しいですか?ここでの権限はシステム上の各種権限です。私は小心者で、大きすぎる力は持ちたくない派です。特権をもっていると「オレは今、セキュリティリスクの塊だ...」と気になってしまい、輪をかけて夜も眠れません。

さて、Microsoft の IdP サービスである Entra ID には Privileged Identity Management (PIM) という特権管理機能があります。PIM により「必要最低限の権限」を「必要な期間」に限定して付与することが可能です。ユーザは特権へのエスカレーションを自らリクエストし、規定されたワークフローにのっとって特権が付与されます。

PIM はセキュリティリスクの軽減と利便性を両立する非常に嬉しい機能ですが、あくまで Entra ID 上の特権の管理に限られます。別のアプリケーション (例えば AWS など) にもこういう機能があったらいいな、と誰もが妄想したのではないでしょうか。

... はい!その妄想が現実になる「Just-in-time application access with PIM for Groups (グループの PIM を使用した Just-In-Time アプリケーション アクセス)」が 2024 年 3 月に GA されました!! これがいい感じだったので紹介させていただきます!!!

なお、PIM や Group for PIM の具体的な設定方法については詳しいブログが多いため、本記事では割愛しております mm

「Just-in-time application access with PIM for Groups」とは

リリース文を引用します。

AWS や GCP などの Microsoft 以外のアプリケーションへの Just-In-Time アクセスを提供します。 この機能は、グループの PIM とアプリケーションのプロビジョニングを統合することで、Microsoft 以外のアプリでロールへの Just-In-Time アクセスを要求する際に、アクティブ化時間を 40 分以上から約 2 分に短縮します。

補足を加えつつ説明すると

  • 前提
    • Entra ID と対象アプリケーション間でユーザ・グループのプロビジョニングが可能な状態である状態(SAML, SCIM)
    • アプリケーション側に、特権用グループをプロビジョニング済み
  • PIM for Groups によって、ユーザが Entra ID 上で当該グループへの所属をリクエスト・承認
  • アプリケーション側にもグループ所属が反映される (アプリケーション上で特権をゲット)

という流れです。

Entra ID の SCIM の実行は通常 40 分間隔(またはオンデマンドな手動実行)ですが、PIM for Groups が適用されたグループについては実行サイクルが短縮されることで、Just-in-time な特権付与が実現されています。

PIM でコントロール可能なスコープが拡張され、Entra ID で一元的に特権管理を運用できる世界に近づきました。素晴らしい。

利用シーンの実例

AWS で構築しているシステムのメンテナンスのために、メンバーから強い権限をもつ IAM Role の付与の相談を受けました。

  • メンバー < 今週の木・金で作業したいので、権限ください!
  • piroshi < (日をまたぐので勤務時間外も権限が付きっぱなしになるのが心配だな... あと金曜の作業後に権限を削除しなきゃ、何時に終わるんだろ...)
  • 神の声 < 「Just-in-time application access with PIM for Groups」があるじゃない?
  • piroshi < !!

ということで、30 分ほどで設定をしました。

PIM for Groups の設定

以下のドキュメントを参照しながら、特権用グループの作成・PIM for Group を設定して(1)、当該グループを AWS へプロビジョニングしました(2)。

  1. PIM でグループ用 PIM の設定を構成する - Microsoft Entra ID Governance | Microsoft Learn

  2. Tutorial: Configure AWS IAM Identity Center(successor to AWS single sign-On) for automatic user provisioning with Microsoft Entra ID - Microsoft Entra ID | Microsoft Learn

ここでは Entra ID で test-pim-for-groups-aws-admin というグループを作成・PIM for Gropus の設定をして、AWS へプロビジョニング後に AdministoratorAcess を割り当てています。

AWS > IAM Identity Center > Groups

PIM と同様に、エスカレーションが可能な期限や、エスカレーション時に求める認証の強度が設定できます。ここでフィッシング耐性の強い認証を強制しておきたいですね。

特権エスカレーションの条件を設定

2 のドキュメントに同期サイクルに関する仕様が記載されていました。

  • When a user activates their group membership in Microsoft Entra ID PIM:
    • The group membership is provisioned in 2 – 10 minutes. When there is a high rate of requests at one time, requests are throttled at a rate of five requests per 10 seconds.
    • For the first five users within a 10-second period activating their group membership for a specific application, group membership is provisioned in the application within 2-10 minutes.
    • For the sixth user and above within a 10-second period activating their group membership for a specific application, group membership is provisioned to the application in the next synchronization cycle. The synchronization cycle runs every 40 minutes. The throttling limits are per enterprise application.

PIM for Groups が適用されたグループへユーザが所属すると、通常は 2~10 分で状態がプロビジョニングされますが、所属ユーザが 5 人を超えると従来の同期サイクル (40 分毎) が適用されるようです。

グループのメンバーシップをアクティベートする

では、実際に PIM の画面から特権用グループへの所属をリクエストします。

Privileged Identity Management

しばらく待ってから AWS access portal 画面を確認すると、目的の権限セットが選択可能になっていました🎉

AWS access portal

ログ上では、グループの所属から 1 分以内にプロビジョニング処理が完了していました。ノーストレス。

また、任意のタイミングで 権限を Deactivate することもできます。グループから除外された後、こちらも 1 分ほどで AWS へのデプロビジョニングが実行されました。

My roles | Groups

実際に、メンテナンス作業を終えたメンバーは「作業が終わったので特権を無効化しておきました〜!」とセルフ対応してくれました。最高。

まとめ

Just-in-time application access with PIM for Groups によって、Entra ID 以外のアプリケーションに PIM による特権管理を拡張することが可能になりました。 「Entera ID と SAML/SCIM で連携しているアプリケーション」の制約はあるものの、「最小権限の原則」のもとセキュリティリスクを軽減できるとても嬉しい機能です。

System Administrator の皆さん、安心して眠れる夜に一歩近づきましたね。

Fintech 事業部(MDM)では、安心して眠れる夜を一緒につくっていくメンバーを募集しています。 興味を持っていただけた方、ぜひぜひお話できればと思います!

open.talentio.com

open.talentio.com