ServiceNow CSAセキュリティ|権限・ACL・責任範囲を守りで考える

ServiceNow CSA Security Center 判断ガイドのアイキャッチ(可視化・検出・対応・責任) ServiceNow資格対策

ServiceNowのセキュリティは、CSA試験でも実務でも「用語は知っているのに、いざ設定や設問になると手が止まる」領域です。ACLは知っている。Roleも知っている。Security Centerという画面があることも、Shared Responsibilityという言葉も聞いたことがある。それでも「目の前の要件に対して、どの仕組みで守るのが正しいのか」と問われると迷う。

迷う理由はシンプルで、これらの仕組みがそれぞれ別の「層」で動いているからです。画面で隠す層、データ操作を止める層、リスクを可視化する層、責任を分ける層。どの層の話をしているのかが曖昧なまま用語だけを覚えると、試験では「もっともらしい誤答」に引っかかり、実務では「守ったつもりで守れていない」状態を作ってしまいます。

この記事では、2つの実際に起こりがちな事故を入口に、ServiceNowのセキュリティを4つの層として並べ直します。そのうえで、試験で出される設問がどの層を問うているのかを見抜く視点と、自分のPDI(Personal Developer Instance)で確かめる手順までをつなげます。

ある会社で起きた、権限放置とAPI経由の情報漏えい

ある組織で、監査の直前に複数の問題が同時に発覚しました。

ひとつめは権限の放置です。入社時に管理者が個々のユーザーへ直接ロールを割り当てる運用をしていて、退職や異動のたびの後始末が人によってバラバラでした。半年後、セキュリティ監査で「退職した社員の管理者相当アカウントが残ったまま」「なぜそのユーザーがその権限を持っているのか誰も説明できない」状態が見つかります。権限が役割ではなく「人」に紐づいていたため、説明責任そのものが失われていました。高権限アカウントは、乗っ取られたときの被害が大きい入口です。使われていないアカウントも、攻撃対象を無駄に広げているだけでした。

ふたつめはデータ保護の誤解です。給与テーブルのフォームで、担当者がUI Policyを使って「金額」フィールドを非表示にしていました。画面から消えたので問題は片付いたと思い込んでいたのです。ところが数日後、一般ユーザーがリスト表示・REST API・レポートの3経路から給与額を取得できることが分かります。UI Policyはフォームの見た目だけを制御していて、データへのアクセスそのものは一切止めていませんでした。フィールドのACLが設定されていなかったのが原因です。

そして全体として、これらのリスクを俯瞰している人が誰もいませんでした。未対応のセキュリティ推奨が溜まり、分類済みデータが想定外に持ち出され、それでも「どこに何のリスクがあるか」が一覧化されていなかった。問題が起きてから初めて、断片的に気づくしかなかったのです。

この事故は、たまたま運が悪かったわけではありません。「画面で見えない」ことと「アクセスできない」ことを混同し、権限を人に紐づけ、リスクを誰も追跡していなかった——3つのほころびが重なった結果です。そして、その3つはServiceNowではそれぞれ別の層で対処すべきものでした。

ServiceNowのセキュリティを「4つの層」で捉える

ServiceNowセキュリティの4層:Role/Groupで配る、ACLで守る、Security Centerで見える化、Shared Responsibilityで分ける
図:ServiceNowセキュリティは、権限を配る層、データを守る層、リスクを見える化する層、責任を分ける層で整理すると判断しやすくなります。

セキュリティの仕組みを、目的ごとに4つの層に分けて並べます。混乱したときは、いま自分がどの層の話をしているのかをここで確かめてください。

仕組み役割
配るRole / Group誰に何を許すかを配る。権限を役割と所属で管理する
守るACL(Table / Field)データ操作そのものを制御する。read/write/create/deleteを全経路で守る
見える化するSecurity Centerインスタンスのリスクと対応すべき項目を可視化・追跡する
分けるShared ResponsibilityServiceNowと顧客、どちらの責任かを切り分ける

この4層を貫く前提がひとつあります。「画面で隠す」ことは「データを守る」ことではない、という原則です。第1層と第2層の違いが分からないままだと、最初の事故の給与フィールドのような取り違えが必ず起こります。

第1層:Role と Group ——「誰に何を許すか」を配る

権限を配る層から見ていきます。ここでつまずく典型は、冒頭の事故そのもの——個々のユーザーに直接ロールを割り当てる運用です。

権限のないユーザーでアクセスした際にSecurity constraintsでブロックされたServiceNow実画面
PDIの実画面:必要なロールを持たないユーザーで保護されたページを開くと、Security constraints でアクセス自体がブロックされる。Impersonate(代理ログイン)を使うと、この見え方の違いを安全に確認できる。

直接割り当ては、最初は手っ取り早く感じます。けれど時間が経つと、誰がどの権限を、なぜ持っているのかが追えなくなります。退職者にアクセスが残り、緩い権限が見えないところで積み上がり、それがそのまま攻撃の入口になり、監査のたびに調査コストが膨らみます。権限が「人」に貼り付いているからです。

CSAで正解とされる設計は、権限を「役割」に紐づけることです。手順としてはこうなります。

  1. 職務や役割を表す Group を作る
  2. Role は個人ではなく、その Group に付与する
  3. ユーザーは Group のメンバーとして出し入れする

こうすると権限が役割中心になります。異動はグループの付け替えで済み、監査はグループ単位の確認で済む。「このグループ=この権限」という対応関係が常に明確で、個別割り当ての取りこぼしが消えます。

試験での判断軸として覚えておきたいのは、User・Group・Role の関係です。User は個人アカウント、Group は複数Userのまとまり、Role は機能・操作権限——この3つの役割を正しく対応づけられるかが問われます。「権限の対応を入れ替える」「役割を取り違える」形の誤答に乗らないことが大切です。

第2層:ACL ——データ操作そのものを守る

UI Policyはフォームの見た目だけを隠す。リスト・API・レポート・モバイルからデータが漏れる。Field ACLは全経路を守る
図:UI Policyは画面の見た目を変える仕組みです。データそのものを守るにはField ACLで全経路を制御します。

次は、データそのものを守る層です。最初の事故の「金額フィールドをUI Policyで隠した」失敗が、まさにこの層の取り違えでした。

ServiceNowのAccess Control(ACL)一覧の実画面。4万件超のACLが定義されている
PDIの実画面:Access Control(ACL)の一覧。標準状態でも4万件を超えるACLが定義されており、テーブル・フィールド・操作の単位でアクセスが制御されていることが分かる。

UI Policyでフィールドを隠すと、フォーム上からは消えます。最もよく使う1画面では確かに見えなくなるので、対処できたように見えてしまう。けれど守られていないルートが残ります。

  • リスト表示:金額が見える
  • REST API:金額が取得できる
  • レポート:金額が集計できる
  • モバイル:金額が露出する

UI Policyはフォームのレイアウトを制御するだけで、データの権限には一切関与しないからです。見えなくなった分だけ、かえって「漏れていることに気づけない」状態になります。

正しく守るには Table ACL / Field ACL を設定します。ACLでは read / write / create / delete の操作権限を定義し、ロール条件・スクリプトによる条件・直接割り当てといった方法で制御します。重要なのは、ACLがアクセス方法に関係なく一律に適用される点です。フォームからでも、リストからでも、APIからでも、レポートからでも、同じルールが効きます。

ここから導ける原則が「見えない ≠ アクセスできない」です。画面表示の制御(UI Policy)と、データ保護(ACL)は、設計上はっきり別物として扱う。試験で「機密フィールドを保護したい」と問われてUI Policyを選ぶのは誤りで、Field ACLが正解になります。

第3層:Security Center ——放置・高権限・未対応を可視化する

権限を配り、データを守る設定をしても、それが時間とともに崩れていないかを誰かが見ていなければ、最初の事故のように「気づいたら手遅れ」になります。それを防ぐのが、リスクを一画面で可視化する Security Center です。

Security Centerは、インスタンスのセキュリティ状態をまとめて表示します。主に次のものが見えます。

  • コンプライアンススコア / At a glance:全体の状態を一望する
  • Findings:セキュリティチェック違反や設定上の検出結果
  • Customer Actions:顧客が実施すべきセキュリティ対応(期限つき)
  • 特権・未使用アカウント:Active privileged accounts と Never logged-in users
  • データ保護 / ログイン保護:分類済みデータの持ち出しや、ログイン失敗の傾向

ここでCSAとして外せない考え方が、検出を見るだけでは、リスクは下がらないという点です。Findingsを眺めて満足してはいけません。Findingsは「何を直すべきか」を教えてくれるだけで、直す作業は別に必要です。

正しい運用は、Findingsを Security Task に変換し、担当者と期限を付けて実際の対応を追跡することです。ここで使ってはいけないのが Mute の誤用です。Muteは一時的な抑制であって、解決ではありません。使うなら理由と再確認日を残し、根本対応をSecurity Taskで進めます。

Customer Actionsについても同じ落とし穴があります。「ServiceNow側がやってくれる項目」だと勘違いして放置すると、期限が過ぎても何も進みません。Customer Actionsは、後述するShared Responsibilityにおける顧客側の責任として、期限で優先順位を付けて処理します。

そして高権限・未使用アカウント。最初の事故の核心でした。Active privileged accounts と Never logged-in users を定期的に棚卸しし、権限が必要最小限か確認し、退職者や不要なアカウントを削除する。これで攻撃対象が縮みます。

ここで多くの人がはまるのが「スコアを上げること自体が目的になる」罠です。スコアは上がったのに、Customer Actionsは未対応のまま、高権限アカウントも残ったまま——という状態は、見かけだけが整って中身は危ないままです。

進んでいる気がする操作実際に起きていること正しい対応
FindingsをMuteして件数を減らすスコアは上がるが原因は未修正Security Taskで根本対応する
評価範囲を狭めてスコアを上げる監視外の領域にリスクが残る運用の信頼性に基づいて評価する
Customer Actionsを後回しにする顧客側のリスクが残り続ける期限で処理し責任範囲を明確にする
可視化で止まる検出だけではリスクは下がらない検出をSecurity Taskの対応につなぐ

試験で「最も適切な対応は?」と問われたら、スコアや見かけの数字ではなく、実際にリスクが下がり、説明責任が果たせる選択肢を選びます。

第4層:Shared Responsibility ——「クラウドだから安全」という誤解

最後は、責任を分ける層です。ここを誤解していると、第1〜3層をいくら整えても土台が崩れます。

ありがちな思い込みが「ServiceNowはクラウドで提供されているから、セキュリティはベンダーの仕事だ」というものです。ある組織では、この前提のまま運用していたところ、公開ポータルから外部に見せるつもりのなかったテーブルデータが見えてしまいました。原因は、弱いACL、公開ページの設定ミス、データ分類の不在。ポータルのリンクを知っていれば誰でも見られる状態だったのです。

クラウド提供は「ベンダーが面倒を見てくれている」という錯覚を生みやすく、その分だけ顧客はインスタンス側の対策に投資しなくなります。実際の責任分担は次のように分かれています。

責任範囲ServiceNow顧客
インフラ / 物理
サービス可用性
インスタンスのACL / 権限
ユーザー認証・認可
データ分類
ロールの割り当て
公開ページの設定
Customer Actionsへの対応

この表が示すのは、ServiceNowが守るのは基盤と可用性まで、ということです。設定・構成・認証・データの扱いは顧客の領域に入ります。だからこそ、Security CenterのCustomer Actionsは「顧客が完了させるべきタスク」として現れるのです。ここでも「有効化した ≠ 守られた」が効きます。機能を有効にしただけで完了とみなさず、Shared Responsibility Modelを物差しにして、どの対策が顧客側に属するかを洗い出し、それが実際に設定されているかを確認する——この検証ステップまでがセットです。

試験で問われる判断パターン

ここまでの4層を、設問でどう問われるかという視点で一枚にまとめます。CSAのセキュリティ設問は「やりたいこと」を提示して、それを実現する仕組みを選ばせる形が中心です。誤答はたいてい、層を取り違えた「もっともらしい選択肢」になっています。

やりたいこと使う仕組み理由引っかかりやすい誤答
多数のユーザーに同じ権限を配りたいRole / Group権限を集約し、異動・退職に強くなる個人へロールを直接割り当てる
すべてのアクセス経路でデータ操作を制御したいACL(Table / Field)フォーム・リスト・API・レポートに一律で効くUI Policyで非表示にするだけ
インスタンス全体のリスク状態を把握したいSecurity Center(Findings + Customer Actions)可視化し、Security Taskで追跡するスコアを上げて完了とみなす
自社とベンダーの責任を切り分けたいShared Responsibility Model顧客側の対策範囲を定義するクラウドだから全部安全と考える

判断の軸はひとつです。「制御しているように見える」選択肢ではなく、「実際にデータ・操作・責任を制御している」選択肢を選ぶ。隠す・スコアを上げる・有効化する、はいずれも見かけの安心であって、守れている証拠にはなりません。

PDIで確認するセキュリティ設定の手順

理解を定着させるには、自分のPDIで実際に触るのが近道です。次の順番で確かめてください。画像で残しておくと、後から見返したときに記憶が戻りやすくなります。

  1. Access Control(ACL)テーブルを開く:ナビゲーションから sys_security_acl を開き、テーブルとフィールドのread/writeルールを観察する。どのオペレーション(read / write / create / delete)にどんな条件が付いているかを見る。
  2. User / Group / Role の流れを作る:Groupを1つ作り、そこにRoleを付与し、ユーザーをそのGroupのメンバーに追加する。個人に直接付けず、所属で権限が継承されることを確認する。
  3. Impersonate Userで検証する:一般ユーザーになりすまし(Impersonate)、フォーム・リスト・APIで先ほどのデータにアクセスを試みる。UI Policyではなく、ACLが効いて操作が止まることを確かめる。
  4. Security Centerを開く:コンプライアンススコア、Findings、Customer Actions、特権アカウント一覧を確認する。Findingから対応タスク(Security Task)への流れをたどる。
  5. データ分類と公開ページを確認する:データ分類のルールと、公開ポータル側のACL設定を見て、外部に出る経路が想定どおりに絞られているかを確認する。

手を動かすと、「見えないだけ」と「アクセスできない」の違いが体感で分かります。Impersonateでフォームから消えたフィールドがリストやAPIで取れてしまう状態を一度自分で再現しておくと、試験でUI PolicyとField ACLを取り違えなくなります。

まとめと、次に学ぶ範囲

ServiceNowのセキュリティは、4つの層で捉えると一気に整理できます。

  • 配る(Role / Group):権限は人ではなく役割に紐づける。Groupに Role を付け、ユーザーは所属で出し入れする
  • 守る(ACL):データはACLで守る。UI Policyの非表示は「見えない」だけで「アクセスできない」ではない
  • 見える化する(Security Center):Findingsは見るだけでなく Security Task にして追跡する。スコアではなく「リスクが下がったか」で評価する
  • 分ける(Shared Responsibility):設定・認証・データ分類・公開ページは顧客の責任。Customer Actions は顧客側のタスクとして期限で処理する

事故が起きたのは、知識がなかったからではありません。層を取り違え、見かけの安心で止まってしまったからです。設問でも実務でも、「制御しているように見える」ではなく「実際に制御している」を選ぶ——この軸を持てば、セキュリティ領域の判断はぶれなくなります。

次は、ここで整理した判断軸を設問形式で試すのが効果的です。CSAのセキュリティ領域に絞った演習で弱点を洗い出し、曖昧だった層をPDIで再確認する、という流れで進めてください。

よくある質問

Q. UI PolicyとACLは、結局どちらでフィールドを守ればいいですか? A. データを守るのはACL(Field ACL)です。UI Policyはフォームの表示・必須・読み取り専用を制御するもので、リスト・API・レポートには効きません。「機密データを保護する」要件ならField ACLを設定します。UI Policyは、あくまで画面の使い勝手を整える目的に限定して使ってください。

Q. Security Centerのスコアを上げれば、セキュリティは良くなったと考えていいですか? A. スコアは状態を測る目安であって、ゴールではありません。FindingsをMuteしたり評価範囲を狭めたりすればスコアは上がりますが、原因は残ったままです。Findingsを Security Task に変換して根本対応し、Customer Actions を期限で処理し、高権限・未使用アカウントを棚卸しする——「リスクが実際に下がったか」で判断してください。

Q. クラウドサービスなのに、なぜ顧客側にセキュリティ責任があるのですか? A. Shared Responsibility Modelでは、ServiceNowがインフラ・物理・サービス可用性を担い、顧客がインスタンスのACL・認証・データ分類・ロール割り当て・公開ページ設定・Customer Actionsへの対応を担います。基盤は守られていても、設定や権限の不備による漏えいは顧客側の領域です。「有効化した=守られた」ではない、と捉えてください。

タイトルとURLをコピーしました