Microsoft EntraIDのPIMでの特権管理を、他SaaSも含めてやってみた
はじめに
こんにちは、竹谷です。
Rehab for JAPANで、情報システムチームとしてコーポレートIT業務を行っています。
今日は、様々な業務サービスを管理するコーポレートIT共通の悩みの一つ、特権の取り扱いについて、Microsoft Entra IDのPIMを利用した管理方法を紹介してみたいと思います。
対象読者 (ターゲット)
- Entra IDを使っている組織の方
- Entra ID(Microsoft365)以外のSaaSも特権管理をしたい方
なんで特権管理が必要なの?
一言で言うと 危ないから につきます。
情報セキュリティの考え方の一つに、「最小権限の原則」というものがあります。
これは、権限を必要とするユーザーに対して、本当に必要な最小限の権限だけを与える事を意味しています。
つまり、「必要な人」に「必要な権限」を「必要な期間」与えたいわけですね。
この特権管理を行うことで、誤操作や不正アクセス、過剰な権限の悪用や内部不正等のリスクを最小限に抑えることができ、組織のセキュリティが向上します。
コーポレートITや情報システムと呼ばれる人たちは、その業務の特性上多くのシステムにおいて特権を持っています。
もちろん業務上必要な権限なので、持っている事自体は良いのですが、同時に情報セキュリティ上のリスクも抱えている構図になっています。
適切な権限管理を行うことで、このリスクが低減し、組織にとってもコーポレートITにとっても安心できる状況に近づける事ができるはずです。
あ、そもそも特権自体を集約管理できてないと、管理も成り立ちません。
ありがちな特権分散状態(だれもかれもがadmin持ってる、偉い人がadmin持ってる、在籍歴の古い人がadmin持ってる等、、、)があるなら、まずはそっちをなんとかしましょう。
特権管理へのアプローチ
まず、特権管理がどうあるべきか確認してみます。
一例として、Googleはこう言っています。
- 管理者アカウントをユーザー間で共有しない
- 日常業務に特権管理者アカウントを使用しない
- 管理者の日常業務には特権管理者以外のアカウントを使用する
- 特権管理者は、アカウントに少なくとも 1 人必要ですが、2 人以上にすることをおすすめします。
(管理者アカウントのセキュリティに関するおすすめの方法)
(既定の管理者ロール)
また、Microsoftはこう言っています。
- 重大な影響がある管理者の数を最小限にする
- 管理者用のアカウントを分離する
- 継続的なアクセスを付与しない
似たようなことを言っていますね。
これらの内容を踏まえて、今回、主に2つのアプローチを併用して特権を安全に扱える環境を作ろうと考えました。
アプローチその1) アカウント分離
我々コーポレートITのメンバーも一従業員として、管理者業務以外の日常業務を行っています。
それら日常業務と、特権を利用する管理業務とで、別のアカウントを利用するようにします。
つまり、一人の人間が2つ(場合によってはそれ以上)のアカウントを持ち、使い分けています。
特権用アカウントには管理者特権を付与し、一方で日常業務用のアカウントは、他のメンバと同様の通常権限のみとしています。
アプローチその2) 特権の時限付与
アカウントを分離しても、特権用アカウントは常に特権を振るう力があります。
パスワードやMFAで保護しているものの、何らかの理由でこのアカウントが侵害されるとリスクが大きいです。
そこでPIMを利用して、必要なときだけ特権を利用できるようにしたいと思います。
PIMって何?
正式には、Microsoft Entra Privileged Identity Management という名前です(長い)
Entra IDの機能の一つで、特権を付与したり剥奪したり、時限的に扱ったりすることが出来ます。
PIM自体は、Microsoftのサービスの一つなので、管理対象もMicrosoft Entra ID Azure Microsoft 365や、Microsoft Intuneなど、Microsoftの各種リソースになります。
Microsoft Entra Privileged Identity Management とは
何をしてくれるのか?
Entra ID上のアカウントに対して、Entra IDの特権ロールを柔軟に割り当てたり剥奪したりしてくれます。
Just-In-Timeの管理が可能となっており、特権が割り当てっぱなしになったりせず、必要なときに必要な範囲だけ特権利用することが可能です。
他にも、申請・承認フローが利用できたり、特権利用の理由を記録するなども可能です。
権限を管理する(Entra ID Role編)
ここからは、実際の利用方法を記します。
まずは、Entra IDの特権(ロール)を管理してみます。
グループを利用する例で行いますが、ユーザー単位で直接管理することも可能です。
また、ここからの設定操作は、特権ロール管理者かグローバル管理者を持ったアカウントで行います。
a. 管理用グループを用意し、PIM管理下に置く
- Microsoft Entra管理センター( https://entra.microsoft.com/ )にログインし、グループ>すべてのグループから新しいグループを作成する。
グループの種類 | セキュリティ |
グループ名 | 任意 |
グループにMicrosoft Entra ロールを割り当てることが出来る | はい |
※ ロール割り当ての設定は後から変更できません。必ず最初に設定しましょう。 |
- Identity Governance>Privileged Identity Management>管理>グループを開く
- 上部にあるグループの検出を開く
- 管理対象のグループを選択して、上部のグループの管理をクリックしオンボードする
b. 管理下に置いたグループの設定
- Entra管理センター>Identity Govenance>Privileged Identity Management>管理>グループ を開く
- 設定したいグループを開く
- 管理>設定>Memberを開く
- 適切な設定に変更する。ここは自組織に合わせて調整してください。例えば以下のような点です。
アクティブ化の最大期間(時間) | 業務上適切な範囲でなるべく短めにすると良い。 |
アクティブ化に理由が必要 | 何かしらの理由を記録するためオン |
アクティブ化の時にチケット情報を要求します | チケットに紐づくオペレーションとして記録するためオン |
アクティブにするには承認が必要です | 申請・承認プロセスを前提として設定しているのでオン |
承認者 | 適切なユーザーもしくはグループを設定します。 |
永続的に資格のある割り当てを許可する | 対象メンバーに期限設定しないためオン |
c. グループにロールを割り当てる
ここでは、グローバル管理者のロールを割り当ててみたいと思います。
- Entra管理センター>役割と管理者>割当したいロール を開く
- 上部にある割り当ての追加を開く
- メンバーシップタブのメンバーの選択で、割り当てたいグループを選び、次へ
- 設定タブで割り当ての種類を[アクティブ]で設定する。
対象・・・・・・このロールを使う資格がある。ロールを使うには申請が必要
アクティブ・・・このロールが常時有効化されている。 - 設定タブで許可される最大の有資格期間を[永続的に有資格]で設定する。
永続的に有資格・・・・・・意図的にロール剥奪するまで有効
割り当ての開始・終了・・・設定した期間のみロール有効化
[資格のある割り当て]または[アクティブな割り当て]に割り当てたグループが追加されていれば完了
d. グループにユーザーを割り当てる
- Entra管理センター>Identity Govenance>Privileged Identity Management>管理>グループ を開く
- 設定したいグループを開く
- 管理>ロール>Memberを開く
- 上部にある割り当ての追加を開く
- メンバーシップタブのメンバーの選択で、割り当てたいユーザーを選び、次へ
- 設定タブで割り当ての種類を[対象]で設定する。
- 割り当て期間を設定する(基本的には永続的を選択)
管理>ロール>Memberで、[資格のある割り当て]に割り当てたユーザーが追加されていれば完了
一連の設定で、
ロールがグループに割り当てられ、グループにユーザーが割り当てられるという形で、階層的に権限が紐づきました。
また、ユーザーはグループに対して[資格のある割り当て]として参加しており、通常時はグループに参加していません。
あくまで参加する資格があるだけです。
実際にグループに参加しグループに付与されたロールを利用するには、申請と承認が必要になっています。
グループに割り当てるロールは複数設定することができます。
役割に合わせたロールの組み合わせを複数作ることで、ユーザー管理者向けグループ・アプリケーション管理者向けグループ・ライセンス管理者向けグループというような、役割別別のグループを用意することも可能です。
権限を利用する
実際に、申請と承認を行い、ロールが有効化されるまでの手順を見てみましょう。
- (申請者)Entra管理センター>Identity Govenance>Privileged Identity Management>タスク>自分のロール>グループを開く
- (申請者)利用したいロールの含まれたグループのリスト右側にあるアクティブ化をクリック
- (申請者)アクティブ化のダイアログが表示されるので必要な内容を記入して以下を記入してアクティブ化をクリック
弊社では、以下の内容を必須項目としています。
チケット番号 | 関連するチケットのリンク(弊社の場合はJira)を貼る |
理由 | 権限利用する理由を具体的に記入する |
4. (承認者)承認依頼のメールが届くのでリンクからPIMの画面に遷移し、承認(または拒否)を行う
承認(または拒否)の理由を記入する
5. (申請者)承認(または拒否)の結果がメール通知され、PIM画面でアクティブ化申請したグループがアクティブな割り当てに移動したら権限が有効化
これで、特権ロールを利用した操作が可能になります。
事前に設定したアクティブ化の時間に応じて、時間が過ぎると自動的に権限が剥奪されるので、ずっと特権を持ち続ける状況を回避することができます。
MS365以外のSaaSの特権を管理してみる
Microsoft365で全ての業務を行っているのであれば、これで解決です。
ですが、実際には多種多様なSaaSを併用している組織がほとんどだと思います。
それらの特権も同じ用に管理したいですね。
ちょっと力技ですが、これらもPIMで管理してみたので、紹介してみます。
権限を管理する(SaaS編)
前提条件として以下が必要になります。
- SaaS側のアカウントも、日常業務用と特権管理用のアカウントが分離されている事
- Entra IDとSaaSがシングルサインオン(SSO)連携している事
- エンタープライズアプリケーションが、SSOとProvisioningで別々になっている事
実際にやっていることは、SSOの対象ユーザーに特権管理用のアカウントを出し入れする事で、SaaSへのSSOログインをコントロールしています。
以下では、Slackを例に設定を行ってみます。
a. 管理用グループを用意し、PIM管理下に置く
b. 管理下にグループの設定
この2つは、Entra IDのロール管理と同じなので省略します。
c. グループにエンタープライズアプリケーションを割り当てる
- Entra管理センター>アプリケーション>エンタープライズアプリケーションから、対象SaaSとSSO設定しているアプリケーションを開く
- 管理>ユーザーとグループを開き、上部にある[ユーザーまたはグループの追加]を開く
- [ユーザーとグループ]から、SSO管理用グループを選択し[割り当て]を押す
d. グループにユーザーを割り当てる
Entra IDのロール管理と同じです。
上記を見て分かる通り、Entra IDロール管理との違いは、ロール割り当ての代わりにエンタープライズアプリケーションを割り当てているところです。
申請・承認についてもEntra IDロール管理と同様のフローになります。
なぜ前提条件として挙げた要素が必要だったかを説明しますと、SSOの対象としてアカウント自体を出し入れしているので、
- 日常アカウントと管理アカウントが共通だと、PIM管理下でSSO対象から外れると、日常利用もできなくなってしまう。
- SSOアプリケーションとProvisioningアプリケーションが一つで兼ねていると、SSO対象から外れた時にプロビジョニングが走ってSaaS側アカウントが止まる可能性がある。
ということが懸念されるので、設定等を分けているという背景です。
課題
上記PIM設定により、Entra ID内の特権と、SSO連携した外部SaaSの特権を同様の仕組みの中で管理することが出来ました。
ですが、いくつか課題も残っています。
-
課題1)管理できるSaaSがSSO連携している場合に限る
SSO認証の仕組みを利用した管理方法なので、SSO連携していないSaaSは管理できません。
そのようなサービスについては、パスワードマネージャーと連携することで、近しい運用(申請・承認を介した時限的な利用)ができるのではと見込んでいるものの、まだ未着手の部分です。 -
課題2)管理SaaSの権限操作がリアルタイムとはいかない
SSO認証は一度ログインしてしまえばトークンが有効なうちは再認証を要求されないので、PIM側で無効化してもしばらくはSaaS側の操作は可能です。即時性にはやや欠けています。 -
課題3)運用面での妥協が残っている
これはシステム的な課題ではないですが、実際の業務実行にあたって、いくつか実態に合わせた調整をしています。
・ロールグループに、利用する特権を諸々詰め込んだ全部入りにしている
・承認を自己実施できるようにしている
・常時ロール有効化しているアカウントもある
これらは、チームの人員構成や他SaaSとの連携設定の都合上避けられない部分があり、仕方ない部分と割り切っています。
もちろん、解消の可能性が出てくれば随時見直すべき点とは考えています。
まとめ
- 特権管理を行うことで、「最小権限の原則」に基づき、誤操作や不正アクセスのリスク減少に繋がる。
- Entra IDのPIMを利用することで、特権の付与や剥奪を柔軟かつ時限的に行うことが可能となる。
- SSOによる外部SaaSの特権管理は運用上の妥協点が残るものの、組織としての管理・セキュリティ向上に寄与することが可能。
個人的にも、過剰な特権を常時持つことが無いため、通常操作の中での緊張感が緩和されたり、不必要な情報が意図せず目に入ったりということが減り、精神的には多少気が楽になったと感じています。
面倒な部分もありますが、やる価値はあるはずです。
皆さんも、ぜひ検討してみてください。
最後に
PIMを活用して、ご安全に
Discussion