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

監査ログの配信を構成する

この記事では、監査ログを JSON ファイル形式で Amazon S3 ストレージバケットに低レイテンシーで配信するように設定する方法について説明します。

監査ログが S3 ストレージバケットに配信されると、データを使用状況分析に利用できるようになります。 Databricks は、アカウント内のワークスペースごとに個別の JSON ファイルと、アカウント レベルのイベント用に個別のファイルを提供します。 ファイル スキーマと監査イベントの詳細については、「 監査ログのリファレンス」を参照してください。

オプションで、ログ配信用に作成する AWSロールに使用したアカウント以外の アカウントにログを配信できます。IAMこれにより、たとえば、複数の AWS アカウントのワークスペースを同じ S3 バケットに配信するように設定するなど、柔軟性が得られます。 S3このオプションでは、クロスアカウントIAM ロールを参照する bucket ポリシーを設定する必要があります。手順とポリシーテンプレートについては、「 ステップ 3: クロスアカウントサポート」を参照してください。

実行中のワークスペースのログの配信に加えて、 キャンセルされたワークスペース のログも配信され、ワークスペースの最終日を表すログが適切に配信されるようになります。

必要条件

監査ログの配信を設定するには、次の操作を行う必要があります。

  • アカウント管理者になる。
  • APIsに認証して、アカウント の APIで配信を設定できるようにします。「アカウント API への認証方法」を参照してください。

高レベルのフロー

このセクションでは、監査ログ配信のフローの概要について説明します。

  • ステップ 1: ストレージの設定: AWS で、新しい S3 バケットを作成します。 Databricks APIsを使用して、アカウント APIを呼び出し、バケット名を使用するストレージ設定オブジェクトを作成します。
  • ステップ 2: 資格情報の構成: AWSで、適切な AWS IAMロールを作成します。 Databricks APIsを使用して、アカウント APIを呼び出して、IAMロールのARNを使用する資格情報設定オブジェクトを作成します。
  • (オプション)ステップ3:クロスアカウントサポート:ログ配信用に作成した AWSロールのアカウント以外の アカウントにログを配信するには、IAM S3バケットポリシーを追加します。このポリシーは、前の手順で作成したクロスアカウント IAMロールの ID を参照します。
  • ステップ 4: ログ配信APIを呼び出す: アカウント APIを呼び出して、前のステップの資格情報とストレージ設定オブジェクトを使用するログ配信設定を作成します。

これらの手順を完了すると、JSON ファイルにアクセスできるようになります。 配送場所は次の形式です。

<bucket-name>/<delivery-path-prefix>/workspaceId=<workspaceId>/date=<yyyy-mm-dd>/auditlogs_<internal-id>.json
注記

アカウント全体に対して監査ログ配信を設定すると、1 つのワークスペースに関連付けられていないアカウントレベルの監査イベントが workspaceId=0 パーティションに配信されます。

ワークスペースの数に基づく考慮事項

配信設定は、ワークスペースの数と配置場所によって異なる場合があります。

  • Databricks アカウントにワークスペースが 1 つある場合: 大まかなフローで説明されている指示に従い、ワークスペースの 1 つの構成オブジェクトを作成します。

  • 同じ Databricks アカウントに複数のワークスペースがある場合: 次のいずれかの操作を行います。

    • アカウント内のすべてのワークスペースで同じ構成 (バケットとS3 ロール ログ配信) を共有します。IAMこれは、アカウントレベルの監査ログも配信する唯一の設定オプションです。 これはデフォルトのオプションです。
    • アカウント内の各ワークスペースに個別の構成を使用する。
    • ワークスペースのグループごとに個別の構成を使用し、グループ内で構成を共有する。
  • 複数のワークスペースがあり、それぞれが個別の Databricks アカウントに関連付けられている場合: アカウントごとに一意のストレージと資格情報の設定オブジェクトを作成します。 これらの設定オブジェクト間で S3 バケットまたは IAMロールを再利用できます。

注記

ワークスペースがアカウント APIを使用して作成されていない場合でも、アカウント API を使用してログ配信を設定できます。

アカウントAPIへの認証方法

アカウント APIに対して認証するには、サービスプリンシパルの Databricks OAuth または ユーザーの Databricks OAuth を使用できます。 Databricks は、ユーザーまたはサービスプリンシパルの Databricks OAuth を使用することを強くお勧めします。 サービスプリンシパルは、自動化ツール、ジョブ、およびアプリケーションで使用するために Databricks で作成する ID です。 「を使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してください。OAuth

次の例を使用して、Databricks アカウントに認証します。 サービスプリンシパルには OAuth を、ユーザーには OAuth を使用できます。 背景については、以下を参照してください。

注記

Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 「Databricks で管理されるパスワードのサポート終了」を参照してください。

認証の例については、以下から選択してください。

  1. Install Databricks CLI version 0.205 or above. See Install or update the Databricks CLI.

  2. Complete the steps to configure OAuth M2M authentication for service principals in the account. See Authorize unattended access to Databricks resources with a service principal using OAuth.

  3. Identify or manually create a Databricks configuration profile in your .databrickscfg file, with the profile’s fields set correctly for the related host, account_id, and client_id and client_secret mapping to the service principal. See OAuth machine-to-machine (M2M) authentication.

  4. Run your target Databricks CLI command, where <profile-name> represents the name of the configuration profile in your .databrickscfg file:

    Bash
    databricks account <command-name> <subcommand-name> -p <profile-name>

    For example, to list all users in the account:

    Bash
    databricks account users list -p MY-AWS-ACCOUNT
    • For a list of available account commands, run the command databricks account -h.
    • For a list of available subcommands for an account command, run the command databricks account <command-name> -h.

監査配信の詳細

アカウントでログ記録を有効にすると、Databricks は定期的に監査ログを人間が読める形式で配信場所に自動的に送信します。

  • レイテンシー : 初期設定またはその他の設定変更後、変更が有効になるまでに多少の遅延が予想されます。 監査ログ配信の初期設定では、ログ配信が開始されるまでに最大 1 時間かかります。 ログの配信が開始されると、通常、監査可能なイベントは 15 分以内に記録されます。 追加の設定変更が有効になるまでには、通常 1 時間かかります。
  • 暗号化 : Databricks は、Amazon S3 サーバー側の暗号化を使用して監査ログを暗号化します。
  • 形式 : Databricks は監査ログを JSON 形式で配信します。
  • 場所 :配送場所は <bucket-name>/<delivery-path-prefix>/workspaceId=<workspaceId>/date=<yyyy-mm-dd>/auditlogs_<internal-id>.jsonです。 新しい JSON ファイルは数分ごとに配信されるため、既存のファイルが上書きされる可能性があります。 配信パスは、構成の一部として定義されます。 単一のワークスペースに関連付けられていないアカウントレベルの監査イベントは、アカウント全体に対して監査ログの配信を構成している場合、 workspaceId=0 パーティションに配信されます。
    • Databricks は、バケット内の配信されたログファイルをいつでも上書きできます。 ファイルが上書きされた場合、既存のコンテンツは残りますが、監査可能なイベントのために追加の行が存在する可能性があります。
    • 上書きにより、アカウントへの読み取りまたは削除アクセス権を必要とせずに、正確に一度のセマンティクスが保証されます。

ログ配信APIsを使用する

ログ配信APIsには、次の追加機能があります。

ログ配信設定ステータスは、API応答のlog_delivery_statusオブジェクトで確認できます。log_delivery_statusを使用すると、ステータス(成功または失敗)と、最後に試行または成功した配信の時間を確認できます。

監査ログの配信制限

アカウントごとに利用可能なログ配信設定の数には制限があります(各制限は、課金利用や監査ログなど、各ログタイプに個別に適用されます)。 タイプごとに最大 2 つの有効なアカウントレベルの配信設定 (ワークスペースフィルターなしの設定) を作成できます。 さらに、ログの種類ごとにワークスペースごとに 2 つのワークスペース レベルの配信構成を作成して有効にできるため、ログの種類ごとに 2 つ以下の配信構成のワークスペース フィルターに同じワークスペース ID を含めることができます。

ログ配信設定を削除することはできませんが、無効にすることはできます。無効にした構成を再度有効にすることはできますが、前述の制限に違反するとリクエストが失敗します。