【Azure】PIM（Privileged Identity Management）にて申請できるロール（各種Azureリソースへの権限）を端末単位で制限する方法

# はじめに
　AzureではPrivileged Identity Management (以下 PIM)を利用することでより安全にAzure上の各リソースに対する権限管理を実施することが可能になります。PIM機能の一つとして、開始日時と終了日時を指定して、一定期間だけ特定のリソースに対する権限を付与するといったことが可能になります。
本ブログでは、PIMの一時的に権限を付与する機能と条件付きアクセスを組み合わせることで、ユーザが特定の端末から操作している場合のみ一時的に権限を付与させる方法について整理したいと思います。

PIMの詳細について[こちら](https://learn.microsoft.com/ja-jp/entra/id-governance/privileged-identity-management/pim-configure)を参照ください。

※ 本ブログに記載した内容は個人の見解であり、所属する会社、組織とは全く関係ありません。

# 目次
1. 利用する機能の整理
2. 構成図
3. PIMによる申請の流れ
4. 設定手順
5. 検証
6. 終わりに

# 1. 利用する機能の整理

今回紹介する方法を実施する中で、設定が必要な各種機能について以下に整理します。

・[PIM（Privileged Identity Management）](https://learn.microsoft.com/ja-jp/entra/id-governance/privileged-identity-management/pim-configure)
　Microsoft Entra ID のサービスの一つで、各種リソースへのアクセスを管理、制御、監視することができます。機能の一つとして、一時的にアクセス権限を付与したり、権限が付与されたセキュリティ グループに一時的に所属させるなどができます。

・[条件付きアクセス](https://learn.microsoft.com/ja-jp/entra/identity/conditional-access/overview)
　各リソースへのアクセス時に条件を設定することで、組織のポリシーに違反するアクセスをブロックすることが可能になります。今回はPIMの申請ができる端末を制限するために利用します。
 
・認証コンテキスト
 　PIMによる申請と条件付きアクセスによる制限を紐付けるために利用します。

・[Microsoft Entra デバイス登録](https://learn.microsoft.com/ja-jp/entra/identity/devices/concept-device-registration)
　端末をデバイス登録することで条件付きアクセスのルールに追加することが可能になります。
 
:::note warn
「[Microsoft Entra 参加](https://learn.microsoft.com/ja-jp/entra/identity/devices/concept-directory-join)」または「[Microsoft Entra ハイブリッド参加](https://learn.microsoft.com/ja-jp/entra/identity/devices/concept-hybrid-join)」を実施することでも条件付きアクセスのルールに追加可能ですが、本ブログでは「Microsoft Entra デバイス登録」で検証を実施します。
:::

・Microsoft Entra ID ユーザ
　Microsoft Entra IDで管理されるユーザアカウントです。

・Microsoft Entra ID グループ
　Microsoft Entra IDで管理されるセキュリティグループです。

 # 2. 構成図
 今回の方法を実装する上での構成図を以下に整理しました。
 ＜前提条件＞
 ・ブラウザは「Edge」を利用してAzure Portalにログインし、PIMの申請を実施します。
 ・端末のOSはWindows11を利用します。
 ・Microsoft Entra ID ユーザに Microsoft Entra ID P2ライセンスを割り当てます。

:::note info
PIM を利用するために Microsoft Entra ID P2 ライセンスが必要です。
:::
 ・あらかじめグループに各リソースの権限付与を実施します。
 ・グループへのメンバーシップの追加をPIMで管理します。

:::note info
 PIMへの申請により一時的にグループのメンバーとなる（メンバーシップの取得）ことで、グループに付与された権限を得ることができます。
:::

 
■PIM申請前の構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/b7958481-fbd5-9426-2f78-d4a98a75b35c.png)

■PIM申請後の構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/d4464320-5d51-0123-d755-871d13b51623.png)

 
 # 3. PIMによる申請の流れ
 PIMによる申請のフローを以下に整理しました。

:::note warn
Azure Portal上からPIMの申請を実施することを前提としています。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/12490d49-d5ef-aa86-eb41-db6f7cdbd838.png)

# 4. 設定手順
以下の3つの手順について整理します。

:::note warn
本検証ではグループAに対して条件付きアクセスを適用する手順は割愛します。
:::

・Microsoft Entra IDに端末を登録する手順
・認証コンテキストに紐付いた条件付きアクセスの設定手順
・PIMに対する設定手順


### ・Microsoft Entra IDに端末を登録する手順
Windows11の端末にログイン後、「スタート」⇒「設定」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/230fbbd3-9f6c-7c1c-acbe-3ae12d47e32c.png)

「アカウント」⇒「職場又は学校へのアクセス」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/d51635d6-2356-83ec-40ee-a780c3740a31.png)

画面右上の「接続」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/4ca5d10b-478f-d806-2f39-00908ee3ced6.png)

PIM申請者のEntra ID ユーザを入力して「次へ」を入力します。
認証画面が起動するので、認証を実施します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/51c3f7de-bbf6-2644-ecde-77c92100e8d7.png)

以下画面が表示されれば登録完了です。「完了」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/75e6c665-6140-35b9-bdc1-176ed089693b.png)

Edgeを起動し、左上のアイコンをクリック後、デバイス登録を実施したEntra ID ユーザを選択後、「サインインしてデータを同期」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/7f8d9470-d77d-5510-a8a4-0472b61b05df.png)

「同期を有効にする」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/780bf172-ede9-e30e-10b7-6a7e625f59fa.png)

再度、左上のアイコンをクリック後、デバイス登録を実施したEntra ID ユーザでサインインがされ、「同期は有効になっています」と表示がされていれば問題ありません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/f29a1f06-a770-ca6f-9c2d-0ce3ca33eae1.png)

Azure Portal から「Microsoft Entra ID」⇒「デバイス」⇒「すべてのデバイス」を開き、デバイスが登録されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/52f9f158-a4c0-75de-affa-ec706d6d827d.png)

### ・認証コンテキストに紐付いた条件付きアクセスの設定手順
Azure Portalから「Microsoft Entra 条件付きアクセス」にアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/ba02d902-290f-422c-591e-293093e38d1f.png)

「管理」⇒「認証コンテキスト」⇒「＋ 新しい認証コンテキスト」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/b482b8bb-a687-26e0-a01b-d7b42101ffa6.png)

名前を入力後、「保存」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/468705a8-d726-abbf-1119-ac3a4fca547b.png)


「管理」⇒「認証コンテキスト」をクリックし、作成した認証コンテキストが作成されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/dbf09da1-dd65-0f29-3ef7-3102ead65f17.png)

「ポリシー」⇒「+ 新しいポリシー」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/b874b9de-e975-08cc-4adf-91f76a968cf6.png)

ポリシーの各項目を以下の通り設定します。

<名前>
任意の名前を設定します
<ユーザ>
「すべてのユーザ」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/9a2ac316-c078-10fa-68bf-7ae6fa0c51fb.png)
<ターゲットリソース>
「このポリシーが適用される対象を選択する」で「認証コンテキスト」を選択し、先ほど作成した認証コンテキストを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/40813644-4135-519a-c463-ef1b7e57c8aa.png)
＜条件＞
デバイスのフィルターを以下の通り構成します。
**構成：** はい
**ルールに一致するデバイス：** 「フィルター処理されたデバイスをポリシーから除外する」にチェック
**プロパティ：** DeviceName　※DeviceNameにはOSのホスト名を指定。DeviceId等も選択可能なため、要件に合わせて設定可能
**演算子：** 次の値に等しい　※含む、前方一致等も選択可能なため、要件に合わせて設定可能
**値：** 制御対象のOSのホスト名
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/59d48048-f4c1-de13-d5eb-914dfb5343c7.png)
＜許可＞
「アクセスのブロック」を選択
＜ポリシーの有効化＞
「オン」を選択

上記の通り設定したら「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/d5687cf7-bcad-5b64-33f8-8d221a97c5d2.png)


条件付きアクセスのポリシーに作成したポリシーが追加されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/eb9b75c3-4f06-62b9-cc09-4a28dcfd3d09.png)

### ・PIMに対する設定手順
Azure Portalから「Privileged Identity Management」にアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/f7d2245d-9b02-d7bd-16d3-db8eb53abd33.png)

「管理」⇒「グループ」⇒「グループの検出」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/efe79f60-7de2-3416-bf01-b5426240ac9a.png)

管理対象のグループを選択し、「グループの管理」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/aa597af3-5ddd-8a5d-bf0c-b5786b8b8cf2.png)

以下ポップアップが出るので「OK」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/3bb57ea5-04b7-4671-c5c6-e91684694e84.png)


グループが一覧に追加されたことを確認し、クリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/fcfa76e2-d333-7e2d-33ba-adfb1c6a2108.png)


「管理」⇒「設定」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/d29d451e-680f-7f90-e710-4317693a4aa0.png)

ロールの一覧から「Member」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/9dcc348e-1d8d-b00d-9051-337c2cd7ce94.png)

画面左上の「編集」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/492e54f0-9f21-a396-5825-eed655793e17.png)

「アクティブ化で必要」の項目で、「Microsoft Entra 条件付きアクセス認証コンテキスト」にチェックを入れ、作成した認証コンテキストを選択します。
「アクティブにするには承認が必要です」にチェックを入れ、承認者のグループを選択します。
「更新」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/bdd38239-da82-581f-6cb7-af1a0d0e9f6b.png)

「管理」⇒「割り当て」⇒「+ 割り当ての追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/6e125b0a-3b4e-25f7-c0ea-be3736b9c9f5.png)

「ロールの選択」で「Member」を選択します。
「メンバーの選択」でPIMの申請を許可するユーザを選択します。※グループを指定することも可能
「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/2d379e33-2a5b-d059-9520-79ab07b7f6c7.png)


割り当ての種類と期間についての設定についてはデフォルトのままで「割り当て」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/38f5e38c-cc3d-adf1-9f0e-df75b2277419.png)

「資格のある割り当て」に対象のEntra ID ユーザが追加されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/8dae22da-2501-d420-f848-6b521e86a588.png)

# 5. 検証

以下2つの検証を実施します。

①PIM申請が許可されたデバイス上で、Azure PortalからPIM申請ができること
②PIM申請が許可されていないデバイス上で、Azure PortalからPIM申請ができないこと

### 検証①
PIM申請が許可されたデバイスからPIM申請を実施します。

許可されているホスト名であることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/eccac65d-f245-e7e7-222d-a6456b231b62.png)


Azure Portalから「Privileged Identity Management」にアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/7ef64d9d-f3a3-dbfa-0b90-0cbd7a4975aa.png)

「管理」⇒「グループ」からPIM申請対象のグループを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/30e512d4-aaba-ebbf-c028-9d9ad1b2f233.png)


「タスク」⇒「自分のロール」⇒「資格のある割り当て」に表示されるロール「Member」について「アクティブ化」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/eab4e257-1588-fc41-146c-9b65388b31c8.png)

「理由」を記載後、「アクティブ化」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/db431d7d-799c-30b3-ee9f-9c5097dc5fb5.png)

以下のポップアップが表示されれば無事に申請が完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/1fbc098c-8876-0d76-9d56-df53ece37fc4.png)

PIM申請が許可されたデバイス上で、Azure PortalからPIM申請ができることが確認できました。

### 検証②

許可されていないホスト名であることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/dd9a575b-1e8c-d014-9c77-87a757317034.png)

検証①と同様の手順でPIM申請を実施します。

「アクティブ化」のタイミングで以下の警告が出力されることを確認後、クリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/19502b91-2a52-f419-99a3-735e1d356709.png)

以下の画面が出力され、アクセスがブロックされることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3536682/975a4b15-fb9a-be69-91ff-eeb21535bb78.png)

PIM申請が許可されていないデバイス上で、Azure PortalからPIM申請ができないことが確認できました。

# 6. 終わりに
　PIM申請時のデバイス制御について実施することができました。要件に合わせてカスタマイズしていただければと思います。また、デバイス制御を実施する上でより高度なセキュリティ要件が求められる場合は、Microsoftから展開されているデバイス管理ソリューションである [Microsoft Intune](https://learn.microsoft.com/ja-jp/mem/intune/fundamentals/what-is-intune)が便利なのでそちらについてもご確認いただければと思います。