Media > AI活用ユースケース > 情報システム > 社内システムのアクセス権限を棚卸して、不要な権限と申請漏れを洗い出す

社内システムのアクセス権限を棚卸して、不要な権限と申請漏れを洗い出す

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

各システムから取り出した実際の権限を入力に、申請台帳と人事マスタと突き合わせ、退職者に残る権限、異動後も残る権限、申請記録のない権限を洗い出します。情報システムの作業は、画面を見比べて照合することから、指摘を確認して依頼を出すことに変わります。

サマリー
利用ツール
ChatGPT/Claude/Gemini/Python
対象業界
IT・SaaS/保険/医療/金融
対象部門
情報システム
対象業務
内容確認・チェック/台帳・マスタ管理
主な課題
属人化している/期限・対応漏れが起きる/確認ミスが多い
AIで行う処理
判定
主な効果
入力漏れ削減/品質標準化/工数削減
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
50h/月
AI導入後
12.5h/月
想定削減
75%
年間削減
450h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 人事システムから、当月の入社・退職・異動の一覧を取る
  2. 対象者ごとに、どのシステムの権限を持っているかを確認する
  3. システムごとに管理画面を開き、権限の一覧を見る
  4. ワークフローの申請履歴を検索し、その権限が承認されたものかを確認する
  5. 人事マスタの現在の所属と、権限の内容が合っているかを判断する
  6. 不要な権限があれば、削除の依頼を各システムの管理者に出す
  7. 申請記録のない権限があれば、付与した経緯を調べる
  8. 定期巡回の分も、同じ手順で確認する
  9. 監査用に、確認した記録を残す
導入後(After)
  1. 自動毎週、全システムから権限の一覧を取得する
  2. 自動権限名を、社内で定義した「権限カタログ」の分類に対応づける
  3. 自動人事マスタと突き合わせ、在籍・所属・職位を確認する
  4. 自動申請台帳と突き合わせ、承認の記録があるかを確認する
  5. 自動次の6種類を判定する
  6. 自動権限名から、その権限で何ができるかの説明を添える
  7. 自動権限の所有者(承認者)向けの確認依頼文を作る
  8. 情報システム担当が指摘を確認し、是正の要否を判断する
  9. 権限の所有者に確認を依頼する
  10. 削除・追加の作業を各システムの管理者が行う
  11. 自動対応状況を追跡し、未対応のものを再掲する
各工程の詳しい説明を読む
  1. 人事システムから、当月の入社・退職・異動の一覧を取る
  2. 対象者ごとに、どのシステムの権限を持っているかを確認する
  3. システムごとに管理画面を開き、権限の一覧を見る
  4. ワークフローの申請履歴を検索し、その権限が承認されたものかを確認する
  5. 人事マスタの現在の所属と、権限の内容が合っているかを判断する
  6. 不要な権限があれば、削除の依頼を各システムの管理者に出す
  7. 申請記録のない権限があれば、付与した経緯を調べる
  8. 定期巡回の分も、同じ手順で確認する
  9. 監査用に、確認した記録を残す

問題は5つあります。

(a)システムごとに権限の表し方が違う。 あるシステムは「ロール名」、別のシステムは「グループ所属」、また別のシステムは「機能ごとのチェックボックス」です。同じ「請求データを承認できる」権限が、システムによって FIN_AP_APPROVER_L2経理承認者Finance-Approve-Group と書かれています。

(b)権限名から業務上の意味が読めない。 ADM_MST_UPD が何を更新できる権限なのかは、システムの設計書を見ないと分かりません。設計書が古いこともあります。

(c)申請記録を探すのに時間がかかる。 ワークフローの履歴は申請日順に並んでおり、「この人のこの権限がいつ承認されたか」を探すには検索が必要です。記録がないこともあります(前任者が直接付与した、緊急対応で口頭承認した、など)。

(d)異動後の権限が残る。 退職時のアカウント停止は手順に組み込まれていますが、異動時の「前部署の権限を外す」は徹底されていません。 引き継ぎのために一時的に残し、そのまま忘れられます。

(e)職務分離の観点が抜ける。 「発注ができて、かつ検収もできる」といった組み合わせは、単独のシステムを見ているだけでは気づけません。複数システムをまたぐ組み合わせは、誰も見ていません。

  1. 【自動】 毎週、全システムから権限の一覧を取得する
  2. 【自動】 権限名を、社内で定義した「権限カタログ」の分類に対応づける
  3. 【自動】 人事マスタと突き合わせ、在籍・所属・職位を確認する
  4. 【自動】 申請台帳と突き合わせ、承認の記録があるかを確認する
  5. 【自動】 次の6種類を判定する

- 退職者に残っている権限 - 異動後も残っている前部署の権限 - 申請記録のない権限 - 承認されたのに付与されていない権限 - 長期間使われていない権限 - 職務分離の観点で問題になりうる組み合わせ

  1. 【自動】 権限名から、その権限で何ができるかの説明を添える
  2. 【自動】 権限の所有者(承認者)向けの確認依頼文を作る
  3. 【人】 情報システム担当が指摘を確認し、是正の要否を判断する
  4. 【人】 権限の所有者に確認を依頼する
  5. 【人】 削除・追加の作業を各システムの管理者が行う
  6. 【自動】 対応状況を追跡し、未対応のものを再掲する

自動化されるのは「集める」「対応づける」「突き合わせる」「判定する」「説明を書く」の5つです。残るのは「この権限が本当に不要かを判断する」と「実際に削除する」です。

02今回想定するシステム構成

構成図
【毎週 土曜 深夜】
   │
   ├──▶ Microsoft Entra ID(Graph API)
   │       ├─ ユーザーの appRoleAssignments
   │       ├─ グループのメンバーとアプリ割り当て
   │       └─ ディレクトリロールの割り当て
   │
   ├──▶ 独立したSaaS(各サービスのAPI、またはCSVエクスポート)
   │
   ├──▶ オンプレミスの基幹システム(DBの権限テーブルを読み取り)
   │
   ├──▶ ファイルサーバ(ACLの取得)
   │
   ▼
Python のバッチ処理
   │
   ├──▶ 権限カタログへの対応づけ(正規化)
   │
   ├──▶ 人事マスタとの突き合わせ(在籍・所属・職位)
   │
   ├──▶ 申請台帳との突き合わせ(承認の有無)
   │
   ├──▶ LLM API ── 権限の意味の説明 + 職務分離の観点での指摘
   │                 + 権限所有者向けの確認依頼文
   ▼
棚卸結果リスト(SharePoint リスト)──【情報システムが判断】
   │
   ├──▶ 権限所有者への確認依頼(メール)
   └──▶ 是正チケットの起票
   │
   ▼
対応状況の追跡 + 監査用の証跡
役割想定する製品代替候補
実行環境PythonPowerShell、個別開発
生成AIClaude APIOpenAI API、Gemini API
ID基盤Microsoft Entra IDOkta、Google Workspace
台帳の置き場SharePoint リストGoogle スプレッドシート

Entra ID Governance のライセンスがあり、対象システムがすべてEntra IDに統合されているなら、標準のアクセス レビュー機能を使ってください。 アクセス レビューでは、セキュリティグループ・Microsoft 365 グループのメンバーシップ、接続されたアプリケーションへの割り当て、Entra ロール、Azure リソースロール、アクセスパッケージの割り当てを、指定した頻度(週次・月次・四半期・年次)でレビューでき、レビュー担当者を指定したりグループ所有者や本人に自己レビューさせたりできます。

この構成が必要になるのは、統合されていないシステムがある場合です。 そして多くの企業では、基幹システムとファイルサーバが統合されていません。

03どうやって実装するのか

Step1

処理の起点を決める

毎週土曜の深夜に、定時で一括処理します。 権限の取得は各システムに負荷をかけるため、業務時間を避けます。

ただし、退職者の権限だけは週次では遅すぎます。 人事システムの退職登録をきっかけに、その日のうちに全システムの権限を確認する処理を別に用意してください。退職者のアカウントが残ることは、この業務でもっとも重大なリスクです。

定期巡回は、25本のシステムを四半期で一巡するように分割します。毎週2本ずつ見れば、13週で一巡します。

Step2

入力データを集める

データ中身取得元
Entra ID の権限ユーザーごとのアプリロール割り当て、グループ所属、ディレクトリロールMicrosoft Graph API
SaaSの権限ユーザーごとのロール・ライセンス各サービスのAPI/CSVエクスポート
基幹システムの権限ユーザーID×権限コードのテーブルデータベースへの読み取り接続
ファイルサーバの権限共有フォルダのACLスクリプトで取得
権限カタログ各システムの権限名と、それが業務上何を意味するかの対応表情報システム(新しく作る
人事マスタ社員番号、氏名、在籍区分、所属、職位、異動日、退職日人事システム
申請台帳申請者、対象者、システム、権限、申請理由、承認者、承認日、有効期限ワークフロー
最終利用日システムごとの最終ログイン日、最終操作日各システムのログ
職務分離ルール同時に持ってはいけない権限の組み合わせ内部統制・監査部門

権限カタログが、この構成の要です。 FIN_AP_APPROVER_L2 が「買掛金の支払承認(200万円未満)」であることを、どこかに書いておく必要があります。設計書から起こすか、システムの管理者に聞いて作ります。

すべての権限を最初から網羅する必要はありません。特権的なもの(管理者権限、承認権限、マスタ更新権限、個人情報へのアクセス)から作れば、200〜300行で主要な部分が埋まります。

Step3

データの取得方法を決める

Entra ID: Microsoft Graph API を使います。ユーザーに付与されたアプリロール割り当ては GET /users/{id}/appRoleAssignments で取得でき、この結果には、そのユーザーが直接メンバーになっているグループを経由して付与されたロール割り当ても含まれます。 グループに対する割り当ては GET /groups/{id}/appRoleAssignments で取れます。

必要な権限は、委任されたアクセスの場合で AppRoleAssignment.ReadWrite.All または Directory.Read.All が最小権限です。 呼び出しに必要な Entra のロールには、ディレクトリ閲覧者、ディレクトリ書き込み者、ID ガバナンス管理者、アプリケーション管理者、クラウド アプリケーション管理者などが挙げられています。棚卸が目的なら読み取りだけで足りるので、書き込み権限を持たない構成にしてください。

SaaS: 提供されていればAPIを、なければ管理画面からのCSVエクスポートを使います。CSVの手動エクスポートが必要なシステムは、週次ではなく月次にするなど、運用に合わせて頻度を分けてください。

基幹システム: 権限テーブルへの読み取り専用接続を用意します。書き込み権限を持たせないでください。

最終利用日: 各システムのログから取ります。取得できないシステムは「不明」として扱い、利用実績による判定の対象から外します。取得できないことを理由に判定を止めないでください。

Step4

AIへ渡す前に整形する

  1. ユーザーの名寄せ … システムごとにIDが違います(社員番号、メールアドレス、独自ID)。社員番号を軸にした対応表を作り、名寄せします。 ここで対応しないIDが残ったら、それ自体が棚卸の対象です(誰のものか分からないアカウント)
  2. 権限名の正規化 … 権限カタログを引き、システムごとの権限名を共通の分類に対応づけます
  3. 共有アカウント・システムアカウントの分離 … 人に紐づかないアカウント(バッチ実行用、監視用、テスト用)を分けます。これらは別の基準で棚卸します(用途の記録があるか、パスワードの管理者が誰か)
  4. 異動日の考慮 … 異動直後は引き継ぎのため前部署の権限が残ることがあります。猶予期間(例:30日)を設け、それを超えたものだけを指摘します
  5. 有効期限つき権限の抽出 … 申請台帳に有効期限が記録されている権限のうち、期限を過ぎているものを抽出します
Step5

AIに処理させる

突き合わせの判定は、プログラムで行います。 「退職者が権限を持っている」「申請記録がない」は、データの照合だけで判定できます。LLMを使う必要はありませんし、使うべきでもありません。

LLMにさせること:

処理内容
権限の意味の説明権限名と権限カタログの記述から、「この権限で何ができるか」を平易な文で書く
職務分離の観点での指摘複数システムをまたぐ権限の組み合わせが、職務分離ルールに照らして問題になりうるかを指摘する
申請理由との整合の判定申請台帳の自由記述の申請理由と、現在の所属・職位が整合しているかを見る
確認依頼文の作成権限の所有者(業務部門の責任者)が読んで判断できる確認依頼文を作る
是正の優先順位づけの材料権限の内容とリスクの観点から、優先度の判断材料を示す

4番目が実務では大きく効きます。 棚卸で一番進まないのは、業務部門の責任者に「この権限が必要かどうか」を答えてもらうことです。FIN_AP_APPROVER_L2 というコードを並べたメールを送っても、返事は来ません。「◯◯さんは、200万円未満の買掛金の支払を承認できる権限を持っています。現在の職務で必要でしょうか」と書かれていれば、答えられます。

AIに権限の削除を判断させないでください。 指摘と説明までです。「不要と思われる」という表現も避け、「申請記録が見つからない」「異動後30日を超えて前部署の権限が残っている」という事実だけを書かせます。 必要かどうかは、業務部門が決めることです。

Step6

指示内容を固定する

あなたは、社内システムのアクセス権限の棚卸を支援する担当者です。
突き合わせの結果に対して、業務部門の責任者が判断できる説明を作ってください。

【厳守事項】
- 権限の要否を判断しないでください。
  「不要と思われる」「削除すべき」と書かないでください。
  事実(申請記録がない、異動後◯日経過している、◯か月未使用)だけを書いてください。
- 権限の意味は、下記の権限カタログの記述だけに基づいて書いてください。
  カタログに記載がない権限は、意味を推測しないでください。
  description を null とし、「権限カタログに記載がありません」と書いてください。
- 職務分離の指摘は、下記のルールに明記された組み合わせに限ってください。
  ルールにない組み合わせを、あなたの判断で問題として挙げないでください。
  気づいた点がある場合は observations に分けて書いてください。
- 確認依頼文は、権限コードではなく、業務上の言葉で書いてください。
  「FIN_AP_APPROVER_L2 の要否をご確認ください」ではなく、
  「200万円未満の買掛金の支払を承認する権限」のように書いてください。
- 対象者の人事情報のうち、確認依頼文に書いてよいのは
  氏名・所属・職位だけです。評価、処遇、異動理由を書かないでください。

【権限カタログ】
{permission_catalog}

【職務分離ルール】
{sod_rules}

【突き合わせの結果】
対象者: {user_name}(社員番号 {employee_id} / 所属 {department} / 職位 {position})
在籍区分: {employment_status} / 直近の異動日: {transfer_date}
保有している権限:
{permissions}
申請台帳の該当記録:
{approval_records}
最終利用日:
{last_used}
判定結果(プログラムによる):
{findings}

「権限の要否を判断しないでください」の1行が、この構成の安全装置です。 これを書かないと、「この権限は職務上不要と考えられます」という文が生成されます。それを読んだ担当者が確認を省いて削除すると、業務が止まります。 権限の削除で業務が止まると、次の棚卸への協力が得られなくなります。

「ルールにない組み合わせを問題として挙げない」も必要です。 職務分離は、内部統制の設計として定められたものに従います。AIが独自に「これも危ない」と挙げ始めると、指摘が発散して読まれなくなります。気づいた点は observations に分けておき、内部統制部門がルールに加えるかを判断します。

Step7

出力形式を固定する

プログラムによる判定:

{
  "employee_id": "",
  "system": "",
  "permission_code": "",
  "permission_category": "",
  "finding_type": "terminated_user | post_transfer_residual | no_approval_record | approved_not_granted | unused | sod_conflict | unidentified_account",
  "detected_at": "",
  "evidence": {
    "employment_status": "",
    "department": "",
    "transfer_date": "",
    "days_since_transfer": 0,
    "approval_record_id": "",
    "last_used_date": "",
    "days_unused": 0
  },
  "risk_level": "critical | high | medium | low"
}

LLMによる説明:

{
  "employee_id": "",
  "permission_code": "",
  "description": "",
  "description_source": "catalog | not_in_catalog",
  "sod_conflicts": [
    { "rule_id": "", "combined_with": "", "explanation": "" }
  ],
  "observations": [],
  "confirmation_request_text": "",
  "needs_review": []
}

判定と説明を別のJSONで持ちます。 判定はデータの照合結果であり、確定した事実です。説明はLLMの生成物であり、誤りうるものです。この2つを混ぜると、監査で証跡として出すときに困ります。 「なぜこの権限が指摘されたのか」の根拠は、判定側のJSONだけで説明できる状態にしてください。

description_source を持つのは、権限カタログに記載があったのか、なかったのかを区別するためです。カタログにない権限が多いなら、カタログの整備が先です。

Step8

システムへ連携する

つなぐ先内容
Microsoft Graph API(読み取り)Entra ID の権限を取得する
各SaaS/基幹システム(読み取り)権限の一覧を取得する
人事システム(読み取り)在籍・所属・職位・異動日を取得する
ワークフロー(読み取り)申請・承認の記録を取得する
SharePoint リスト棚卸結果を出す。対応状況もここで管理する
メール権限所有者への確認依頼を送る(下書きを人が確認してから
チケット管理是正の作業を起票する

権限の削除・付与は、この構成から行いません。 すべて読み取りです。書き込み権限を持たせないことが、この構成の設計方針です。 権限を削除できる仕組みは、それ自体が攻撃対象になります。

Step9

人が確認する

すべての指摘を人が確認します。 ただし、優先順位を明確に分けます。

優先対象対応の期限
1退職者に残る権限(terminated_user当日。 確認を待たずに停止してよい範囲を、あらかじめ決めておく
2誰のものか分からないアカウント(unidentified_account3営業日以内に調査
3職務分離の抵触(sod_conflict内部統制部門と協議
4申請記録のない特権(no_approval_record かつ risk_level: high 以上)1週間以内に経緯を確認
5異動後の残存権限(post_transfer_residual権限所有者に確認依頼
6長期未使用(unused四半期の棚卸でまとめて確認

優先度1について、事前に方針を決めておいてください。 「退職者のアカウントは、確認を待たずに即時停止する」という方針が決まっていれば、この構成は当日中に検知して自動で停止申請を起票できます。方針がないと、検知しても止まります。

確認依頼の返事が来ないことが、この業務の最大の障害です。 対応状況を追跡し、期限を過ぎたものを再掲する仕組みを必ず入れてください。「返事がないので放置」が積み上がると、棚卸の意味がなくなります。

Step10

例外に対処する

起きること対応
権限がカタログにない意味を推測させない。カタログ整備の対象として一覧にする
システムのIDが社員番号に紐づかない「誰のものか分からないアカウント」として優先度を上げる
共有アカウント・システムアカウント人の棚卸とは分け、用途の記録と管理者の有無で確認する
異動直後で前部署の権限が残っている猶予期間内は指摘しない。期間を過ぎたものだけ挙げる
申請記録が紙・メールでしか残っていないno_approval_record として挙げつつ、needs_review に「記録の所在を確認」と付ける。記録がない=不正、と断定しない
最終利用日が取得できない「不明」として扱い、利用実績による判定の対象外にする
休職中の社員在籍区分で判別し、退職者と区別する。休職者の権限を自動停止しない
出向者・派遣・業務委託人事マスタに載っていないことがある。別の名簿と突き合わせる。載っていないから退職者、と判定しない
APIの取得に失敗したそのシステムを「未取得」として明示する。取得できた分だけで棚卸完了としない
権限所有者から返事が来ない期限超過として再掲し、上位者にエスカレーションする
監査で証跡を求められた判定側のJSONと、対応状況の記録を出す。LLMの生成文は補助資料として扱う
Step11

記録を残す

  • 各システムから取得した権限の一覧(取得日時つき。取得の生データを残す
  • 判定結果(evidence を含む)
  • LLMが生成した説明と確認依頼文
  • 権限所有者の回答(必要/不要/理由)
  • 是正の実施記録(いつ、誰が、何を削除・追加したか)
  • 取得に失敗したシステムと、その理由

監査で問われるのは「棚卸を行った証跡」です。 判定結果だけでなく、取得の生データと、取得に失敗した記録を残してください。「25本のうち24本しか確認できていない」ことが記録に残っている状態のほうが、「25本確認した」と書いてあって実態が違うより、はるかに安全です。

権限の一覧そのものが機密情報です。 「誰が何にアクセスできるか」は、攻撃者にとって価値の高い情報です。保管場所と閲覧権限を厳しく設定してください。

04実装レベルの3段階

最小構成:1システムの権限一覧と人事マスタをExcelで突き合わせ、確認依頼文を生成AIに作らせる / 突き合わせ・依頼文
半自動化:全システムの権限を週次で取得し、人事マスタ・申請台帳と突き合わせて6種類の判定を行う。説明と依頼文を自動生成する / 取得・突き合わせ・判定・説明
本格構成:上記+退職登録をきっかけとした当日検知+対応状況の追跡と再掲+職務分離の横断チェック+監査証跡の自動整理 / 是正の判断と実行以外のすべて

半自動化で6分が2分程度になります。 申請台帳を探す2.5分と権限画面を開く1.5分が消えるためです。本格構成にすると1.5分程度ですが、本格構成の価値は時間より「退職者の権限を当日に検知できること」と「返事のない確認依頼が放置されないこと」にあります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
2 名
月間件数
500 件
1件あたり現在時間
6 分
1件あたり導入後時間
1.5 分
現在  500件 × 6分 ÷ 60 = 50 時間/月
導入後 500件 × 1.5分 ÷ 60 = 12.5 時間/月
月間削減時間
37.5h
削減率
75%
年間削減時間
450h
年間金額換算(時間単価3,500円)
158万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 従業員500名以上で、社内システムが10本以上ある企業。権限の申請記録がワークフローまたは台帳で残っていること。各システムから権限の一覧をAPIまたはCSVで取り出せること。監査で権限の棚卸を求められていること。
向いていない
  1. 従業員100名未満で、情報システム担当が全員の権限を把握できている場合。すべてのシステムがEntra IDに統合されていて、Entra ID Governance のアクセスレビュー機能が使える場合。権限の申請記録が残っていない場合(先に記録の運用を作る必要がある)。

07最小構成で試す方法

  1. 1つのシステムだけを選ぶ(権限の取得が容易で、かつ特権を含むもの。基幹システムが適している)
  2. そのシステムの権限一覧をCSVで出す
  3. 人事マスタの在籍者一覧と突き合わせる(Excelの関数で足ります)
  4. 退職者・休職者の権限が残っていないかを数える

この1点だけで、多くの企業では驚くような件数が出ます。 そして、これはAIを使わずに確認できます。

次に、AIの効果を確かめます。

  1. 権限カタログの草案を作る(そのシステムの特権だけ、30行程度
  2. 残存権限の一覧とカタログを生成AIに貼り、権限所有者向けの確認依頼文を作らせる
  3. その文章を、実際に業務部門の責任者に見せて「これで判断できるか」を聞く

見るのは次の3点です。

見る点判断
業務部門の責任者が、その文章で判断できるかできなければ、権限カタログの記述が足りていない
権限の要否を勝手に判断していないかしていたら、プロンプトを強める。ここが最重要
カタログにない権限について、意味を推測していないかしていたら同上

1番目が本命です。 棚卸が進まない理由の大半は、「業務部門が判断できる形で情報が渡っていない」ことにあります。そこが解決すれば、この業務は大きく変わります。

08実装時につまずきやすいポイント

問題対策
AIが権限の要否を判断するプロンプトで明確に禁止する。「不要」「削除すべき」といった語が生成文に含まれていないか機械的に検査する
カタログにない権限の意味を推測するカタログの記述だけに基づかせる。description_source で区別する
ユーザーIDが名寄せできない社員番号を軸にした対応表を作る。名寄せできないIDは「不明なアカウント」として優先度を上げる
共有アカウントを人として扱う前処理で分離する。別の基準(用途の記録、管理者の有無)で棚卸する
出向者・業務委託が「退職者」と判定される人事マスタ以外の名簿と突き合わせる。在籍区分が取れない人を退職者と断定しない
異動直後の権限を毎回指摘する猶予期間を設ける。期間は業務の実態に合わせる
確認依頼の返事が来ない対応状況を追跡し、期限超過を再掲する。上位者へのエスカレーション経路を決めておく
取得に失敗したシステムが放置される「未取得」を明示し、棚卸の完了条件に含める
権限一覧の保管が甘い閲覧権限を厳しく設定する。この一覧自体が攻撃者にとって価値のある情報です
書き込み権限を持たせてしまう読み取り専用の接続だけを用意する。是正は人が別の経路で行う
職務分離の指摘が発散する定義されたルールに限る。気づいた点は observations に分ける

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 全従業員の氏名・所属・職位・在籍状況、各システムの権限構成、誰がどの業務を実行できるか。「誰が何にアクセスできるか」の一覧は、組織の防御の弱点を示す情報です。

  1. 読み取り専用の徹底 … 権限を取得する接続に、書き込み権限を持たせないでください。この構成が権限を変更できる状態だと、構成そのものが最も価値の高い攻撃対象になります
  2. 外部AIへの入力可否 … 権限の構成情報を外部サービスに送ることになります。自社の情報セキュリティ方針で、この種の情報の外部送信が許されるかを必ず確認してください。 許されない場合は、LLMに渡すのを「権限カタログの記述と、判定結果の種別だけ」に絞る構成が取れます。個人名とシステム名を渡さなくても、確認依頼文の雛形は作れます
  3. 人事情報の最小化 … LLMに渡す人事情報は、氏名・所属・職位・在籍区分に限ります。評価、処遇、異動理由、休職の理由は渡さないでください
  4. 学習利用 … 入力を学習に使わないことが契約で保証されるサービスを選びます。ここは必須条件です
  5. アクセス権限(この構成自体の) … 棚卸結果の閲覧を、情報システム部門と内部統制部門に限定します。部門ごとの結果を、その部門の責任者に見せる場合も、他部門の情報が見えないようにしてください
  6. 判定と生成の分離 … 監査の証跡として使うのは、プログラムによる判定結果です。LLMの生成文を根拠にしないでください。 生成文は、業務部門に説明するための補助資料です
  7. 自動実行してよい範囲 … 取得・判定・説明の生成までです。権限の削除・付与は、この構成から行いません。 ただし、退職者のアカウント停止については、事前に方針を決めたうえで、停止申請の自動起票までは行えます

誤りが起きた場合のリスクは、必要な権限の削除による業務停止と、不要な権限の見落としによる情報漏えいです。前者が起きると、次の棚卸への協力が得られなくなります。 削除は必ず業務部門の確認を経てください。

10まず何から始めるか

1週目:1システムで退職者の残存を数える

もっとも特権的なシステムを1つ選び、権限一覧と人事マスタの在籍者を突き合わせます。退職者・休職者の権限が何件残っているかを数えてください。 AIは使いません。Excelで足ります。この数字が、経営に説明するための材料になります。

2週目:権限カタログを30行つくる

そのシステムの特権(管理者、承認、マスタ更新、個人情報アクセス)について、権限コードと業務上の意味を書きます。設計書がなければ、システムの管理者に聞いて作ります。 この作業自体が、属人化の解消になります。

3週目:確認依頼文を試す

残存権限の一覧とカタログを生成AIに渡し、業務部門の責任者向けの確認依頼文を作らせます。実際に責任者に見せて、「これで判断できるか」を聞いてください。 ここが、この構成の価値が出るかどうかの分かれ目です。

4週目:Entra ID Governance との比較を済ませる

対象25本のうち、Entra IDに統合されているのが何本かを数えます。統合率が高いなら、標準のアクセス レビュー機能を使うほうが合理的です。 ライセンス費用と実装費用を比べて決めてください。

2か月目: 自前で組むと決めたら、まずEntra IDと基幹システムの2系統について、週次の取得と突き合わせを作ります。判定は6種類すべてではなく、「退職者」「異動後残存」「申請記録なし」の3種類から始めます。

3か月目以降: 対象システムを広げ、職務分離の横断チェックと対応状況の追跡を追加します。並行して権限カタログを厚くし、description_source: not_in_catalog の件数が減っていくことを指標にします。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-14/最終更新:2026-09-14
確認した内容情報源確認日
GET /users/{id}/appRoleAssignments でユーザーに付与されたアプリロール割り当てを取得でき、直接メンバーになっているグループ経由の割り当ても含まれること。委任アクセスでの最小権限が AppRoleAssignment.ReadWrite.All または Directory.Read.All であることMicrosoft Graph: List appRoleAssignments granted to a user2026-09-14
Microsoft Entra のアクセス レビューで、グループのメンバーシップ、接続されたアプリケーションへの割り当て、Entra ロール、Azure リソースロール、アクセスパッケージの割り当てをレビューでき、週次・月次・四半期・年次で繰り返し実施できること。この機能に Microsoft Entra ID Governance または Microsoft Entra Suite のサブスクリプションが必要で、一部の機能は Microsoft Entra ID P2 で動作することMicrosoft Learn: What are access reviews?2026-09-14
Microsoft Graph の権限(スコープ)と、必要な Entra ロールの一覧Microsoft Graph permissions reference2026-09-14
Claude API に、出力をJSONスキーマに沿わせる構造化出力の機能があること(2026-09-14時点ではベータ機能)Claude Platform Docs: Structured outputs2026-09-14

SaaS・基幹システム・ファイルサーバからの権限取得方法は、製品によって異なります。この部分は利用環境に応じた個別確認が必要です。 職務分離ルールの定義と、監査で求められる証跡の形式についても、自社の内部統制部門と監査法人に確認してください。権限構成情報を外部サービスに送ることの可否は、自社の情報セキュリティ方針によります。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0065)についてのご相談はこちらから。

AI活用について相談する
目次