Salesforceの「View All / Modify All」— 注意すべき共有のバイパス
View AllとModify AllはSalesforceの共有モデルをひそかにバイパスします。その挙動、由来、確認すべき対象、そしてAIエージェントにとって重要な理由を解説します。
Salesforceの共有モデルの大部分は、レコードアクセスを慎重に付与することに関するものです。View All と Modify All はそれを根本から覆します。これらは共有を完全に無視して、ユーザーにすべてを参照または変更させるのです。管理者にとっては不可欠ですが、広まると危険な存在になります。ここでは、その挙動と、それらをどう管理下に置くかを解説します。
これらが実際に行うこと
これらの権限は 共有モデルをバイパス します。組織の共有設定(OWD)、ロール階層、共有ルール、そのすべてです。
- View All — オブジェクトのすべてのレコードを参照できます。
- Modify All — オブジェクトのすべてのレコードを参照、編集、削除、さらに移行できます。
ケースに対してView Allを持つユーザーは、組織の共有設定が「非公開」で、共有ルールがひとつも見当たらなくても、組織内のすべてのケースを参照できます。そのオブジェクトについて、共有はそのユーザーには単純に適用されないのです。
これらが存在する場合、共有モデルの残りの部分は無関係になります。これらは共有モデルの上位に位置するからです。
2つのスコープ: オブジェクト単位 対 システム全体
| 権限 | スコープ | 効果 |
|---|---|---|
| View All(オブジェクト) | 1つのオブジェクト | そのオブジェクトのすべてのレコードを参照 |
| Modify All(オブジェクト) | 1つのオブジェクト | そのオブジェクトのすべてのレコードを完全に制御 |
| View All Data | 組織全体 | (ほぼ)すべてのオブジェクトのすべてのレコードを参照 |
| Modify All Data | 組織全体 | (ほぼ)すべてのオブジェクトのすべてのレコードを完全に制御 |
オブジェクトレベルのものはスコープが限定されており、正当な場合もあります。システム全体の View All Data / Modify All Data は重火器です。強力であり、最も厳重に守るべきものです。
どこから来るのか
- System Administratorプロファイル — デフォルトでView All DataとModify All Dataが付属しています。
- カスタムプロファイルと権限セット — 一度きりの要件(「サポートに全ケースを見せるだけ」)を解決するために頻繁に付与され、その後忘れ去られます。
ユーザーの権限はプロファイルと割り当てられたすべての権限セットの 和集合 であるため、これらは複数ある権限セットのいずれかに潜んでいる可能性があります。これこそが、見失いやすい理由です。これらはプロファイルと権限セットと密接に関係しています。
アクセスがおかしいときに最初に確認すべき理由
ユーザーが見えてはいけないレコードを見えてしまうとき、「共有」ボタンには何も表示されないことがあります。そのアクセスはそもそも共有から来ていないからです。View All / Modify Allは、共有として現れることなくアクセスを付与します。ですから、共有ルールを掘り下げる前に、まずこれらを除外してください。
AIエージェントにとって二重に重要な理由
AIエージェントは実行ユーザーの権限を継承します。そのIDが View All Data を持っている場合、エージェントは要求に応じて組織内のすべてのレコードを読み取ることができ、設定したすべての共有ルールをバイパスしてしまいます。エージェントのIDがこれらの権限を持っていないことを確認することは、展開前のアクセス監査における中核的なステップです。
管理下に置く方法
- すべてのプロファイルと権限セットについて、オブジェクトレベルのView All/Modify Allとシステム全体のView All Data/Modify All Dataを 棚卸し します。
- それぞれを直接または権限セット経由で保持している ユーザーを一覧化 します。
- 最小権限の原則を適用 します。アクセスが本当に組織全体に及ぶ必要がない箇所では、一律のView Allをスコープ限定の共有ルールに置き換えます。
- 変更後に再確認 します。新しい権限セットが、ひそかにバイパスを再導入してしまうことがあります。
バイパスを自動的に可視化する
難しいのは、これらの権限が共有を探す場所には現れないことです。これらは別個のスイッチであり、多数ある権限セットのいずれかに存在して、他のすべてをひそかに上書きします。AgentForceAccessはこれらを自動的に考慮に入れます。あるユーザー(またはエージェントのユーザー)がなぜレコードを参照できるのかを説明する際、「このユーザーはView All Dataを持っている。だから共有は適用されない」という事実を、どの共有ルールとも同じくらい明確に提示します。これにより、バイパスが見落としの原因であり続けることはなくなります。
よくある質問
View AllとModify Allは具体的に何をするものですか?
これらは共有モデルを無視して、オブジェクトのすべてのレコードへのアクセスを付与します。View Allはすべてのレコードを参照できることを意味し、Modify Allはすべてのレコードを参照、編集、削除、移行できることを意味します。オブジェクトレベルのものは1つのオブジェクトに適用され、システム全体の「View All Data」と「Modify All Data」は(ほぼ)すべてのオブジェクトに一度に適用されます。
デフォルトでこれらの権限を持っているのは誰ですか?
System AdministratorプロファイルにはView All DataとModify All Dataが含まれています。それ以外にも、カスタムプロファイルや権限セットにも現れます。多くの場合、一度きりのアクセス要件を解決するために追加され、そのまま削除されません。管理者だけでなく、すべてのプロファイルと権限セットを監査してください。
なぜこれらはAIエージェントにとって危険なのですか?
エージェントは実行ユーザーの権限を継承します。そのユーザーがView All Dataを持っている場合、エージェントは要求に応じて組織内のすべてのレコードを読み取ることができ、慎重に設定したすべての共有をバイパスしてしまいます。エージェントを展開する前に、そのIDがこれらの権限を持っていないことを確認してください。
View All / Modify Allを持つユーザーをどうやって見つければよいですか?
各プロファイルと権限セットについて、オブジェクトレベルのView All/Modify Allとシステム全体のView All Data/Modify All Dataを確認し、それぞれの割り当てユーザーを一覧化します。この権限はユーザーが保持する複数の権限セットのいずれからでも付与され得るため、手作業では非常に手間がかかります。
あなたの組織で試してみる
AgentForceAccessは、あらゆるユーザーがあらゆるレコードやファイルを見られる理由を、Salesforceのすべての共有の仕組みを横断して、わかりやすい言葉で説明します。
先行アクセスを申し込む