メインコンテンツまでスキップ

HIPAA 監査ロギング

HIPAA標準のコンプライアンス セキュリティ プロファイルを使用するワークスペースの場合、Lakebaseは監査イベントをキャプチャし、Unity Catalogのsystem.access.auditにある監査 Log システムテーブルに配信します。このページでは、何がログに記録されるか、そのクエリー方法、およびLakebaseイベントを識別するフィールドについて説明します。

Audit Logs types

Lakebase は、次の 3 つのカテゴリの監査イベントをキャプチャします:

ログタイプ

キャプチャされる内容

コンソールの監査 Logs

プロジェクトやブランチの作成など、ユーザーが Lakebase UI で実行するアクション。

API Logs

プロジェクト、Branch、Endpoint を作成または変更する API 呼び出しなど、Lakebase コントロールプレーンへのリクエスト。

Postgres audit Logs

オープンソースのPostgres監査ロギング拡張機能であるpgauditによってキャプチャされた、データベース内のSQLレベルのアクティビティ。これには、DDL、ロールの変更、およびデータアクセスが含まれます。

ログタイプ

キャプチャされる内容

コンソールの監査 Logs

プロジェクトやブランチの作成など、ユーザーが Lakebase UI で実行するアクション。

API Logs

プロジェクト、Branch、Endpoint を作成または変更する API 呼び出しなど、Lakebase コントロールプレーンへのリクエスト。

Postgres audit Logs

オープンソースのPostgres監査ロギング拡張機能であるpgauditによってキャプチャされた、データベース内のSQLレベルのアクティビティ。これには、DDL、ロールの変更、およびデータアクセスが含まれます。

監査Logsの配信先

監査イベントは、Unity Catalog内のsystem.access.auditにある監査ログシステムテーブルに配信されます。レコードは、アクティビティが発生したワークスペースに関連付けられます。コンプライアンスセキュリティプロファイルワークスペースの監査LogはUnity Catalogのシステムテーブルに流れるため、他のDatabricks監査イベントを読み取るのと同じ方法でLakebase監査イベントを読み取り、クエリーを実行できます。

Postgres SQL 監査ロギング

HIPAA が有効なワークスペースの場合、Lakebase は変更不可能な固定の pgaudit 構成を適用します:

設定

Value

効果

pgaudit.log

all, -misc

その他のステートメントを除く、すべてのステートメントクラスを Logs に記録します。これには、データ定義(DDL)、ロールと権限の変更、読み取り、書き込み、および関数呼び出しが含まれます。

pgaudit.log_parameter

off

ステートメントのパラメーターは記録されません。

pgaudit.log_catalog

off

システムカタログに対するクエリーはログに記録されません。

設定

Value

効果

pgaudit.log

all, -misc

その他のステートメントを除く、すべてのステートメントクラスを Logs に記録します。これには、データ定義(DDL)、ロールと権限の変更、読み取り、書き込み、および関数呼び出しが含まれます。

pgaudit.log_parameter

off

ステートメントのパラメーターは記録されません。

pgaudit.log_catalog

off

システムカタログに対するクエリーはログに記録されません。

クエリー監査Logs

Lakebase の監査 Logs をクエリーするには、以下が必要です:

  • コンプライアンス セキュリティ プロファイルと HIPAA が有効になっているワークスペース。HIPAA コンプライアンスの有効化を参照してください。
  • Unity Catalog における system.access スキーマへのアクセス。システムテーブルへのアクセスは、アカウント管理者が管理します。システムテーブル リファレンスを参照してください。

Lakebase Postgres の監査イベントは、サービス名 lakebase の下の system.access.audit テーブルにあります。これらのイベントを見つけるには、service_name = 'lakebase' でフィルタリングします。

SQL
SELECT
event_time,
user_identity.email AS user_email,
action_name,
request_params
FROM system.access.audit
WHERE service_name = 'lakebase'
AND event_date >= current_date() - INTERVAL 7 DAYS
ORDER BY event_time DESC;
注記

クエリーのパフォーマンスを向上させるには、event_time ではなく event_date でフィルタリングしてください。event_date はパーティション列です。

監査レコードのフィールド

Lakebase イベントは、共有の監査ログシステムテーブルスキーマを使用します。Lakebase イベントの検索と解釈に最も役立つ列は、service_nameaction_name(イベントを識別)、request_params(イベントの詳細)、user_identity(ステートメントを実行したユーザー)、および event_date(クエリーパフォーマンスのためにフィルタリングするパーティション列)です。構造体フィールドの詳細を含む完全な列スキーマについては、「監査ログシステムテーブルリファレンス」を参照してください。

Lakebase Postgres (pgaudit) イベントは、service_namelakebase を使用します。action_name フィールドは <class>.<command> 形式を使用します。ここで <class> は pgaudit ステートメントクラス、<command> は SQL コマンドです。どちらも小文字に変換され、スペースはアンダースコアに置き換えられます。たとえば、CREATE TABLE ステートメントは ddl.create_table として記録されます。<class> の部分は操作の pgaudit ステートメントクラスであり、データ定義の場合は ddl、ロールと権限の変更の場合は role、関数呼び出しの場合は function となります。どのクラスが表示されるかは、監査レベルによって異なります。

Postgres イベントの場合、Lakebase は request_params 内の以下のキーに値を設定します:

キー

説明

class

DDL などの pgaudit ステートメントクラス。

command

CREATE TABLE などの SQL コマンド。

objectType

影響を受けるオブジェクトのタイプ (TABLEROLE など)。

objectName

影響を受けるオブジェクトの名前です。

statement

実行された SQL ステートメント。

statementId

ステートメントのシーケンス番号。

subStatementId

ステートメント内のサブステートメントのシーケンス番号。

endpointId

ステートメントが実行された Lakebase Endpoint。

キー

説明

class

DDL などの pgaudit ステートメントクラス。

command

CREATE TABLE などの SQL コマンド。

objectType

影響を受けるオブジェクトのタイプ (TABLEROLE など)。

objectName

影響を受けるオブジェクトの名前です。

statement

実行された SQL ステートメント。

statementId

ステートメントのシーケンス番号。

subStatementId

ステートメント内のサブステートメントのシーケンス番号。

endpointId

ステートメントが実行された Lakebase Endpoint。

重要

statement および objectName の値には、SQL のテキストとデータベースオブジェクトの名前を含めることができます。監査Logsに表示されないように、クエリーのテキストやオブジェクト名には PHI を含めないようにしてください。PHI に関する責任共有を参照してください。

監査Logsの保持

監査ログ システムテーブルは、レコードを 365 日間保持します。Lakebase audit Logs をより長く保持するには、期限切れになる前に独自のストレージにエクスポートまたはコピーしてください。監査ログシステムテーブルリファレンスを参照してください。

次のステップ