Explore の行レベルセキュリティ
Explore 管理者は、各 Explore ユーザーが表示できるデータ行を制限できます。基礎となるデータテーブルに行レベルセキュリティ(RLS)ルールを作成し、ユーザーをアクセスグループに編成してから、テストユーザーでアクセスを確認します。
行レベルセキュリティ(RLS)の概要
- ユーザーは、自身がアサインされた引受担当者である行のみを表示できます。
- ユーザーは、自身の種目の行のみを表示できます(これらは種目グループに属します)。
RLS ルールのアクセスパターンの例
行レベルセキュリティ(RLS)ルールでは、次のシステム変数を参照してグループとユーザーを識別します。
-
ts_username:Explore ユーザー名(通常は電子メール) -
ts_groups:ユーザーが属する Explore ユーザーグループのリスト
これらの変数は、次の例に示すように 2 つの主要な RLS アクセスパターン内で使用します。
- 個別:ユーザーには電子メールアドレスに一致する行のみが表示される
- 個別のユーザーアクセスでは、ユーザーは自身に属する行のみを表示できます。例えば、各引受担当者は自身の保険契約のみを表示できれば十分です。「ユーザーは、引受担当者の電子メールアドレスが Explore ユーザーの電子メールアドレスと一致する行のみを表示できる」という RLS ルールを作成するとします。この場合、
ts_username()は、Exploreユーザーの電子メールアドレスのシステム変数です。また、underwriter_emailは、電子メールアドレスの値を含むテーブル列の名前です。 - グループ:ユーザーには、自身が属しているグループに一致する行のみが表示される
- ユーザーのグループに同じ行を表示する必要がある場合は、Explore ユーザーグループを作成します。例えば、種目( LOB )内のすべての引受担当者が、その LOB のデータを表示する必要があるとします。この場合、「自動車」や「住宅所有者」など、LOB の値ごとにユーザーグループを作成します。グループ名は、データ内の対応する列の値と完全に一致する必要があります。各引受担当者をそれぞれの LOB グループに追加します。
1 つのテーブルでの複数の RLS ルール
同じテーブルにある複数の行レベルセキュリティ(RLS)ルールは、OR ロジックを使用します。AND ロジックが必要な場合(「引受担当者と種目の両方で同時に制限する」など)は、代わりにアクセス制御リスト(ACL)テーブルによるアプローチを使用します。ガイダンスについては、Guidewire にお問い合わせください。
行レベルセキュリティのバイパス
Row-Level Security (RLS) Bypass 役割を持つ Explore ユーザーは、RLS ルールによって制限されている場合でもすべてのデータを表示できます。この役割は、Explore 管理者が RLS ルールを作成およびテストする際に役立ちます。
Liveboard への行レベルセキュリティの追加
- このトピックを読むと、次のことができるようになります。
-
- データへのアクセスを制御するディメンションを特定する
- Explore で RLS グループを作成し、ユーザーを追加する
- Explore テーブルで RLS ルールを作成する
- RLS のコンフィギュレーションを確認する
開始する前に
- Group Administration
- Row-Level Security (RLS) Bypass
手順
ステップ 1:アクセスディメンションを特定する
このタスクについて
| ユースケース | テーブル名と列名 |
|---|---|
| ユーザーには自身の種目の行のみが表示される |
GW_EfP_Submission_Processing_Table
|
| ユーザーには自身の電子メールアドレスに一致する行のみが表示される |
GW_EfP_Submission_Processing_Table
|
| ユーザーには自身の都道府県に対応する行のみが表示される |
GW_EfP_Activity_Table
|
手順
- 基盤となる Explore モデルを特定します。Liveboard のタイトルの横にある[Liveboard details]を選択します。
- [データソース]にモデル名が表示されます。
-
[データ]
ワークスペースに移動し、モデルを開いて、[モデルを編集]を選択します。
- [列]で、列のソーステーブル名とソース列名を特定します。
ステップ 2:RLS グループを作成してユーザーを追加する
このタスクについて
手順
-
Exploreで、[管理]
ワークスペースに移動し、を選択します。
-
[グループ名]([表示名]ではない)を設定します。
autoなどの列の値と完全に一致していることを確認します。既存のユーザーグループをこの目的のために再利用しないでください。これらの名前はデータ列の値に一致せず、正しくフィルタされません。 - 目的を明確にするために[説明]を設定します。例えば、「RLS グループ。自動車種目用の更改されたインサイトへのアクセス。オブジェクトの共有には使用しない。」と入力します。
- [表示名]をわかりやすい名前に設定します。例えば、「RLS グループ:自動車種目」と入力します。
- このグループに Explore の役割を付与しないでください。
- グループに追加するユーザーを選択します。
- [保存]を選択します。
- 個別のアクセス境界を必要とする個々の値ごとに、この手順を繰り返します。
ステップ 3:Explore テーブルで RLS ルールを作成する
このタスクについて
手順
ステップ 4:RLS のコンフィギュレーションを確認する
手順
- Row-Level Security (RLS) Bypass 役割を持つユーザーとしてログインします。
- Liveboard を開き、すべてのデータが正しく読み込まれ、すべて表示されていることを確認します。
- テストユーザーを作成します。テストユーザーは、厳密に 1 つの RLS グループに属するユーザーか、または特定の行にマップされるユーザー名を持つユーザーにします。
- テストユーザーとしてログインします。
- Liveboard を開きます。
- 割り当てられた値に一致する行のみが表示されていることを確認します。
- 他の値の行が表示されていないことを確認します。
RLS ルールのトラブルシューティング
- ユーザーにデータがまったく表示されない
- ユーザーがどの RLS グループにも属していないか、グループ名が列の値と完全に一致していません。
- ユーザーにすべてのデータが表示される
- RLS ルールが誤ったテーブルに適用されているか、ルール式に入力ミスがあります。
- 保存時にルール式エラーが発生する
- 列が数値型です。文字列にキャストします。
to_string([column_name]) = ts_groups()
RLS ルールの削除
手順
-
[データ]
ワークスペースに移動し、テーブルを開いて、[Row Security]タブを選択します。
- ルールの横にある[削除]アイコンを選択します。
- 即座に、すべてのユーザーにすべての行が表示されます。
- に移動し、ユーザーを選択します。
- グループをグループメンバーシップから削除します。
- [保存]を選択します。変更は、ユーザーが次回データを表示したときに有効になります。