クラウドサービスの設定を社内基準に照らして毎月点検する
クラウドサービスの推奨設定の一覧と現在の状態を毎月取り出し、社内のセキュリティ基準と突き合わせて、外れているもの・意図して外しているもの・人が見るべきものに分けます。担当者の作業は、120項目を1つずつ調べることから、分けられた結果と理由を確かめることに変わります。
- 利用ツール
- ChatGPT/Claude/Gemini/Google Apps Script/Make/n8n/Power Automate/Python/Zapier
- 対象業界
- IT・SaaS/保険/医療/自治体/金融
- 対象部門
- 情報システム/法務
- 対象業務
- 内容確認・チェック/比較検討
- 主な課題
- 人手が足りない/属人化している/確認ミスが多い
- AIで行う処理
- 判定
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 月初に、情報システム担当者が Microsoft Defender ポータルを開く
- 推奨されるアクションの一覧と、それぞれの現在の状態を確認する
- 業務系SaaS 12種の管理画面を1つずつ開き、設定を確認する
- 社内のセキュリティ基準の文書(Word)を開き、該当する記述を探す
- 基準と現在の状態が合っているかを、項目ごとに判断する
- 外れている項目について、心当たりのある担当者に理由を聞く
- 前月の点検記録のExcelを開き、前回と変わっていないかを見る
- 点検記録のExcelに、今月の状態と判断を書き込む
- 是正が必要なものを、作業依頼として起票する
- 法務部と、記録の文言をすり合わせる
- 自動毎月1日、点検の処理が始まる
- 自動推奨されるアクションの一覧と、現在の状態を取得する
- 自動業務系SaaSの設定を取得する(APIまたは管理画面のエクスポート)
- 自動各項目に、その値がいつ時点のものかを付ける
- 自動構造化した社内のセキュリティ基準と突き合わせる
- 自動前月の点検結果と比べ、変わった項目を出す
- 自動5つの区分に振り分ける
- 自動基準から外れている項目に、理由の候補を添える
- 人情報システム担当者が、判定結果を確認する
- 人外している項目について、理由を確定する
- 人法務担当者が、記録として残す文言を確認する
- 自動点検記録へ書き込む
- 自動是正が必要なものを起票する
各工程の詳しい説明を読む
- 月初に、情報システム担当者が Microsoft Defender ポータルを開く
- 推奨されるアクションの一覧と、それぞれの現在の状態を確認する
- 業務系SaaS 12種の管理画面を1つずつ開き、設定を確認する
- 社内のセキュリティ基準の文書(Word)を開き、該当する記述を探す
- 基準と現在の状態が合っているかを、項目ごとに判断する
- 外れている項目について、心当たりのある担当者に理由を聞く
- 前月の点検記録のExcelを開き、前回と変わっていないかを見る
- 点検記録のExcelに、今月の状態と判断を書き込む
- 是正が必要なものを、作業依頼として起票する
- 法務部と、記録の文言をすり合わせる
問題は6つあります。
(a)項目が多く、全部は見られない。 月120項目を2名で見ます。1項目14分でも月28時間。 実際には目に付いたものから見て、残りは前月の記録を写す運用になります。
(b)社内基準が文章のままで、項目と対応しない。 基準の文書には「アクセスは必要最小限とする」といった記述があります。目の前の推奨アクションがこの記述に当たるのかどうかは、読んだ人の解釈で決まります。
(c)外している理由が残っていない。 基準から外れている項目を見つけても、なぜそうなっているかは記録にありません。 心当たりのある担当者を探して聞くことになり、その担当者が異動していれば、そこで止まります。
(d)前月との違いが分からない。 Excelは月ごとにファイルが分かれています。2つを並べて見比べる作業は、120項目分やると現実的ではありません。 結果として、先月から変わった項目こそ見落とされます。
(e)誰が変えたかを追えない。 状態が変わっていることに気づいても、変更した本人にたどり着く手段がありません。 管理画面の監査ログを見れば分かる場合もありますが、そこまで追う時間はありません。
(f)聞かれたときに答えられない。 取引先のセキュリティ確認や監査で「なぜこの設定なのか」を問われ、その場で調べ直すことになります。 点検は毎月しているのに、その結果が答えの形になっていません。
もう1つ、構造的な問題があります。 この業務は、やらなくても当面は何も起きません。点検が薄くなったことは、事故が起きるまで誰にも見えません。
「推奨どおりにする」を目標にしないことも大事です。 外している設定を毎月「未対応」として並べ続けると、一覧が意味を失います。
- 【自動】 毎月1日、点検の処理が始まる
- 【自動】 推奨されるアクションの一覧と、現在の状態を取得する
- 【自動】 業務系SaaSの設定を取得する(APIまたは管理画面のエクスポート)
- 【自動】 各項目に、その値がいつ時点のものかを付ける
- 【自動】 構造化した社内のセキュリティ基準と突き合わせる
- 【自動】 前月の点検結果と比べ、変わった項目を出す
- 【自動】 5つの区分に振り分ける
- 【自動】 基準から外れている項目に、理由の候補を添える
- 【人】 情報システム担当者が、判定結果を確認する
- 【人】 外している項目について、理由を確定する
- 【人】 法務担当者が、記録として残す文言を確認する
- 【自動】 点検記録へ書き込む
- 【自動】 是正が必要なものを起票する
自動化されるのは「設定の取得」「基準との突き合わせ」「前月との差分」「区分への振り分け」「理由の候補の作成」の5つです。残るのは、理由を確定することと、それを記録として認めることです。
設定の変更はしません。 この構成は点検であって是正ではありません。自動で設定を変えると、業務が止まります。 是正は起票までで、実際に変えるのは人です。
理由を確定するのも人です。 この構成が作るのは理由の候補までで、候補をそのまま記録にすると、監査で説明できなくなります。 「なぜこの設定なのか」と問われて、「AIがそう書いたので」とは答えられません。
9から11の工程が、この構成の中心です。 自動化された部分は材料を作っているだけで、記録としての価値は、人が確定したところに生まれます。
02今回想定するシステム構成
【トリガー】毎月1日(n8n の Schedule Trigger) │ ▼ Microsoft Defender ポータル(セキュア スコア) │ ・推奨されるアクションの一覧 │ ・各アクションの現在の状態 │ ・その値がいつ時点のものか │ ▼ 他のSaaSの設定を取得(APIまたは管理画面のエクスポート) │ ・セキュア スコアの対象に含まれないサービス │ ▼ 社内のセキュリティ基準(構造化した一覧)と突き合わせる │ ▼ 前月の点検結果と差分を取る │ ▼ Claude API(判定と理由の文章化) │ ・5つの区分に振り分ける │ ・外れているものに理由の候補を添える │ ・人が見るべきものに、なぜ要るかを書く │ ▼ 【人】情報システムと法務が確認して理由を確定 │ ├──▶ 点検記録へ └──▶ 是正の起票
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | n8n | Power Automate、Make、Zapier |
| 処理 | Claude API(社内基準との突き合わせと理由の文章化) | OpenAI API、Gemini API |
| 集計 | Python | Google Apps Script |
設定の取得元である Microsoft Defender ポータルと各SaaSの管理画面、点検の記録を置くExcelは、この構成が扱うデータの出入口であって、組み込む製品ではありません。
Microsoft セキュア スコアは、組織のセキュリティ体制を測定する指標で、スコアが高いほど推奨される対策がより多く実施されていることを示します。Microsoft Defender ポータルで確認します。ポイントは、推奨されるセキュリティ機能の構成、セキュリティ関連のタスクの実行、Microsoft 以外のアプリケーションまたは代替の軽減策で推奨されるアクションに対処することで得られます。
この構成にとって重要なのは、スコアの点数ではありません。 推奨されるアクションの一覧と、それぞれの現在の状態が、機械で取り出せる形で並んでいることです。
セキュア スコアに含まれる製品は Microsoft 製品だけではありません。 Microsoft Entra ID、Exchange Online、SharePoint Online、Microsoft Teams、Microsoft Purview 情報保護、各種の Microsoft Defender に加えて、Okta、Salesforce、ServiceNow、Zoom、GitHub、DocuSign、Citrix ShareFile が対象に含まれます。業務系SaaSの一部を、同じ枠で扱えます。
n8n の Schedule Trigger ノードは、秒・分・時・日・週・月・カスタム(Cron式)の7種類の間隔を設定できます。月単位を選べるため、月次の点検をそのまま表現できます。複数のトリガールールを追加して、異なるスケジュールで動かすこともできます。
03どうやって実装するのか
処理の起点を決める
毎月1日の定時を起点にします。n8n の Schedule Trigger ノードで月単位の間隔を指定します。
取得だけを毎週行い、突き合わせと判定は月1回にするという組み方も考えられます。Schedule Trigger は複数のトリガールールを追加でき、異なるスケジュールでノードを動かせるためです。日単位を選ぶ場合は「Days Between Triggers」「Trigger at Hour」「Trigger at Minute」を指定します。
タイムゾーンの確認を先にしてください。 Schedule Trigger はワークフローの設定を優先し、未設定ならn8nインスタンスの設定を使います。自己ホスト版の既定は America/New_York です。 日本時間の1日朝に動かすつもりが、前月末の夜に動いていた——という取り違えが起きます。
Schedule ノードをトリガーに使うワークフローは、保存して公開する必要があります。 編集しただけでは動きません。また、Cron式で変数を使う場合、値はワークフローの公開時にだけ評価されます。 変更したら再公開してください。
実行を逃した場合の動作も決めておいてください。 インスタンスが停止していて実行を逃した場合の動作は設定できます(n8n 2.36 以降)。月次の点検は、月に1回しか機会がありません。 欠けた月があると、翌月の「前月との差分」も取れません。
手動で起動できる入口も用意してください。 取引先からの照会が届いたとき、月初を待たずに取りたくなります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 推奨されるアクションの一覧 | 推奨事項の名称、現在の状態、対象の製品 | Microsoft Defender ポータル |
| その他のSaaSの設定 | 管理画面で確認できる設定項目と、その値 | 各SaaSのAPIまたはエクスポート |
| 社内のセキュリティ基準 | 基準の文言、対応する推奨アクション、自社での必須度 | 情報システム部の文書を構造化したもの |
| 前月の点検結果 | 前月の区分、理由、承認者、再確認の時期 | 点検記録 |
| 受け入れたリスクの記録 | 意図して外している項目と、その承認者・期限 | 点検記録 |
| 利用しているライセンスの範囲 | どの機能を実際に使っているか | 情報システム部の管理台帳 |
| 変更の記録 | 管理画面の監査ログから取れる範囲 | 各サービス |
「受け入れたリスクの記録」を独立した入力にしている点が要です。 これがないと、意図して外している項目が毎月「未対応」として並び直します。
データの取得方法を決める
推奨されるアクションと現在の状態: Microsoft Defender ポータルのセキュア スコアから取ります。ここで押さえておくべき性質が3つあります。
第1に、ライセンスの有無に関わらず、製品に関して考えられる推奨事項の完全なセットが表示されます。 契約していない機能の推奨も一覧に含まれるため、点検の対象から外す判定を、こちら側で持つ必要があります。
第2に、更新の頻度が項目によって違います。 スコアはリアルタイムで更新され、毎日同期して各アクションで達成されたポイントのシステムデータを受信します。ただし、Microsoft Teams と Microsoft Entra 関連の推奨事項は、構成状態の変更で更新されるほか、それぞれ月に1回・週に1回更新されます。 毎月1日に取った値でも、項目によっては数週間前の状態を見ていることがあります。
第3に、スコアの付き方が一様ではありません。 推奨される各アクションは10ポイント以下の価値があり、そのほとんどはバイナリ形式で、その他は構成全体に対する割合でスコア付けされます。完全に完了した時点でのみポイントが与えられるものと、一部のデバイスやユーザーで完了すると部分的なポイントになるものがあります。 ポイントの数字をそのまま判定に使わないでください。
アクセス許可は読み取り専用で組んでください。 アクセス許可は Microsoft Defender Unified RBAC(Exposure Management の read または manage)か、Microsoft Entra のグローバルロールで与えられます。セキュリティ リーダーやグローバルリーダーなどは読み取り専用です。 点検の処理は読むだけなので、書き込める権限を持たせる理由がありません。
その他のSaaSの設定: セキュア スコアの対象に含まれないサービスは、個別に取ります。APIがあればAPIで、なければ管理画面のエクスポート機能で取ります。12種すべてを最初からAPIでつなごうとしないでください。 手作業でエクスポートしたファイルを読む形で始めれば、早く動き出せます。
社内のセキュリティ基準の構造化: ここがこの構成でいちばん重い作業です。 基準が文章のままでは突き合わせられません。次の形にしてください。
| 列 | 例 |
|---|---|
| 基準ID | 基準文書の章と項の番号 |
| 基準の文言 | 文書に書かれている記述をそのまま |
| 対応する推奨アクション | 推奨事項の名称(複数可) |
| 自社での必須度 | 必須/推奨/自社では対象外 |
| 例外を認める条件 | どういう場合なら外してよいか |
| 承認者 | 例外を認められる役職 |
| 再確認の時期 | 外した場合、いつ見直すか |
「例外を認める条件」の列が、この構成でもっとも効きます。 これがないと、外れている項目はすべて是正の対象になります。
この一覧は、一度に作り切ろうとしないでください。 まず前月の点検で問題になった項目と、取引先から聞かれたことのある項目から埋めてください。 対応が付いていない項目は「判断が付かない」として人へ回せばよく、空白のまま運用を始められます。
前月の点検結果: 差分を取るために、点検記録は毎月同じ形で残す必要があります。月ごとにExcelファイルを分ける今の形のままでは、機械で比べられません。 1行1項目1月の形にして、1つの表に積んでください。
AIへ渡す前に整形する
- 項目の名寄せ … 推奨事項の名称は、製品の更新で変わることがあります。突き合わせ用の識別子を、名称とは別に持ってください
- 対象外の判定 … 契約していない機能の推奨を、点検の対象から外します
- 状態の正規化 … 「完了」「一部完了」「未対応」「代替の軽減策で対処」といった形に揃えます
- 値の時点の付与 … その項目が、いつ時点の状態なのかを付けます。更新の頻度が項目によって違うため、ここを省けません
- 社内基準への対応づけ … 構造化した基準の一覧と、項目を突き合わせます
- 前月との差分の算出 … 状態が変わった項目を洗い出します
- 識別子の除去 … テナント名、管理者のアカウント名、組織の固有の識別子を落とします
7が、外部のAIサービスへ渡す設計を決めます。 突き合わせに必要なのは、設定の項目名、現在の状態、社内基準の文言までです。
6の差分は、Pythonで取るのが確実です。 前月と今月の表を突き合わせるだけの処理です。ここを生成AIにやらせると、見落としが出ます。 機械的に決まることは機械で決めてください。
AIに処理させる
4つの処理をさせます。
(1)社内基準との突き合わせと、区分への振り分け
| 区分 | 意味 | 記録すること |
|---|---|---|
compliant | 社内基準を満たしている | 状態と確認日 |
deviation | 基準から外れており、理由も記録されていない | 是正の起票 |
accepted_risk | 意図して外しており、理由と承認者が記録されている | 理由・承認者・再確認の時期 |
changed_since_last | 前月から状態が変わった | 変わった内容と、誰が変えたか |
undetermined | 取得できない、基準との対応が付かない | 人が見る |
accepted_risk を区分として持つことが、この構成のいちばんの工夫です。 セキュア スコアには、推奨されるアクションを適用できない、または実行したくない場合に「リスクを受け入れる」または「残りのリスクを受け入れる」を選べる仕組みがあります。また、推奨されるアクションを、Microsoft 以外のソリューションまたは代替の軽減策の対象としてマークすることもできます。
外していること自体は悪ではありません。 サービス側に、そのための選択肢が用意されています。問題は、外している理由が記録されていないことです。 deviation と accepted_risk を分けるのは、この違いです。
(2)前月からの変化の説明
前月から状態が変わった項目について、何がどう変わったかを文章にします。 誰が変えたかは、管理画面の監査ログから取れる範囲で付け、取れなければ空にします。
(3)外している理由の候補の作成
deviation と判定された項目について、なぜ外れているのかの候補を書かせます。 社内基準の「例外を認める条件」、前月までの記録、同じ製品の他の項目の状態を材料にします。書けるのは「こういう理由である可能性がある」までです。実際の理由は、設定を変えた人しか知りません。
(4)人が見るべきものの切り分け
undetermined と判定した項目について、なぜ判断が付かないのかを書かせます。 「基準に対応する記述が見当たらない」「値が取得できなかった」「複数の基準に当たる」——理由が分かれば、人の確認が速くなります。
させないことを先に決めてください。
- 設定の変更を実行させない。 この構成は読むだけです
- 理由を確定させない。 候補までです
- 承認させない。 承認者の欄をAIに埋めさせないでください
- リスクの大小を断定させない。 「この設定は危険です」といった記述を出させないでください
指示内容を固定する
あなたは情報システム部で、クラウドサービスの設定の月次点検を担当する者です。
取得した設定の状態を、社内のセキュリティ基準に照らして区分に振り分けてください。
【厳守事項】
- 設定の変更を提案しないでください。
「この設定を有効にしてください」と書かないでください。
区分の振り分けと、外れている理由の候補までにしてください。
- 外している理由を確定しないでください。
reason_draft に書くのは候補です。
「〜という理由で外していると考えられる」という形にし、
断定の形で書かないでください。
- approver(承認者)の欄を、あなたが埋めないでください。
必ず空にしてください。承認は人が行います。
- 記載がなければ「不明」としてください。
社内基準に対応する記述が見当たらない場合は、
status を undetermined とし、推測で対応づけないでください。
- 前月の記録に理由と承認者が残っている項目だけを accepted_risk としてください。
理由が残っていない項目は、外れていれば deviation です。
「たぶん意図的だろう」と判断しないでください。
- state_source_date には、その値がいつ時点のものかを必ず入れてください。
分からない場合は「不明」とし、needs_human を true にしてください。
- リスクの大小を断定しないでください。「危険です」と書かないでください。
- スコアの点数を根拠に優先度を決めないでください。
優先度は社内基準の必須度で決めます。
- 一般的なセキュリティの推奨で補わないでください。
社内基準に書かれていないことを、基準として扱わないでください。
【社内のセキュリティ基準(基準ID/文言/対応する推奨アクション/必須度/
例外を認める条件/承認者/再確認の時期)】
{internal_baseline}
【今月取得した設定の状態(項目名/サービス/現在の状態/値の時点)】
{current_state}
【前月の点検結果(項目名/区分/理由/承認者/再確認の時期)】
{previous_result}
【当社が契約している機能の範囲】
{licensed_scope}
【前月からの差分(機械的に算出したもの)】
{diff}
「approver をあなたが埋めないでください」の指示が、この構成の芯です。 承認者の欄が埋まっていると、それを見た人は「誰かが承認した」と受け取ります。AIが埋めた承認者は、監査で説明できません。
「理由が残っていない項目は deviation とする」も外せません。 生成AIは、外れている理由をそれらしく補おうとします。補われると、記録として残っていないことが見えなくなります。
出力形式を固定する
{
"check_date": "",
"items": [
{
"item_id": "",
"service": "",
"recommended_action": "",
"current_state": "",
"internal_baseline": "",
"status": "compliant | deviation | accepted_risk | changed_since_last | undetermined",
"reason_draft": "",
"approver": "",
"last_checked": "",
"state_source_date": "",
"needs_human": { "value": false, "why": "" }
}
]
}
構造化する理由は、この出力が毎月積み上がるからです。 項目ごとに同じ形で残して初めて、changed_since_last の判定が成立します。
state_source_date を別に持たせる理由は、更新の頻度が項目によって違うからです。 点検した日と、その値が実際に取られた時点は同じではありません。「いつ時点の値か」を持たないと、点検の意味が薄れます。 監査で示した日付と実際の時点がずれていれば、記録そのものの信頼が落ちます。
reason_draft は候補にとどめます。 ここがこの記事の要です。AIが書いた理由をそのまま記録に残すと、監査で説明できません。 出せるのは、判断した人が確定した理由だけです。候補は、確定作業を速くするための下書きです。
approver が空であることに意味があります。 空は「まだ誰も承認していない」という状態です。埋まっていない項目が一覧で見えることが、点検の成果物になります。
システムへ連携する
出力は点検記録へ書き込み、是正が必要なものを起票するところまでです。
| 出力先 | 内容 |
|---|---|
| 点検記録 | 項目ごとの区分、理由、承認者、値の時点 |
| 起票 | deviation の項目を、作業依頼として登録する |
| 通知 | changed_since_last と undetermined を、確認の依頼として知らせる |
設定を変える連携は作らないでください。 外している理由が業務上の必要だった場合、戻した瞬間に業務が止まります。
起票も、deviation に限ってください。 accepted_risk を起票すると、意図して外しているものに毎月作業依頼が立ちます。現場は、その起票を閉じるために時間を使うことになります。
再確認の時期が来た accepted_risk だけは、別に知らせてください。 受け入れたリスクを、永久に受け入れたままにしないためです。
人が確認する
この構成では、人の確認が成果物そのものです。 自動処理は材料を作るだけです。
| 確認すること | 誰が | なぜ |
|---|---|---|
deviation の項目 | 情報システム | 本当に理由がないのか、記録が漏れているだけかを確かめる |
reason_draft の妥当性 | 情報システム | 候補が実態と合っているか |
| 確定した理由の文言 | 法務 | 監査や取引先の照会で、そのまま出せる文章か |
accepted_risk の承認者 | 法務 | 承認できる立場の人が承認しているか |
changed_since_last の項目 | 情報システム | 誰が、何のために変えたのか |
undetermined の項目 | 情報システム | 基準との対応を付ける |
1つ目が最重要です。 deviation と出た項目のうち、実際には理由があるのに記録されていなかっただけ、というものが最初の数か月は大量に出ます。 これを1件ずつ潰していく作業が、この構成の導入そのものです。
3つ目の法務の確認が、この構成を「聞かれたときに答えられる」状態にします。 情報システム部が書いた技術的な説明は、社内では通じても、取引先のセキュリティ確認の回答としては言葉が足りないことがあります。
undetermined の確認結果を、基準の一覧へ戻してください。 対応が付かなかった項目に人が対応を付けたら、それを基準の一覧に書き足します。この積み上げで、翌月の undetermined が減ります。
確認を速くする設計が効きます。
deviationとchanged_since_lastを上に並べる- 前月の理由と、今月の候補を左右に並べる
- 承認者が空の項目に印を付ける
- 再確認の時期が過ぎた
accepted_riskを別に出す - 各項目に、社内基準の該当箇所を引用して添える
5つ目が、確認の速さを決めます。 基準の文書を開き直さずに、その場で判断できる形にしてください。
例外に対処する
| 起きること | 対応 |
|---|---|
| SaaSのAPIが応答しない | その月は取得できなかったとして undetermined にする。前月の値を流用しない |
| 新しい推奨事項が増えた | undetermined として人へ回す。基準との対応を付ける |
| 契約していない機能の推奨が並ぶ | 対象外として除く。除いたことを記録に残す |
| 値の時点が取得できない | state_source_date を「不明」とし、needs_human を立てる |
| 前月の記録が欠けている | 差分を取らない。「前月から変化なし」と書かない |
| 社内基準に対応する記述がない | undetermined。一般的な推奨で代用しない |
| AIが理由を断定した | プロンプトで禁止する。テストで確認する |
| AIが承認者を埋めた | 出力から除き、空に戻す |
| AIが設定の変更を提案した | 出力から除く。この構成は是正しない |
| 状態が部分的(一部のみ適用) | 「一部適用」として扱う。完了にも未対応にもしない |
| 外部のAIサービスへ識別子が混ざった | 前処理で落とす。渡す前に検査する処理を置く |
「前月の値を流用しない」が、いちばん守るべきところです。 取得できなかった月を前月の値で埋めると、記録の上では点検したことになります。取れなかったことを、取れなかったと残してください。
記録を残す
この記録は、監査と取引先のセキュリティ確認でそのまま使われます。
- 取得した設定の状態と、その値の時点
- 項目ごとの区分と、確定した理由
- 承認者と、承認した日
- 前月からの差分
- AIが出した候補と、人が確定した文言の両方
undeterminedから対応を付けた履歴- 取得できなかった項目と、その理由
候補と確定文言の両方を残すことに意味があります。 候補がどれだけ書き直されたかが分かれば、基準の一覧の「例外を認める条件」を厚くすべき箇所が見えます。
記録は、改ざんできない形で残してください。 点検の記録は、監査で「その時点でそうだった」ことの証拠として使われます。あとから書き換えられる形では、証拠になりません。 追記だけができる形にするか、月次で確定して別の場所へ複製してください。
04実装レベルの3段階
半自動化の時点で、14分が8分程度になります。 設定を管理画面で1つずつ確認する時間が消えるためです。本格構成では5分になりますが、減るのは前月との比較と、理由を思い出す時間です。 本格構成の「前月との差分」は、現状ほとんど行われていない作業です。 ここは時間削減というより、これまでできていなかったことができるようになる部分です。設定がいつの間にか変わっていることに、その月のうちに気づけます。 「再確認の期限管理」も同じです。 受け入れたリスクに期限を付け、期限が来たら見直す——という運用は、仕組みがなければ続きません。 最小構成で止める判断も、規模によってはあり得ます。 点検の対象が30項目程度なら、四半期に1度、手作業でエクスポートして判定させる運用で足ります。 月120項目という規模だからこそ、自動化の価値が出ます。 半自動化の段階で、必ず取引先のセキュリティ確認に使ってみてください。 点検記録が、そのまま回答の材料になるかを確かめます。ここで「結局、調べ直した」となるなら、記録の形が足りていません。
05工数削減シミュレーション
導入後 120件 × 5分 ÷ 60 = 10 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- Microsoft 365 を中心に複数のSaaSを使っており、情報システム部門が数名で運用している企業。取引先からセキュリティの確認を求められることがあり、そのたびに設定を調べ直している場合。監査で「なぜこの設定なのか」を説明できずに困った経験がある場合。管理者が複数いて、誰がいつ何を変えたかを追えていない場合。
- クラウドサービスをほとんど使っておらず、点検の対象になる設定が数十項目に満たない場合。専任のセキュリティ部門があり、設定の変更管理が申請と承認の仕組みとして既に回っている場合。管理者が1名で、すべての変更を本人が把握できている小規模な組織。
07最小構成で試す方法
- Microsoft Defender ポータルから、推奨されるアクションの一覧と現在の状態を手作業でエクスポートする
- 社内のセキュリティ基準から、まず20項目分だけを構造化した一覧にする
- その20項目について、生成AIに区分の振り分けと理由の候補の作成をさせる
- 情報システム担当者が、判定結果を1件ずつ確かめる
- 法務担当者が、理由の文言を見る
見るのは次の4点です。
| 見る点 | 判断 |
|---|---|
deviation と accepted_risk の分け方が正しいか | 理由の記録があるかどうかだけで分かれているか |
| 理由の候補が、担当者の認識と合うか | 合わないなら「例外を認める条件」の書き方を直す |
| 承認者の欄が空のままか | 埋まっていたらプロンプトを直す。ここは絶対に守る |
| 断定や、設定変更の提案が混ざっていないか | 混ざったらプロンプトを直す |
3つ目が最重要です。 承認者が埋まった記録は、記録として成立しません。1件でも埋まったら、先へ進まずにプロンプトを直してください。
20項目に絞る理由は、基準の構造化が重いからです。 120項目分の「例外を認める条件」を最初に書き切ろうとすると、この段階で止まります。
次に、2か月分のデータで差分を試してください。 先月と今月のエクスポートを両方渡し、変わった項目が拾えるかを確かめます。 ここが動かないと、この構成の価値の半分が出ません。
最後に、法務の確認を必ず入れてください。 技術的な判定が正しくても、文言が記録として使えなければ意味がありません。 監査で出せる文章になっているかを、この段階で見てもらってください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 項目によって更新の頻度が違う | 毎日更新される項目と、月1回・週1回しか更新されない項目がある。 値の時点を必ず持つ |
| 毎月1日の値が数週間前のものだった | state_source_date を記録に出す。点検日と混同しない |
| 契約していない機能の推奨が一覧に並ぶ | ライセンスの有無に関わらず完全なセットが表示される。 対象外の判定を自前で持つ |
| スコアの点数で優先度を決めてしまう | 優先度は社内基準の必須度で決める。点数は目的ではない |
| AIが承認者を埋める | 禁止する。テストで必ず確認する |
| AIが理由を断定する | 候補であることを出力の形で示す |
| AIが設定の変更を提案する | 禁止する。この構成は点検であって是正ではない |
| 意図して外している項目が毎月起票される | accepted_risk を区分として持つ。起票は deviation だけ |
| 社内基準が文章のままで対応が付かない | 構造化した一覧を作る。空白のまま運用を始めてよい |
| 基準の構造化を情報システム部だけで進める | 法務部と合同で決める。「例外を認める条件」は合意事項 |
| 前月の記録が月ごとに別ファイルで比べられない | 1つの表に積む形へ変える |
| 推奨事項の名称が変わって突き合わせが外れる | 名称とは別に識別子を持つ |
| SaaSのAPIが応答せず前月の値で埋めた | 流用しない。取れなかったと残す |
| 外部のAIサービスへテナント名が渡る | 前処理で落とす。渡す前に検査する |
undetermined が毎月同じ項目で出続ける | 人が付けた対応を、基準の一覧へ書き戻す |
| 受け入れたリスクが見直されない | 再確認の時期を持ち、期限が来たら別に出す |
| タイムゾーンの既定で実行日がずれた | 自己ホスト版の既定は America/New_York。 先に設定する |
| ワークフローを公開し忘れて動かない | Schedule ノードを使うワークフローは保存して公開する |
| 月次の実行を逃したまま気づかない | 逃した場合の動作を設定する。欠けると翌月の差分も取れない |
「項目によって更新の頻度が違う」は、この構成で最初に当たる壁です。 毎月1日に取った一覧が、その日の実態をそのまま映しているとは限りません。state_source_date を持つのは、この食い違いを記録の上で見えるようにするためです。 ここを飛ばすと、点検の記録そのものが実態と合わなくなります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 自社のクラウドサービスの設定の状態と、社内のセキュリティ基準。点検の結果そのものが、自社の弱点の一覧になります。
- 点検結果の取り扱い …
deviationの一覧は、どこが守られていないかを並べた文書です。 閲覧範囲を情報システム部と法務部に絞ってください。全社の共有フォルダに置かないでください - 外部AIへ渡す範囲を決める … 渡すのは設定の項目名、現在の状態、社内基準の文言までにしてください。テナント名、管理者のアカウント名、組織の固有の識別子は渡さない設計にできます
- 渡す前に検査する処理を置く … 設計で決めても、データの形が変われば混ざります。外部へ送る直前に、機械的に確かめてください
- 設定の変更を自動化しない … この構成は点検であって是正ではありません。 判定結果を受けて自動で設定を変えると、業務が止まります。是正は起票までです
- スコアを上げること自体を目的にしない … 出典に明記されているとおり、セキュア スコアは「システムまたはデータが侵害される可能性を絶対的に測定することではない」とされ、「セキュリティ侵害に対する保証として解釈しない」とあります。点数を上げることと、自社の業務に合った設定にすることは別です
- 記録を改ざんできない形で残す … 点検の記録は、監査や取引先のセキュリティ確認で「その時点でそうだった」ことの証拠に使われます。あとから書き換えられる形では証拠になりません
- 理由を確定するのは人 … AIが書いた理由をそのまま記録に残さないでください。 監査で説明できません。承認者の欄をAIに埋めさせないことも、同じ理由です
- 取得アカウントの権限 … 点検の処理は読むだけです。読み取り専用の権限で組んでください
- 記録の保存期間 … 監査で参照される可能性を考えて、保存期間を決めてください
- 自動実行してよい範囲 … 設定の取得、基準との突き合わせ、区分への振り分け、理由の候補の作成までです。理由の確定、承認、是正の実施は人が行います
誤りが起きた場合のリスクは、外れている項目を compliant と判定して見落とすことと、理由が記録されている項目を deviation として無駄に起票することです。前者のほうが重大です。 見落とした項目は、次に誰かが気づくまで残り続けます。
10まず何から始めるか
1週目:社内のセキュリティ基準を20項目だけ構造化する
基準の文書から、まず取引先から聞かれたことのある項目と、前回の監査で問われた項目を選んでください。 列は第7章の表のとおりです。「例外を認める条件」を書くところで必ず議論になります。 そこが、この構成のいちばんの価値です。
2週目:現在の状態を手作業でエクスポートする
Microsoft Defender ポータルから推奨されるアクションの一覧と現在の状態を取り出し、20項目分を抜き出します。 値の時点が項目によって違うことを、ここで確かめてください。
3週目:判定を試す
区分の振り分けと理由の候補の作成をさせます。deviation と accepted_risk の分け方を1件ずつ確かめてください。 承認者の欄が空のままかも、ここで見ます。
4週目:法務部に文言を見てもらう
確定した理由が、監査や取引先の照会でそのまま出せる文章になっているかを見てもらいます。技術的な判定が正しくても、ここが通らなければ記録になりません。
2か月目: 項目を60まで広げ、2か月分のデータで差分を試します。前月から変わった項目が拾えることを確認してください。 同時に、点検記録を1つの表に積む形へ変えます。
3か月目以降: 毎月の取得を自動化し、120項目へ広げます。undetermined から人が付けた対応を、基準の一覧へ書き戻す運用を必ず始めてください。
半年後: deviation の件数の推移を見てください。導入直後は多く、理由の記録が進むにつれて減っていくはずです。 減らない項目は、本当に是正すべきものか、「例外を認める条件」が足りていない項目です。同時に、取引先のセキュリティ確認に点検記録をそのまま使えたかも確かめてください。
1年後には、受け入れたリスクの見直しが一巡します。 再確認の時期が来た accepted_risk を並べ、その理由が今も有効かを確かめてください。 外したまま誰も見直さない状態を作らないことが、この構成の最後の目的です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| セキュア スコアが組織のセキュリティ体制を測定する指標であり、推奨されるセキュリティ機能の構成・セキュリティ関連のタスクの実行・Microsoft 以外のアプリケーションまたは代替の軽減策での対処でポイントが得られること。推奨されるアクションを実行できない、または実行したくない場合に「リスクを受け入れる」を選べること | Microsoft Learn: Microsoft セキュア スコア | 2026-09-25 |
| ライセンスの有無に関わらず完全な推奨事項が表示されること。Microsoft Teams と Microsoft Entra 関連の推奨事項がそれぞれ月に1回・週に1回更新されること。Okta / Salesforce / ServiceNow / Zoom / GitHub / DocuSign などが対象に含まれること。「セキュリティ侵害に対する保証として解釈しない」と明記されていること | 同上 | 2026-09-25 |
| Schedule Trigger ノードが秒・分・時・日・週・月・カスタム(Cron式)の間隔を設定でき、複数のトリガールールを持てること。タイムゾーンの既定と、保存して公開する必要があること | n8n Docs: Schedule Trigger | 2026-09-25 |
社内のセキュリティ基準の内容、例外を認める条件、承認の権限は、業種と自社の規程によって異なります。この部分は自社の情報システム部門と法務部門の定めに応じた個別対応が必要です。 この記事は、特定のセキュリティ基準への適合や、設定の推奨値を示すものではありません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0239)についてのご相談はこちらから。
