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

Workday アクティビティのロギング

備考

プレビュー

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

Lakewatchは、Workdayアクティビティログからデータを取り込むためのAPIコネクタを提供します。この記事では、前提条件、構成手順、コネクタスキーマ、およびLakewatchパーサーの監視対象について説明します。

前提条件​

このコネクターには以下が必要です:

  1. Serverless Lakeflow Spark Declarative Pipelines がオンになっています。
  2. Unity Catalog、および Unity Catalog 接続を作成または使用する権限。「接続のパーミッション」を参照してください。
  3. Workday の権限で、テナント設定の編集、統合システム ユーザーおよびセキュリティ グループの作成、ドメイン セキュリティ ポリシーの更新、API クライアントの登録する、更新トークンの生成を行います。

既知の制限事項​

  • Workday アクティビティ Logs は追記専用であるため、SCD タイプ 2 はサポートされていません。
  • 過去のルックバックは30日を超えてはなりません。取り込むデータの期間を選択するを参照してください。

インジェスト用の Workday の構成​

認証とユーザー アクティビティ Logs へのアクセスを有効にするように Workday を構成します。

アクティビティのログ記録とOAuthを有効にする​

  1. Workday で、「 テナント設定の編集 - システム 」を検索して選択します。
  2. ユーザーアクティビティログを有効にする が選択されていることを確認します。
  3. Edit テナント Setup - Security を検索して選択します。
  4. OAuth 2.0 クライアントの有効化 が選択されていることを確認します。

統合システム ユーザーを作成する​

  1. Workdayで、 統合システム ユーザーの作成 を検索して選択します。
  2. ユーザー名を入力します。たとえば、ISU_Databricksなどです。
  3. 新しいパスワードを入力します。
  4. セッションタイムアウト (分) を 0 に設定します。
  5. 「 UI セッションを許可しない 」を選択します。
  6. OK をクリックします。
  7. ユーザー名を記録します。更新トークンを生成するときに使用します。

セキュリティ権限を構成する​

  1. Workday で、「 セキュリティグループを作成 」を検索して選択します。
  2. テナントセキュリティグループのタイプ に 統合システムセキュリティグループ (制約なし) を選択し、グループの名前を入力します。たとえば、ISSG_Databricks_Monitoringがあります。
  3. OK をクリックします。
  4. 次のフォームで、統合システム ユーザーを Integration System Users に追加します。
  5. OK をクリックし、 完了 をクリックします。
  6. ドメインの表示 を検索して選択します。
  7. 「 ドメイン 」で「 システム監査 」を選択します。
  8. システム監査 ドメイン名の横にある3点メニューをクリックし、 [ドメイン] > [セキュリティポリシー権限の編集] を選択します。
  9. セキュリティグループを レポート/タスク権限 テーブルに追加し、 表示 アクセス権を付与します。
  10. セキュリティグループを [統合権限] テーブルに追加し、 [取得] アクセス権を付与します。
  11. OK をクリックし、 完了 をクリックします。
  12. [保留中のセキュリティポリシーの変更を有効にする ] を検索して選択します。
  13. 変更の説明を入力してください。
  14. OK をクリックします。

APIクライアントを登録する​

  1. Workday で 登録する API Clients for Integrations を検索して選択します。
  2. クライアント名 を入力してください。たとえば、Databricks User Activity Monitorなどです。
  3. 有効期限のない更新トークン を選択すると、更新トークンの期限切れによる中断を防ぐことができます。
  4. スコープ(機能領域) で、 System を選択します。
  5. OK をクリックします。
  6. クライアントID と クライアントシークレット を記録します。Unity Catalog 接続を作成するときに、これらの値を使用します。

Databricks認証用のWorkday値を取得する​

  1. Workdayで View API Clients を検索して選択します。

  2. 「 統合用APIクライアント 」tabを選択します。

  3. 作成したAPIクライアントに対して、次の設定が有効になっていることを確認します:

    • クライアント付与タイプ : 認可コード付与
    • アクセストークンの種類 : ベアラー
  4. Workday REST API Endpoint を見つけます。URLから次の値を記録します。

    • スキームとパスを除いた、.comで終わるインスタンスドメイン。たとえば、wd2-impl-services1.workday.com。
    • URL内の/v1/の後に表示されるテナント名。
  5. APIクライアントのLinkをクリックします。 APIクライアントの表示 ページで、クライアント名の横にある3ドットメニューをクリックします。

  6. API クライアント > 統合の更新トークンの管理 を選択します。

  7. Workday アカウント の場合、統合システムユーザーを選択し、 OK をクリックします。

  8. [新規更新トークンを生成] を選択し、 [OK] をクリックします。

  9. 更新トークンを記録します。これは、Unity Catalog接続を作成するときに使用します。

ヒント

Lakewatch UI を通じて接続を作成するときは、上記で収集した インスタンス URL 、 テナント名 、 クライアント ID 、 クライアント シークレット 、および 更新トークン が必要です。

次のステップ​

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


コネクタとLakewatchスキーマ​

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

ソーステーブル

Workdayデータ

組み込みのLakewatchパーサー

activity_logging

ユーザーアクティビティログイベント

workday_activity

ソーステーブル

Workdayデータ

組み込みのLakewatchパーサー

activity_logging

ユーザーアクティビティログイベント

workday_activity

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

Lakewatch管理列​

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

  • lw_id:Lakewatchが主キーとして使用する非Null文字列。コネクターは、Workday requestTimeと完全なソースレコードから、安定した時間でソート可能なIDを導き出します。IDは、増分同期全体での重複排除をサポートします。
  • time: requestTimeからコピーされたNULL以外のTimestamp。コネクタは、増分取り込みのカーソルフィールドとしてtimeを使用します。

Lakewatchデータソースの場合、Rawテーブルにはこれらの列も含まれ、解析済みテーブルは3つのLakewatch管理フィールドをすべて引き継ぎます。

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

パーサーは、解析されたtime列も割り当てます。

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

未処理コネクターテーブルスキーマ​

次のスキーマは、標準のLakeflow ConnectフィールドとLakewatch管理フィールドを組み合わせたものです。

スキーマ

列

データ型

lw_id

STRING

time

TIMESTAMP

systemAccount

STRING

activityAction

STRING

requestTime

TIMESTAMP

userAgent

STRING

taskId

STRING

deviceType

STRING

ipAddress

STRING

userActivityEntryCount

LONG

sessionId

STRING

target

STRUCT<id: STRING, descriptor: STRING, href: STRING>

taskDisplayName

STRING

lw_observables

STRUCT<account_ids: ARRAY<STRING>, actor_ids: ARRAY<STRING>, cves: ARRAY<STRING>, device_ids: ARRAY<STRING>, emails: ARRAY<STRING>, hashes: ARRAY<STRING>, hostnames: ARRAY<STRING>, ip_addresses: ARRAY<STRING>, mac_addresses: ARRAY<STRING>, mitre_attack_technique_ids: ARRAY<STRING>, request_trace_ids: ARRAY<STRING>, resource_ids: ARRAY<STRING>, resource_tags: ARRAY<STRING>, serial_numbers: ARRAY<STRING>, usernames: ARRAY<STRING>>

lw_meta

STRUCT<datasource_id: STRING, datasource_name: STRING, connection_name: STRING, parser_name: STRING, parser_version: STRING, ingestion_time: TIMESTAMP>

列

データ型

lw_id

STRING

time

TIMESTAMP

systemAccount

STRING

activityAction

STRING

requestTime

TIMESTAMP

userAgent

STRING

taskId

STRING

deviceType

STRING

ipAddress

STRING

userActivityEntryCount

LONG

sessionId

STRING

target

STRUCT<id: STRING, descriptor: STRING, href: STRING>

taskDisplayName

STRING

lw_observables

STRUCT<account_ids: ARRAY<STRING>, actor_ids: ARRAY<STRING>, cves: ARRAY<STRING>, device_ids: ARRAY<STRING>, emails: ARRAY<STRING>, hashes: ARRAY<STRING>, hostnames: ARRAY<STRING>, ip_addresses: ARRAY<STRING>, mac_addresses: ARRAY<STRING>, mitre_attack_technique_ids: ARRAY<STRING>, request_trace_ids: ARRAY<STRING>, resource_ids: ARRAY<STRING>, resource_tags: ARRAY<STRING>, serial_numbers: ARRAY<STRING>, usernames: ARRAY<STRING>>

lw_meta

STRUCT<datasource_id: STRING, datasource_name: STRING, connection_name: STRING, parser_name: STRING, parser_version: STRING, ingestion_time: TIMESTAMP>

パーサーのオブザーバブル​

workday_activity パーサーは target を VARIANT として書き込み、次のフィールドを lw_observables に抽出します。

可観測項目

フィールド

可観測

systemAccount

email

ipAddress

ip

target.href

url

フィールド

可観測

systemAccount

email

ipAddress

ip

target.href

url