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

GitHub監査Logs

備考

プレビュー

Lakewatchは プライベート プレビュー段階です。アクセスをリクエストするには、Databricksアカウントチームにお問い合わせください。

Lakewatchは、GitHubから組織の監査ログを取り込むためのAPIコネクターを提供しています。この記事では、前提条件、設定手順、コネクタスキーマ、およびLakewatchパーサーの監視対象について説明します。

前提条件​

コネクターには以下が必要です。

  1. ServerlessLakeflow Spark Declarative Pipelinesがワークスペースでオンになっていること。
  2. Unity Catalogと、Unity Catalog接続を作成または使用する権限。接続権限を参照してください。
  3. 監査ログの取り込み元となる組織にアクセスできるGitHubアカウント。
  4. GitHub アカウントの開発者設定で OAuth アプリを作成するための権限。

既知の制限事項​

  • audit_logs テーブルは、組織アカウントでのみ利用可能です。
  • GitHub Freeプランでは、github.comの監査ログ履歴は90日間に制限されています。
  • 履歴のルックバックは180日を超えてはなりません。取り込む期間を選択するを参照してください。
  • コネクタは、長期間有効な OAuth ユーザーマシン間 (U2M) アクセストークンのみをサポートします。OAuth アプリが有効期限付きのユーザーアクセストークンを発行する場合、トークンの有効期限が切れるとインジェストが失敗します。
  • GitHubは、GitHub組織またはエンタープライズ設定でIPアドレスの表示が有効になっている場合にのみ、監査イベントにアクターのIPアドレスを含めます。

取り込み用にGitHubを構成する​

  1. GitHub アカウントにサインインします。

  2. 任意のページの右上隅にあるプロフィール写真をクリックして、ユーザーナビゲーションメニューを開きます。

  3. 設定 をクリックします。

  4. 開発者設定 をクリックします。

  5. OAuth アプリ セクションで、 新しい OAuth アプリ をクリックします。

  6. アプリケーション名 フィールドに、覚えやすいアプリケーション名を入力します。

  7. Homepage URL フィールドに、DatabricksインスタンスのプライマリURLを入力します。たとえば、https://my-databricks-account.cloud.databricks.com。オプションで、アプリケーションの説明を入力します。

  8. 認可コールバック URL を以下に設定します。

    https://<your_workspace_domain>/login/oauth/lakehousefederation.html

    例えば:

    https://my-databricks-account.cloud.databricks.com/login/oauth/lakehousefederation.html

  9. 「 アプリケーションを登録する 」をクリックします。これにより、アプリケーションの詳細ページに移動します。

  10. クライアントID をメモします。Unity Catalog接続を作成するときに必要になります。

  11. 新しいクライアントシークレットの生成 をクリックして、アプリケーションのクライアントシークレットを生成します。

  12. 生成された [ クライアントシークレット ] をメモします。この値は1回のみ表示されます。

ヒント

Lakewatch UIから接続を作成するときに、上で収集した クライアントID と クライアントシークレット を入力します。GitHub Enterprise Serverの場合は、オプションの エンタープライズドメイン も入力します。リクエストされたスコープを承認するために、GitHubにリダイレクトされます。

情報については、GitHub取り込み用のOAuth U2Mを構成するをご覧ください。

次のステップ​

上記の設定を完了した後、Lakewatch UIでGitHubコネクタを使用してデータソースを作成します。手順については、 API コネクター を参照してください。


コネクターとLakewatchのスキーマ​

Lakewatchは、GitHubコネクタのdefaultソーススキーマから次のソーステーブルを取り込みます。

ソーステーブル

GitHubデータ

組み込みのLakewatchパーサー

audit_logs

ユーザー、インテグレーション、システムによって実行された組織のアクション

github_audit_lfc

ソーステーブル

GitHubデータ

組み込みのLakewatchパーサー

audit_logs

ユーザー、インテグレーション、システムによって実行された組織のアクション

github_audit_lfc

コネクターは、ソーステーブルをデータソースの未加工の宛先に書き込みます。データソースの構成時に構文解析済みの宛先を設定しない限り、組み込みパーサーはパーサーの名前に基づいた個別の構文解析済みテーブルを書き込みます。

Lakewatch管理列​

コネクタは、各生ソース行に次の列を追加します。

  • lw_id: Lakewatchがプライマリキーとして使用する非Null文字列。コネクターは、ソースの@timestampおよび_document_idフィールドから、安定した時間ソート可能なIDを導き出します。
  • time: ソース @timestamp 値から変換された null 以外の UTC Timestamp(GitHub はこれを Unix エポックミリ秒としてレポートします)。コネクタは、増分取り込みのカーソルフィールドとして time を使用します。

解析されたテーブルはlw_idを前方に伝搬します。パーサーは解析された time 列も割り当て、以下を追加します:

  • lw_meta: 標準のLakewatch処理メタデータ。
  • lw_observables:パーサーでセキュリティ監視対象としてマークされたフィールドから抽出された値。

情報については、 パーサー リファレンスを参照してください。

生コネクタテーブルスキーマ​

コネクタは、一般的なGitHub監査イベントフィールドを型付きカラムに抽出し、完全なソースイベントを payload に保持します。

スキーマ

列

データ型

lw_id

STRING

_document_id

STRING

time

TIMESTAMP

action

STRING

actor

STRING

org

STRING

repo

STRING

payload

VARIANT

列

データ型

lw_id

STRING

_document_id

STRING

time

TIMESTAMP

action

STRING

actor

STRING

org

STRING

repo

STRING

payload

VARIANT

フィールドの定義については、GitHub監査ログAPIを参照してください。

パーサーの観測対象​

github_audit_lfc パーサーは、完全なソースイベントを payload の VARIANT に保持し、次のフィールドを lw_observables に抽出します。

可観測項目

フィールド

可観測項目

actor

username

payload.actor_ip

ip

payload.email

email

payload.invitee_email

email

payload.user

username

payload.blocked_user

username

payload.external_identity_nameid

username

payload.external_identity_username

username

payload.user_programmatic_access_name

username

payload.invitee

username

payload.inviter

username

payload.authorized_actors[]

username

payload.authorized_actor_names[]

username

payload.actor_id

actor_id

payload.user_id

actor_id

payload.referrer

url

payload.url

url

payload.pull_request_url

url

payload.config.url

url

payload.config_was.url

url

payload.head_sha

hash

payload.after

hash

payload.before

hash

payload.calling_workflow_shas[]

hash

フィールド

可観測項目

actor

username

payload.actor_ip

ip

payload.email

email

payload.invitee_email

email

payload.user

username

payload.blocked_user

username

payload.external_identity_nameid

username

payload.external_identity_username

username

payload.user_programmatic_access_name

username

payload.invitee

username

payload.inviter

username

payload.authorized_actors[]

username

payload.authorized_actor_names[]

username

payload.actor_id

actor_id

payload.user_id

actor_id

payload.referrer

url

payload.url

url

payload.pull_request_url

url

payload.config.url

url

payload.config_was.url

url

payload.head_sha

hash

payload.after

hash

payload.before

hash

payload.calling_workflow_shas[]

hash