Lakewatchアクセス制御を設定する
プレビュー
Lakewatchは プライベート プレビュー段階です。アクセスをリクエストするには、Databricksアカウントチームにお問い合わせください。
グループ、実行者Service Principal、およびUnity Catalogの許可を設定することは、セキュリティチームのためにLakewatchのアクセス制御を構成する推奨される方法です。このガイドでは、最小権限の下で取り込み、検出作成、アナリストの業務を分離する4つのグループを持つ単一のLakewatchカタログを設定します。基になるデータに既にアクセスできる単一ユーザーは、この設定なしでLakewatchを使用できます。シングルユーザーモデルとチームベースモデルのどちらかを選択するには、デプロイメントモデルを参照してください。
付与では、カタログとしてlakewatchを、スキーマとしてlakewatch.prodを使用します。それらを自分の名前に置き換え、<sp>をラン実行者Service PrincipalのapplicationIdに置き換えます。
ペルソナ
このセットアップでは、一般的なセキュリティチームのロールごとに1つずつ、4つのグループがプロビジョニングされます。グループは推奨されますが、任意です。すべての Unity Catalog プリンシパルに同じ権限を付与できます。
グループ | ロール |
|---|---|
| Lakewatchの管理:リソース、設定、他のユーザーのアクセス権を管理します。 |
| データソースのオンボードと管理を行い、データをテーブルに格納します。 |
| 検出ルールを作成および調整し、その結果を確認します。 |
| アラートキューの処理:アラートの読み取り、ステータスの更新、データに対するクエリーの実行。 |
前提条件
- ステップ 1 のアカウント管理者。グループ、Service Principal、および代理実行(run-as delegation)の作成は、アカウントレベルのタスクです。
- ステップ2のメタストア管理者、またはメタストアの
CREATE CATALOG。アカウント管理者はこれを付与しません。 - SQL Warehouseおよびステップ4で使用する
CAN_MANAGE。warehouseはLakewatchが実行されるコンピュートです。 - ステップ6で付与した外部ロケーション、接続、またはソーステーブルに対する所有者権限。
ステップ2、3、5、および6を、ノートブックまたはSQLエディタでSQLとしてランします。ステップ1と4は、アカウントコンソールとワークスペースUIでの1回限りのアクションです。
1. グループ、Service Principal、実行用委任の作成
スケジュールされたデータソースと検出ルールは Service Principal として実行されるため、Service Principalを作成し、Lakewatchを操作するグループにそれとしてリソースをランする権限を付与してください。アカウントコンソールで:
- ユーザー管理 > グループ に移動し、次の4つのグループを作成してください:
lakewatch-admins、lakewatch-data-engineers、lakewatch-detection-engineers、lakewatch-analysts。 - [ユーザー管理] > [Service Principal] に移動し、LakewatchランService Principalを作成します。後続のステップで
<sp>として使用するために、そのapplicationId(UUID)をコピーします。 - Service Principalの [ 権限 ] tabで、[ Service Principalマネージャー ] を
lakewatch-adminsに割り当てます。 - 同じtabで、 Service Principal ユーザー を
lakewatch-data-engineersとlakewatch-detection-engineersに割り当てます。これにより、それらのグループのメンバーは、Service Principalとして実行されるリソースを作成できます。
2. カタログとスキーマを作成する
Lakewatchリソースを保持するカタログとスキーマを作成します。次のコマンドをランします。
CREATE CATALOG IF NOT EXISTS lakewatch;
CREATE SCHEMA IF NOT EXISTS lakewatch.prod;
3. Service Principal にデータへのアクセス権を付与する
実行Service Principalは、スキーマ内のデータを読み書きする必要があります。ベースラインアクセスを付与するには、以下をラン。
GRANT USE CATALOG ON CATALOG lakewatch TO `<sp>`;
GRANT USE SCHEMA ON SCHEMA lakewatch.prod TO `<sp>`;
GRANT CREATE TABLE ON SCHEMA lakewatch.prod TO `<sp>`;
GRANT MODIFY ON SCHEMA lakewatch.prod TO `<sp>`;
GRANT SELECT ON SCHEMA lakewatch.prod TO `<sp>`;
4. Service PrincipalにSQLウェアハウスの使用権限を付与する
Service Principalは、warehouseでSQLをランします。warehouseの使用権限の付与はワークスペースの権限であり、Unity Catalogの付与ではありません。
- SQLウェアハウス に移動し、Lakewatchで使用するwarehouseを開きます。
- その アクセス許可 で、Service Principal に 使用可能 を付与します。これにはwarehouseに対する
CAN_MANAGEが必要です。
5. 各グループに権限を付与する
各グループにカタログに対する権限を付与します。権限はUnity Catalog階層の下位に継承されるため、カタログへの権限付与はその下にあるすべてのLakewatchリソースに適用されます。各権限が許可するものについては、 ロールと機能を参照してください。
管理者特権を付与するには、以下をラン:
GRANT USE CATALOG ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT USE SCHEMA ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT MANAGE ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT READ_METADATA ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT SELECT ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT MODIFY ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT CREATE_DATASOURCE ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT CREATE_RULE ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT CREATE_SECRET ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT READ_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-admins`;
GRANT UPDATE_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-admins`;
データエンジニアに権限を付与するには、以下を実行します:
GRANT USE CATALOG ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT USE SCHEMA ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT CREATE_DATASOURCE ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT CREATE_SECRET ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT SELECT ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT MODIFY ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT CREATE TABLE ON CATALOG lakewatch TO `lakewatch-data-engineers`;
GRANT CREATE SCHEMA ON CATALOG lakewatch TO `lakewatch-data-engineers`;
検出エンジニアの権限を付与するには、次のコマンドをランします。
GRANT USE CATALOG ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT USE SCHEMA ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT CREATE_RULE ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT READ_METADATA ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT READ_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
GRANT SELECT ON CATALOG lakewatch TO `lakewatch-detection-engineers`;
アナリストに権限を付与するには、以下を実行します:
GRANT USE CATALOG ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT USE SCHEMA ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT READ_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT UPDATE_SECURITY_DATA ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT SELECT ON CATALOG lakewatch TO `lakewatch-analysts`;
GRANT READ_METADATA ON CATALOG lakewatch TO `lakewatch-analysts`;
6. ソースへのアクセス権を付与する(オプション)
これらは、使用するソースに対してのみ許可してください。それぞれについて、許可を与える保護対象の所有者である必要があります。
Service Principalが外部ロケーションから読み取れるようにするには、以下を実行します:
GRANT READ FILES ON EXTERNAL LOCATION <external_location> TO `<sp>`;
Service Principalにメタストア内のすべての接続を使用させるには、以下を実行します。
GRANT USE CONNECTION ON METASTORE TO `<sp>`;
Service Principalが既存のソーステーブルを読み取れるようにするには、以下を実行します:
GRANT USE CATALOG ON CATALOG <src_catalog> TO `<sp>`;
GRANT USE SCHEMA ON SCHEMA <src_catalog>.<src_schema> TO `<sp>`;
GRANT SELECT ON TABLE <src_catalog>.<src_schema>.<src_table> TO `<sp>`;
7. 認証
付与が適用されたことを確認します。カタログとスキーマの権限を一覧表示するには、次のコマンドを実行します。
SHOW GRANTS ON CATALOG lakewatch;
SHOW GRANTS ON SCHEMA lakewatch.prod;
制限
USE CONNECTION ON METASTOREを付与すると、Service Principalはメタストア内のすべての接続を使用できるようになります。これは最小特権よりも広範囲な権限です。Lakewatch専用のメタストアでのみ使用してください。