Locking Down Record Access in Salesforce

IT

With the powerful Salesforce sharing features, you can support collaboration within your organization while keeping sensitive information secure. And while you must always balance collaboration with security, there are situations in which you might need to make absolutely sure that record access is limited to a very small number of people, regardless of their position within the corporate hierarchy.

Salesforce の強力な共有機能を使用すると、機密情報を安全に保ちながら、組織内のコラボレーションをサポートできます。 また、常にコラボレーションとセキュリティのバランスを取る必要がありますが、企業階層内での立場に関係なく、レコードへのアクセスを非常に少数の人々に確実に制限する必要がある状況もあります。 この投稿では、そのために使用できる共有機能と戦略について学びます。

When Even the CEO Shouldn’t See Certain Records

There might be many reasons why your organization needs to restrict access to especially confidential data. Two situations that we have seen particularly often are:

  • Mergers and acquisitions – These events can shake up the market, and access is typically restricted to the small group of people actively working any particular deal. If this group is formed of specialists from different parts of the organization, the M&A data could be exposed too broadly through the normal operation of the role hierarchy.
  • Highly confidential client relationships – In some fields and industries, such as health care and private banking, only the individuals working directly with customers should have access to their data. Even senior executives are not allowed to see this private information.

In these cases, the role hierarchy that simplifies how record access is provided to managers works against you. Fortunately, you can use other Salesforce sharing features to set up the tightly restricted access you need for these situations.

組織が特に機密データへのアクセスを制限する必要がある理由は数多くあると考えられます。 特によく見られる 2 つの状況は次のとおりです。

  • 合併と買収 – これらのイベントは市場を揺るがす可能性があり、アクセスは通常、特定の取引に積極的に取り組んでいる少数の人々に制限されます。 このグループが組織のさまざまな部門の専門家で構成されている場合、ロール階層の通常の運用を通じて M&A データが広範囲に公開される可能性があります。
  • 機密性の高い顧客関係 – ヘルスケアやプライベート バンキングなどの一部の分野や業界では、顧客と直接やり取りする個人のみがデータにアクセスできるようにする必要があります。 たとえ上級幹部であっても、この個人情報を見ることは許可されていません。

このような場合、マネージャーにレコードへのアクセスを提供する方法を簡素化するロール階層は不利に機能します。 幸いなことに、他の Salesforce 共有機能を使用して、このような状況に必要な厳しく制限されたアクセスを設定できます。

Sharing Strategies for Maximum Security

When your confidential data is contained in a custom object, you can easily prevent record access from rolling up a hierarchy for that specific object. From Setup, click Security Controls | Sharing Settings. In the Organization-Wide Defaults section, you should see the Grant Access Using Hierarchies column.

If you set a custom object’s organization-wide default to Private and deselect “Grant Access Using Hierarchies” for that object, then without additional sharing, only record owners and administrators can access the object’s records.

機密データがカスタム オブジェクトに含まれている場合、レコード アクセスによってその特定のオブジェクトの階層がロールアップされるのを簡単に防ぐことができます。 [設定] から、[セキュリティ コントロール] | [共有設定] をクリックします。 [組織全体の共有設定] セクションに、[階層を使用したアクセスの許可] 列が表示されます。

カスタム オブジェクトの組織全体のデフォルトをプライベートに設定し、そのオブジェクトの「階層を使用したアクセスの許可」の選択を解除すると、追加の共有なしで、レコードの所有者とシステム管理者のみがオブジェクトのレコードにアクセスできます。

If your security challenge is like the previous “highly confidential client relationships” use case, deselecting the “Grant Access Using Hierarchies” option will do most of your security work for you. You will also want to thoroughly review these other areas to make sure the data is locked down as tight as possible.

  • Profile settings and permission sets that grant the “View All” or “Modify All” permissions for the confidential objects
  • Sharing rules, Apex managed sharing, and other sharing mechanisms that might expose confidential records
  • Encrypted fields that restrict particularly sensitive information, even for those users who can see protected records

In the case of merger and acquisition activity, shutting off the default hierarchy access is only half the job. Once you protect the data in this way, you then need to make sure that all the people on the M&A team have access. To accomplish this goal, you can take advantage of a public groups option that you might not have noticed in the past.

セキュリティ上の課題が前述の「機密性の高いクライアント関係」のユースケースに似ている場合は、「階層を使用したアクセスの許可」オプションの選択を解除すると、セキュリティ作業のほとんどが行われます。 また、これらの他の領域を徹底的に確認して、データが可能な限り厳重にロックされていることを確認することも必要になります。

  • 機密性の高いオブジェクトの「すべて表示」または「すべて変更」権限を付与するプロファイル設定と権限セット
  • 共有ルール、Apex 管理共有、および機密記録が公開される可能性のあるその他の共有メカニズム
  • 保護されたレコードを閲覧できるユーザーであっても、特に機密情報を制限する暗号化フィールド

合併・買収活動の場合、デフォルトの階層アクセスを遮断するだけでは仕事の半分にすぎません。 この方法でデータを保護したら、M&A チームの全員がアクセスできるようにする必要があります。 この目標を達成するには、これまで気づかなかったパブリック グループ オプションを利用できます。

If you create a public group and add everybody on the M&A team as members, they will all have access to whichever records are shared to that group. Deselecting “Grant Access Using Hierarchies” for the group ensures that this access isn’t extended to managers who are higher in the role hierarchy than the M&A team’s members. You can then share data to the group with ownership based sharing rules, criteria-based sharing rules, or Apex code, and record owners can share their records to the group using manual sharing.

公開グループを作成し、M&A チームの全員をメンバーとして追加すると、全員がそのグループに共有されているレコードにアクセスできるようになります。 グループの「階層を使用してアクセスを許可する」の選択を解除すると、このアクセスが M&A チームのメンバーよりも役割階層の上位にあるマネージャーに拡張されなくなります。 その後、所有権ベースの共有ルール、条件ベースの共有ルール、または Apex コードを使用してグループにデータを共有できます。そして、レコード所有者は手動共有を使用してレコードをグループに共有する事もできます。

Record Ownership and Standard Objects

When implementing the strategies described in this blog post, it’s important to keep in mind that every record in Salesforce must have an owner. And unless a record owner doesn’t have the Delete object permission—which you can configure through a custom profile—the record owner has full power to delete any record he or she owns. The record owner also has the ability to manually share those records to any other user. Even if you remove the Sharing button from the user’s page layout, the underlying permission remains. So there is a risk that technically savvy users could find a way to share records they own programmatically.

このブログ投稿で説明されている戦略を実装するときは、Salesforce のすべてのレコードに所有者が必要であることに留意することが重要です。 また、レコード所有者がオブジェクトの削除権限 (カスタム プロファイルを通じて構成できます) を持っていない場合を除いて、レコード所有者は、自分が所有するレコードを削除する全権限を持ちます。 レコードの所有者は、それらのレコードを他のユーザーと手動で共有することもできます。 ユーザーのページ レイアウトから [共有] ボタンを削除しても、基礎となる権限は残ります。 そのため、技術に精通したユーザーが、所有するレコードをプログラムで共有する方法を見つけてしまうリスクがあります。

This level of security might fit with what you need for the “confidential customer relationship” scenario, where the record owner is acting as an adviser and a manager of the client’s business. In that case, it does make sense for the record owner to manage the sharing of the record personally. But this might not be desirable, and it certainly doesn’t fit the use case for M&A activity. If you, as an administrator, don’t want anyone else, including a record owner, to be able to delete or share the record, you might need to create a “dummy” or “integration” user to own the data, then use sharing rules or Apex code to share the data to the appropriate groups and individuals. You should either make this dummy user the sole member of a role that’s at the very top of the role hierarchy or avoid putting the user in a role altogether. See the “Ownership Data Skew” section of this paper for more information about concentrating record ownership.

このレベルのセキュリティは、「機密性の高い顧客関係」シナリオに必要なものに適合する可能性があります。 そこでは、レコード所有者がクライアントのビジネスのアドバイザーおよびマネージャーとして振舞います。その場合、レコードの所有者が個人的にレコードの共有を管理することは理にかなっています。 しかし、これは望ましくない場合もあり、M&A 活動のユースケースには当てはまりません。 管理者として、レコード所有者を含む他の人がレコードを削除または共有できるようにしたくない場合は、データを所有する「ダミー」または「Integration」ユーザーを作成してから、 共有ルールまたは Apex コードを使用して、適切なグループや個人とデータを共有します。 このダミー ユーザーをロール階層の最上位にあるロールの唯一のメンバーにするか、ユーザーをロールに完全に配置しないようにする必要があります。 レコード所有権の関する詳細については、このペーパーの「所有権データの偏り」セクションを参照してください。

You will also need to concentrate ownership this way to employ any of these strategies to lock down standard objects, because the option to prevent roll up of visibility for records owned by users in the hierarchy is not available for them.

また、標準オブジェクトをロックダウンするこれらの戦略のいずれかを採用するには、この方法で所有権を集中する必要があります。これは、階層内のユーザーが所有するレコードの可視性のロールアップを防ぐオプションがユーザーに対して利用できないためです。

(個人的な)纏め

・標準オブジェクト

ロール階層を無効化出来ないので、M&Aの様に特定の人達だけでレコード共有を行うには、上記のような最上位ロールのユーザーを所有者にするかロール階層にいないユーザーを所有者にして、それからSharingRuleでロール階層を無効化した特定のPublic Groupにレコードを共有する方法を取るしかな。

・カスタムオブジェクト

ロール階層を無効化出来るので、それを行う。この時点でレコードにアクセスできるのは所有者とシステム管理者のみ。M&Aのように一部の人たちだけで機密情報を扱う場合は、ロール階層を使わないPublic GroupへSharingRuleでレコード共有を行う事で実現できる。

Summary

The role hierarchy in Salesforce greatly simplifies the task of configuring management access, report roll-ups, approval workflows, and collaboration between teams and business units. But when you are trying to restrict access to highly confidential data, you might have to think creatively about when and how to use the hierarchy to share records. With a clear understanding of record ownership and the features that allow you to exclude specific data from the normal sharing operations of the role hierarchy, you can easily implement very strict data protection policies.

Salesforce のロール階層により、管理アクセス、レポートのロールアップ、承認ワークフロー、チームとビジネスユニット間のコラボレーションの設定タスクが大幅に簡素化されます。 ただし、機密性の高いデータへのアクセスを制限しようとする場合は、階層を使用してレコードを共有するタイミングと方法について創造的に考える必要があるかもしれません。 レコードの所有権と、ロール階層の通常の共有操作から特定のデータを除外できる機能を明確に理解すると、非常に厳格なデータ保護ポリシーを簡単に実装できます。

Related Resources

工事不要!契約期間縛りなし!【GMOとくとくBB光】月額3,430円(税込3,773円)〜!




コメント

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