ファイルとゲスト/Experience Cloudユーザー:情報漏洩リスク
SalesforceでファイルがゲストやExperience Cloudユーザーに公開される仕組み — Visibility項目、レコード共有による設定、そしてデータを漏洩させる設定ミスを解説します。
ファイルアクセスは内部だけでも十分に難しいものです。そこにExperience Cloud(コミュニティ)とゲストユーザーが加わると、両方向で問題がさらに先鋭化します。外部ユーザーに見せたいファイルが表示されないことがある一方で、見せたくないファイルが一般公開されてしまうこともあります。どちらも、同じわずかな設定に行き着きます。ここでは、それらを正しく設定する方法を解説します。
外部ユーザーは同じモデルを使う — ただし1つ追加のゲートがある
コミュニティユーザーとゲストユーザーは、他の全員と同じContentDocumentLinkモデルを通じてファイルを参照します。しかし、内部ユーザーがめったに直面しない追加のゲートがあります。それがリンクのVisibility項目です。
| Visibility | 対象に含まれるユーザー |
|---|---|
AllUsers | 内部ユーザーおよび外部/コミュニティユーザー |
InternalUsers | 内部ユーザーのみ |
SharedUsers | 明示的に共有されたユーザーのみ |
Experience Cloudユーザーがレコードに添付されたファイルを参照するには、2つの条件が両方とも満たされる必要があります。すなわち、そのレコードにアクセスできること、かつファイルのリンクのVisibilityに外部ユーザーが含まれていること(通常は
AllUsers)です。
これが「コミュニティユーザーはレコードを参照できるのに、そのファイルは参照できない」という問い合わせが非常に多い理由です。レコードアクセスは問題ないのに、VisibilityがInternalUsersになっているのです。
障害パターン1:表示されるべきファイルが表示されない
無害な方のパターンです。コミュニティユーザーはケースを開けるのに、その添付ファイルが見当たりません。修正策はほとんどの場合、ファイルのContentDocumentLinkのVisibilityであり、コミュニティ内でアップロードされたファイルが正しいvisibilityを継承するようにすることです。レコード共有ではなく、リンクを確認してください。
障害パターン2:表示されるべきでないファイルが表示される
危険な方のパターンであり、このトピックがセキュリティ上重要である理由です。
ゲストユーザーは認証されていません。 彼らはあなたの公開サイトへの匿名の訪問者です。そのため、ゲストユーザーの設定が公開するものはすべて、事実上インターネット全体で利用可能になります。
- 機密ファイルに対する公開リンク(仕様上、ログイン不要)。
- ゲストユーザープロファイルが到達できるレコードに添付され、
AllUsersvisibilityが設定されたファイル。 - 過度に広い共有セット/共有ルールが、ゲストまたは外部の対象に意図以上のレコード — したがって意図以上のファイル — へのアクセス権を与えている場合。
過度に寛容なゲストアクセスは、最も頻繁に報告されるSalesforceのデータ漏洩問題の1つです。誤って公開してしまったレコードに、ファイルも一緒についてきてしまうのです。
監査すべき2つのゲートを、一緒に
外部のファイルアクセスはレコードアクセスとファイルのVisibilityの両方に依存するため、この2つをペアとして確認しなければなりません。
- ゲストユーザーと外部ユーザーはどのレコードに到達できるか?(コミュニティの共有モデル、共有セット、共有ルール。)
- それらのレコードに添付されたファイルのVisibilityはどうなっているか?
- 機密ファイルに公開リンクはないか?
目指すべき最終状態は、公開するつもりだったファイルだけが外部の対象に到達可能であり、それ以外は何も到達できない状態です。そこに至るための核心的な問いは、レコードアクセスモデルの他の部分とまったく同じであり、ただ最もリスクの高い対象を相手にするだけです。
一般公開で実際に何に到達できるかを把握する
外部のレコードアクセスかけるファイルのVisibilityプラスあらゆる公開リンク — この組み合わせこそが、ゲストユーザーへの公開を誤判断しやすく、手作業での検証を困難にしている要因です。AgentForceAccessは、内部アクセスを評価するのと同じやり方でこれを評価します。ゲストユーザーやコミュニティユーザーに何が見えるかを問い、彼らが到達するレコードと、それらのレコードが公開するファイルをたどります。これにより、「何かが一般公開に漏れていないか」が、実際に答えられる問いになります。
よくある質問
コミュニティユーザーがアクセスできるレコード上のファイルを参照できないのはなぜですか?
最も多い原因は、ContentDocumentLinkのVisibilityがInternalUsersに設定されていることです。これはレコードアクセスが正常でも外部ユーザーを除外します。コミュニティユーザーにファイルを公開するには、通常Visibility = AllUsersが必要です。Visibilityが対象を除外している場合、レコードアクセスだけでは不十分です。
ゲストユーザーとファイルに関するリスクは何ですか?
ゲストユーザーは認証されていない訪問者です。その共有設定や公開リンクが公開するファイルは、事実上インターネット上の誰でも利用できる状態になります。過度に広いゲストアクセス、あるいは放置された公開リンクは、最も一般的なSalesforceのデータ漏洩の発見事項の1つです。
コミュニティにおいて、ファイルのVisibilityはレコード共有とどう関係しますか?
これらは2つの別々のゲートです。ユーザーは(コミュニティの共有モデル、共有セット、共有ルールを通じて)レコードへのアクセス権を持ち、なおかつファイルのリンクのVisibilityに外部ユーザーが含まれている必要があります。両方が揃わなければなりません。これがコミュニティのファイルアクセスがサポートやセキュリティで頻繁に話題になる理由です。
コミュニティでファイルを公開する前に何を確認すべきですか?
まずゲストユーザーと外部ユーザーがどのレコードに到達できるかを確認し、次にそれらのレコードに添付されたファイルのVisibilityを確認します。公開リンクがあればすべて監査します。目的は、意図したファイルだけが — それ以外は一切 — 外部の対象に到達可能になることです。
あなたの組織で試してみる
AgentForceAccessは、あらゆるユーザーがあらゆるレコードやファイルを見られる理由を、Salesforceのすべての共有の仕組みを横断して、わかりやすい言葉で説明します。
先行アクセスを申し込む