SC-300 Entra ID基礎 ハンズオン Module 04

以下ハンズオンのModule 04の部分です。

英語版。

https://microsoftlearning.github.io/SC-300-Identity-and-Access-Administrator/

日本語版はこちら。

https://github.com/MicrosoftLearning/SC-300-Identity-and-Access-Administrator.JA-JP/blob/main/Instructions/Labs/Lab_00_SetUpLabResources.md

全部で4 Module。
Module 01: https://qiita.com/smr1/items/1c2558fdb466795669cc
Module 02: https://qiita.com/smr1/items/975769ee5d0822562aef
Module 03: https://qiita.com/smr1/items/8de42c5504511b067890
Module 04: https://qiita.com/smr1/items/fdd57f3f2bc2acab9633

## Catalog ##
### カタログとアクセスパッケージの関係 ###
> カタログは、リソースとアクセスパッケージのコンテナーとして機能します。これは、関連するリソースとアクセスパッケージをグループ化するために作成されます。
>
> 一方、アクセスパッケージは、リソースとポリシーを1回だけ設定して、アクセスパッケージの存続期間中にアクセスを自動的に管理できます。アクセスパッケージは、カタログという名前のコンテナーに配置する必要があります。
>
> **つまり、カタログはアクセスパッケージとリソースを管理するための「箱」のようなもので、アクセスパッケージはその「箱」の中にある特定のリソースへのアクセスを管理するためのツールです。**

### カタログ作成 ###
Identity Governance > Entitlement Managementから作成する。External Userを対象とするかどうか選択できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/40f81a22-5e7d-4911-f706-2f2bedc325f9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/ab6cd8d5-f5f1-379b-3c8b-5a5cbc57ffb9.png)

> The types of resources you can add are 
> - **groups**
> - **applications**
> - **SharePoint Online sites**
>
>The groups can be cloud-created Microsoft 365 Groups or cloud-created Microsoft Entra security groups. The applications can be Microsoft Entra enterprise applications, including both SaaS applications and your own applications federated to Microsoft Entra ID. The sites can be SharePoint Online sites or SharePoint Online site collections.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/fa368a00-f679-a003-3903-8f31704e86f8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/ae6e8c37-6b3f-9c6e-75ea-5ce14ad7a66b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/d93d23c8-7a00-8a67-5e7a-48d26c2a257e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/daa58d2b-5bd0-c3b7-5c11-fe674cf07660.png)

カタログに対するロールの割り振り。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/011b1a9a-ac39-9be4-e5ed-fbb05290a5e5.png)

### アクセスパッケージ ###
注意しなくちゃいけないのは、上で設定したのは、あくまでこのカタログで対象とするリソースをどれにするか。

カタログで設定した対象をアクセスパッケージで指定できるようになる。だからアクセスパッケージは別途作成しなくちゃいけない。カタログに複数のアクセスパッケージが含まれる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/d54d4126-8919-acd0-939a-028e641ed236.png)

アクセスパッケージで実際に誰が、何に対してどれくらいの期間、どのようにアクセスを要求できるかとかを設定する。ユーザーの属性に従って、自動的にアクセスパッケージを振ったりもできるらしい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/14a87291-7dd7-0ab8-45bd-b55e0203a6dd.png)

### 外部ユーザーをアクセスパッケージで管理する ###
外部ユーザーの招待もアクセスパッケージを使うのが便利らしい。ゲストユーザーを招待するのは、Access Package経由でもできるのが新しかった。ゲストユーザー = Invitationの送信と考えてしまうのは短絡的だった。

https://jpazureid.github.io/blog/azure-active-directory/access-management-with-access-package/

> 多くのお客様の環境では、まずゲスト ユーザーを contoso テナントに招待した後、ゲストが SharePoint、Teams、サブスクリプション リソース (AppService など) にアクセスできるように、アクセス許可を別途設定していると思います。そして開発プロジェクトが終了した際には、ゲスト ユーザーからアクセス権の剥奪を行います。
>
> 該当するユーザーが 1 人の場合は手動でアクセス許可を付与することもできますが、該当するユーザーが 20 人や 30 人と増えるほど、上述した「ゲスト招待」や「アクセス権の付与」、「アクセス権の剥奪」といった 3 つのタスクの負荷は大きくなります。
>
> **アクセス パッケージを使用すると...管理者側のタスクは、「ユーザーが要求したパッケージを承認する」フロー 1 つのみとなります。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/ab3314df-761a-5689-807c-41d713cc2d01.png)

なるほど。便利。ゲストだから、特定の目的があって、必要な権限も決まっている場合は楽だ。

※参考リンクだと、ゲストユーザーだけでなく、普通に新入社員等通常ユーザーもアクセスパッケージで管理するシナリオが紹介されていた。一般的な権限はアクセスパッケージで設定しておいて、個別の権限はユーザーのRBACを使うというのはありなのかもしれない。
正社員もゲストと同じように、アクセスパッケージによってIDライフサイクルを実現する。

アクセスパッケージの期限が切れたら、自動的に（ゲスト）ユーザーが無効化されるように設定できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/18f807f3-df6d-69ba-8609-6af373ff0fb8.png)

## Terms of use ##
Terms of useの設定。
定期的に承諾を表示するとか、条件付アクセスを設定して承認しないとアクセスさせないとかもできる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/d10a693e-299b-e9dc-789b-a4fb243772b6.png)

ログイン時にこんなのが表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/b6e47b46-6566-8986-3c14-361ec6eb0ba8.png)

## Access Review ##
何に対してのアクセスレビュー。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/80f24078-c27e-bf65-03f1-17d42b727c3d.png)

例えばグループを設定したら、レビュワーをグループオーナーにする。定期的にレビューするか否か。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/97e60909-19d3-ea38-9461-5037f4a5287c.png)

レビュワーが対応しない場合、アクセス権を自動的に削除できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/dc9fd47b-0fb2-0483-7fc6-84c744accf24.png)

## Previlged IdentityManagement ##
Just in timeによるロール管理を実現。

> **Azure ADのPrivileged Identity Management（PIM）**　は、組織内の重要なリソースへのアクセスを管理、制御、監視するためのサービスです1。
以下の主な機能があります12：
> **Just-In-Timeの特権アクセス**：特権操作を実行する必要があるユーザーに対して、必要な時に必要な時間だけ特権アクセスを付与します12。
>
> **期限付きアクセス権12**：開始日と終了日を使用して、特定の期間だけアクセス権をリソースに割り当てます12。
>
> **承認要求12**：特権ロールをアクティブ化するために承認を要求します12。
>
> **多要素認証12**：ロールをアクティブ化するために多要素認証を強制します12。
>
> **監査履歴のダウンロード12**：社内監査または外部監査に使用する監査履歴をダウンロードします12。

https://dev.classmethod.jp/articles/azure-ad-privileged-identity-management/

対象はEntra role, group, Azure resources。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/2131fb58-2fcf-33c8-eff8-b279ce6a6d34.png)

Roleを人にEligibleでAssignする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/250773f2-3a7f-3367-7f6a-4c682dbdf34e.png)

RoleごとにAssignの状況が見れる。以下はEligibleが1人いる状態。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/6c93ee14-7162-a148-2175-d2255668b32b.png)

ActivateするときのApproverや通知等の設定をできる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/abfffbc0-e4ca-eec4-af5c-7ae63ecd3a55.png)

My RoleからActivateできる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/90ae0531-33a8-4ab3-fe99-5440985fa1bc.png)

Group
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/0c264ba2-25c4-fad8-6712-b3358f97497f.png)

Azure Resource
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/276f9af1-d608-4d79-79ef-ec823394f372.png)

ActiveとEligibleの違いについて注意が必要。
- Eligibleはあるロールを要求する承認依頼を出す権限がある。
- Activeはすでにそのロールを持っている。

### アクセスパッケージとPIMの違い ###
どちらもアクセス管理を実現する機能でわからなくなってきたので、Bing Chatに質問してみた。PIMはあくまでも特権管理をJITするものである。

> Azure ADのアクセスパッケージとPrivileged Identity Management (PIM)は、どちらもAzure Active Directoryの一部であり、ユーザーのアクセスを管理するための機能ですが、それぞれ異なる目的と機能を持っています。
>
> **Azure AD Privileged Identity Management (PIM)** は、組織内の重要なリソースへのアクセスを管理、制御、監視するためのサービスです¹。特に、特権アカウントを管理および保護し、管理者によるリソースへのアクセスを検出、制限、監視して必要に応じてジャストインタイムアクセスを提供します³⁴。これにより、組織は、AzureおよびMicrosoft Entraリソースに対するJust-In-Time特権アクセスをユーザーに付与することができ、それらのユーザーが与えられた特権アクセスでどんな操作を実行しているかを監視することもできます¹。
> 
> 一方、**Azure ADのアクセスパッケージ** は、特定のユーザーやグループが必要とするリソースへのアクセスを一元化して管理するための機能です。アクセスパッケージを使用すると、ユーザーは必要なリソースへのアクセスを一度にリクエストでき、IT管理者はそのリクエストを一元的に承認、監視、レビューすることができます。これにより、組織は誰がどのリソースにアクセスできるかを効率的に管理することができます。
> 
> したがって、これらの機能は、それぞれ異なるアクセス管理のニーズに対応しています。 **Azure AD PIMは特権アクセスの管理に重点を置き、Azure ADのアクセスパッケージは一般的なリソースアクセスの管理に焦点を当てています。**

## Administrative Unit ##
PIMはデフォルトだとScopeがDirectoryになっているが、Administrative Unit内で利用するとか範囲を制限することもできる。

https://learn.microsoft.com/ja-jp/entra/identity/role-based-access-control/admin-units-manage?tabs=ms-powershell

> 管理単位を使用すると、組織を任意の単位に分割し、その単位のメンバーのみを管理できる特定の管理者を割り当てることができます。 たとえば、管理単位を使用して、大規模な大学の各学校の管理者にアクセス許可を委任して、アクセスの制御、ユーザーの管理、およびエンジニアリングの学校でのみポリシーを設定することができます。

### グループオーナーとAUの違い ###

グループオーナーとAUはどちらも管理を委任するという意味で違いが判らなくなってきたので、Bing Chatに質問してみた。

> **Administrative Unit (AU)** は、Azure ADのユーザーやグループなどを格納するコンテナの役割を果たします12。これにより、特定のユーザーやグループだけを管理する、いわゆるOU的な管理が可能になります1。管理単位には、ユーザー、グループ、デバイスのみを含めることができ、これらの管理対象に対して特定のロールを持つ管理単位の管理者を設けることができます12。
>
> 一方、**Group Owner** は、特定のグループの所有者を指します。Group Ownerは、そのグループのメンバーシップを管理し、グループの設定を変更する権限を持ちます。Group Ownerは、グループのメンバーを追加、削除、または変更することができます。

https://jpazureid.github.io/blog/azure-active-directory/introducing-restricted-management-au-in-microsoft-entra-id/

AUはグループ跨ぎの管理、テナント管理者にも管理させないという制限付きの管理ができるところが大きな違いなのか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/db432618-847a-2477-b2a4-ba26ed24efe4.png)


https://lig-log.com/delegate-user-management-with-azure-ad-management-units/

https://zenn.dev/tomot/articles/489f2ae1887985

使いどころがイマイチわからなかったが、こういう要件もありえるのか。
> Azure、AzureADの世界では基本的に権限が継承され、下位の階層で拒否することはできません。しかし現実には、「IT部門のメンバーが全体の管理はしているけど、人事部や財務部の範囲は触らせたくない」みたいな要件が散見されます。
> 制限付き管理単位」を使えば、特定部門の管理権限を特定の人のみに渡すことができ、上記のような設定を無くしシンプルにすることができます。設定ミスによる思わぬ情報公開も避けることができ、とても便利ですね。

## Sentinel でEntra IDのログを収集・管理する ##
LogAnalyticsをデプロイし、SentinelをContent HubからEntra IDに接続する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/40b169d3-b290-5f9c-bfb5-502ee9a8052b.png)

データコネクタにEntra IDが表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/54565a6a-2fe4-5d39-b21b-c1704adacb5b.png)

どのデータをSentinelに流すか設定する。プレビューが多いな。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/ce971a43-5ffa-3ebe-5c0e-2c0f8aa3a0c7.png)

AADのログをKusto Queryで見れるようになる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/e58a416c-8739-e58e-b5c0-aeb96a6aef4d.png)

## Identity Secure Score ##
Security Posture Management。
Identity管理に関するImprovement Actionsがある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/aca230de-324e-fa98-c102-5571526e2aea.png)


設定の手順がかなり詳細に書かれていてうれしい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654538/2c3fa269-ee1a-335a-7070-a5e4f85e99da.png)

蛇足だけど、パスワードをNever Expireにするのが推奨されて、おや、と思ったら、パスワードが十分に複雑であれば、Microsoftは定期的に変更しないほうが良いというのが公式な立場らしい。そうなのか（小並感）。