アクセス制御およびデータの保護

学習の目的

この単元を完了すると、次のことができるようになります。

  • Einstein Analytics のデータの提供元および組み込みのユーザアカウントについて説明する。
  • 行レベルセキュリティと項目レベルセキュリティを比較する。

権限とアクセスの比較

前の単元で、パスポートのたとえを用いて、権限セットライセンスと権限セットの違いを確認しました。ここでは、権限とアクセスを区別する方法を紹介します。権限はあなたが実行できることで、アクセスはあなたが参照できるものと考えます。Einstein Analytics のセキュリティの説明において、この概念は実に的を得たものです。

DTC の Salesforce システム管理者として、誰が何にアクセスできるか、つまり、誰がどのデータを参照できるかを検討します。以前の単元では、アプリケーションや機能を使用する権限をユーザに付与する方法を学習しました。この単元では、各ユーザのデータへのアクセスをきめ細かく制御する方法を見ていきます。

Einstein Analytics での Salesforce データへのアクセス

csv ファイルをアップロードした場合を除き、Einstein Analytics で使用するデータはおそらく Salesforce から取り込まれたものです。Einstein Analytics があなたに代わってこのデータにアクセスする方法について説明します。Einstein Analytics では事前定義された内部アカウントを使用して、その処理を行うためです。Salesforce システム管理者はプロファイルや権限の管理を行うため、これらのアカウントがどのようなもので、どのように設定されているかを知っておく必要があります。では、この内部的な仕組みを見ていきましょう。

Einstein Analytics は、インテグレーションユーザとセキュリティユーザという 2 つの Einstein Analytics 内部ユーザの権限に基づいて、Salesforce データにアクセスします。

  • Einstein Analytics は、データフロージョブが実行されたときに、インテグレーションユーザの権限を使用して Salesforce オブジェクトおよび項目からデータを抽出します。
  • User オブジェクトに基づいて行レベルセキュリティが設定されているデータセットを照会すると、Einstein Analytics はセキュリティユーザの権限を使用して User オブジェクトとその項目にアクセスします。

インテグレーションユーザとセキュリティユーザのプロファイルおよびユーザレコードを見てみましょう。

  1. [設定] から、[クイック検索] ボックスに「ユーザ」と入力します。
  2. [ユーザの管理] で、[ユーザ] を選択します。

リストに、「ユーザ、インテグレーション」というユーザと「ユーザ、セキュリティ」というユーザが表示されます。いずれかをクリックすると、これらのユーザの詳細情報が表示されます。

この 2 つのユーザにはプロファイルが関連付けられています。

  1. [設定] から、[クイック検索] ボックスに「プロファイル」と入力します。
  2. [ユーザの管理] で、[プロファイル] を選択します。

Analytics Cloud インテグレーションユーザおよび Analytics Cloud セキュリティユーザというプロファイルが表示されます。いずれかをクリックすると、割り当てられているさまざまな権限が表示されます。たとえば、[項目レベルセキュリティ] というヘッダーの列を見ると、照会するオブジェクトの中に項目レベルセキュリティが適用されているものがないかを確認できます。

メモ

メモ

これらのプロファイルは、組織で Einstein Analytics を有効にするときに、カスタマイズして使用する目的でコピーされることがよくあります。有効化の時点で、あなたか他のシステム管理者がこの操作を行っているものと思われます。

行レベルセキュリティ


Einstein Analytics ユーザにデータセットへのアクセス権があれば、デフォルトではデータセット内のすべてのレコードにアクセスできます。それはそうですよね? けれども、データセットに行レベルセキュリティを実装して、一定のレコードへのアクセスを制限したいと思うことがあります。一部のレコードに機密データが含まれている場合、全員がアクセスできるようにすべきではないためです。

セキュリティ述語

行レベルセキュリティを実装するには、レコードへのアクセスを制限するデータセットごとに述語を設定します。複雑なことのように聞こえますが、述語とは、データセット内のレコードへの行レベルのアクセスを定義する検索条件の気取った名称です。述語が設定されているデータセットに対してユーザがクエリを送信すると、Einstein Analytics が述語をチェックして、ユーザがどのレコードにアクセスできるかを判断します。ユーザにレコードへのアクセス権がなければ、Einstein Analytics がそのレコードを返しません。

では、セキュリティ述語がどのように表示されるか見てみましょう。心配はいりません。ここでは設定を一切変更しないため、何かが壊れるようなことはありません!

セキュリティ述語を確認するには、データフローの JSON ファイルまたはデータセットの編集ページを確認します。

データセットの編集ページで述語を確認するほうが簡単です。

  1. アプリケーションランチャーで、[Analytics Studio] を見つけて選択します。
  2. Einstein Analytics のホームで、[すべての項目] をクリックします。
  3. [Datasets (データセット)] をクリックします。
  4. データセットにマウスポインタを置き、アクション矢印をクリックして、下矢印アイコンのインライン画像。[編集] をクリックします。
  5. ページ下部の [セキュリティ] セクションまでスクロールします。

データセットにセキュリティ述語が定義されている場合は、ここに表示されます。

特定のレコードへのユーザアクセスを制限する上記の使用事例は極めて一般的です。以下は、この検索条件を実行する述語の例を示しています。

"rowLevelSecurityFilter":"'AccountOwner' == \"$User.Name\""

AccountOwner は、各販売目標の取引先所有者の氏名を格納するデータセット項目のことです。$User.Name は、各ユーザの氏名を格納するユーザオブジェクトの Name 列です。Einstein Analytics はルックアップを実行して、現在ログインしているユーザを表示します。

AccountOwner の名前と $User.Name の名前が同じであれば、この述語によって一致結果が返されます。ユーザには、自身が取引先所有者であるデータのみが表示されます。さほど難しいことではないですよね? セキュリティ述語およびその追加方法についての詳細は、『Analytics セキュリティ実装ガイド』を参照してください。

上出来です。これで、Einstein Analytics のセキュリティ述語については何でも知っていると自慢できます!

項目レベルセキュリティの場合

Salesforce では、項目レベルセキュリティを実装して、レコードの個々の項目へのアクセスを制限できます。Einstein Analytics で項目レベルセキュリティを設定していなくても、前述のとおり、Einstein Analytics インテグレーションユーザの権限を使用して Analytics データフローが実行されます。そのため、Salesforce オブジェクトに項目レベルセキュリティを適用する場合は、Analytics インテグレーションユーザに参照アクセス権を割り当てる必要があります。割り当てなければ、データフローの実行時に Einstein Analytics がデータを参照できないため、エラーが表示されることがあります。

詳細は、『Analytics セキュリティ実装ガイド』を参照してください。