ACLが効かない時に最初に確認すべき3点|ServiceNow資格学習者が必ず詰まる原因とは?

ServiceNow

ServiceNowを学習していると、**「ACLを設定したはずなのに制御されない」**という場面に必ず遭遇します。
特にCSA(Certified System Administrator)を目指す学習者にとって、ACLは避けて通れない重要分野です。

本記事では、
ACLが効かない時に“最初に”確認すべき3点を、試験対策と実務の両方の視点から整理します。
やみくもにACLを書き直す前に、まずここを確認してください。

本番形式で慣れるのが合格への近道。UdemyのServiceNow模擬問題集を人気順で一覧比較できます👇

ACLの基本を誤解していないか

ACLが効かない原因の多くは、ACLの種類そのものを誤解していることにあります。
ServiceNowのACLは、大きく次の3種類に分かれます。

  • Table ACL:テーブル全体に対する権限制御
  • Field ACL:特定フィールドに対する制御
  • Record ACL:レコード単位での制御(Condition / Script)

特に初心者が混乱しやすいのが、**「Table ACLを書いたのにフィールドが編集できる」**というケースです。

ServiceNowでは、
フィールドACLが存在する場合、テーブルACLよりも優先されます。

つまり、

  • Table ACLで write=false にしても
  • Field ACLで write=true になっていれば
    フィールドは編集可能

という挙動になります。

試験対策ポイント

CSA試験では、
**「なぜACLが効かないのか?」**という問いに対して、
「設定が間違っている」ではなく
**“どのACLが評価されているか”**を答えさせる問題がよく出ます。

ロールは本当にユーザーに付与されているか

ACLが正しく書かれていても、ユーザー側のロールが原因で効いていないケースは非常に多いです。

よくある勘違いは次の3つです。

  • ロールを グループに付けただけで満足している
  • 上位ロールを付けたら 下位ロールも自動で評価されると思っている
  • impersonate せずに adminのまま確認している

ServiceNowでは、
ACLは「ログインユーザーが直接 or 間接的に持つロール」だけを評価します。

特に注意すべきポイント

  • グループ経由でロールが付与されているか
  • ロール継承(contains)が想定通りか
  • adminはACLをバイパスすることがある

adminで見えている=一般ユーザーでも見える
これはCSA学習者が最初にハマる落とし穴です。

実務・試験での鉄則

ACL確認時は必ず
Impersonate User を使い、対象ユーザーで動作確認する。

この癖を付けておくだけで、ACLトラブルは激減します。

Condition / Script が評価されていない

ACLのScriptやConditionが「正しく見える」のに効かない場合、
そもそもACL自体が評価されていないケースがあります。

これはCSAでも実務でも頻出です。

よくある原因

  • operation(read / write / create / delete)が想定と違う
  • table名を間違えている
  • Field ACLを書いたつもりが Table ACLになっている
  • より具体的なACLに上書きされている

ServiceNowのACLは、
より具体的なACL(field > table)が優先評価されます。

つまり、

  • table.level でACLを書いたが
  • table.field にACLが存在している

この場合、table.level側のScriptは一切評価されません。

Security Debug の活用

ACLが効かない時は、
**Security Debug(Debug Security Rules)**を必ず使いましょう。

  • どのACLが評価されたか
  • なぜtrue / falseになったか
  • どこで落ちたか

がすべてログで確認できます。

CSA試験でも
「Security Debugで何が分かるか」は重要論点です。

それでもダメなら確認すべき応用ポイント

ここまでの3点を確認しても解決しない場合、次をチェックします。

  • ACLのActiveがfalseになっていないか
  • Script内で current を誤用していないか
  • gs.hasRole() のロール名が正しいか
  • カスタムテーブルで継承(extends)が影響していないか

ただし、最初からここを見る必要はありません。
ほとんどのケースは、ここまで紹介した3点で解決します。

ACLが苦手な人におすすめの学習方法

ACLは
「仕様理解 → 実例 → 失敗体験」
の順で学ばないと定着しません。

公式ドキュメントだけでは、
「なぜ効かないのか?」が理解しにくいのが正直なところです。

そのため、
画面操作を見ながらACLを確認できるUdemy教材は非常に相性が良いです。

  • ACLの評価順
  • Field ACLの落とし穴
  • Security Debugの実演

これらを動画で一度体験しておくと、
CSA試験でも実務でも確実に差が付きます。

本番形式で慣れるのが合格への近道。UdemyのServiceNow模擬問題集を人気順で一覧比較できます👇

ACLが効かない時は「書き直す前に3点確認」

ACLが効かないと焦ると、
ついScriptを書き直したり、ロールを追加したりしがちです。

しかし本当に大切なのは、次の3点を冷静に確認することです。

  1. どの種類のACLが評価されているか
  2. ユーザーに正しくロールが付与されているか
  3. ACL自体が評価対象になっているか

この順番で確認するだけで、
ACLトラブルの8割以上は解決できます。

ServiceNow資格学習においても、
ACLは「暗記」ではなく「挙動理解」が合格への近道です。

ぜひこの記事を、
ACLで詰まった時のチェックリストとして活用してください。

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