1 - ユーザーのアクティビティを監査ログで追跡する

W&B の監査ログを使用して、組織内のユーザー活動を追跡し、企業のガバナンス要件に準拠します。監査ログは JSON フォーマットで利用可能です。監査ログスキーマ を参照してください。

監査ログへのアクセス方法は、W&B プラットフォームのデプロイメントタイプによって異なります:

W&B プラットフォームデプロイメントタイプ 監査ログアクセス機構
Self-managed 10 分ごとにインスタンスレベルのバケットに同期されます。また、API を使用しても利用可能です。
Dedicated Cloud with secure storage connector (BYOB) インスタンスレベルのバケット (BYOB) に 10 分ごとに同期されます。また、API を使用しても利用可能です。
Dedicated Cloud with W&B managed storage (without BYOB) API を使用してのみ利用可能です。
SaaS Cloud エンタープライズプランのみで利用可能です。API を使用してのみ利用可能です。

監査ログを取得した後、PandasAmazon RedshiftGoogle BigQueryMicrosoft Fabric などのツールを使用して分析できます。監査ログの分析ツールによっては JSON をサポートしていないものもあります。分析ツールのドキュメントを参照して、分析前に JSON 形式の監査ログを変換するためのガイドラインと要件をご確認ください。

監査ログスキーマ

この表は、監査ログエントリに現れる可能性のあるすべてのキーをアルファベット順に示しています。アクションと状況によって、特定のログエントリには、可能なフィールドのサブセットのみが含まれる場合があります。

キー 定義
action イベントのアクション
actor_email アクションを開始したユーザーのメールアドレス(該当する場合)。
actor_ip アクションを開始したユーザーの IP アドレス。
actor_user_id アクションを実施したログインユーザーの ID(該当する場合)。
artifact_asset アクションに関連するアーティファクト ID(該当する場合)。
artifact_digest アクションに関連するアーティファクトダイジェスト(該当する場合)。
artifact_qualified_name アクションに関連するアーティファクトの完全名(該当する場合)。
artifact_sequence_asset アクションに関連するアーティファクトシーケンス ID(該当する場合)。
cli_version アクションを開始した Python SDK のバージョン(該当する場合)。
entity_asset アクションに関連するエンティティまたはチーム ID(該当する場合)。
entity_name アクションに関連するエンティティまたはチーム名(該当する場合)。
project_asset アクションに関連するプロジェクト(該当する場合)。
project_name アクションに関連するプロジェクトの名前(該当する場合)。
report_asset アクションに関連するレポート ID(該当する場合)。
report_name アクションに関連するレポートの名前(該当する場合)。
response_code アクションの HTTP レスポンスコード(該当する場合)。
timestamp イベントの時間を RFC3339 形式 で示します。例えば、2023-01-23T12:34:56Z は 2023 年 1 月 23 日 12 時 34 分 56 秒 UTC を示します。
user_asset アクションが影響を与えるユーザーアセット(アクションを実行するユーザーではなく)(該当する場合)。
user_email アクションが影響を与えるユーザーのメールアドレス(アクションを実行するユーザーのメールアドレスではなく)(該当する場合)。

個人を特定できる情報 (PII)

個人を特定できる情報 (PII) は API エンドポイントオプションを使用することによってのみ利用可能です。

  • Self-managed および Dedicated Cloud では、組織の管理者は監査ログを取得する際に PII を除外 できます。
  • SaaS Cloud では、監査ログの関連フィールドを常に API エンドポイントが返します。PII を含むこれらのフィールドは設定変更できません。

監査ログの取得

W&B インスタンスの監査ログは、Audit Logging API を使用して、組織またはインスタンス管理者が取得できます。そのエンドポイントは audit_logs/ です。

  1. インスタンスに対する正しい API エンドポイントを決定します:

    次のステップで、<API-endpoint> を実際の API エンドポイントで置き換えてください。

  2. 基本エンドポイントから完全な API エンドポイントを構築し、必要に応じて URL パラメータを含めます:

    • anonymize: true に設定すると、PII を削除します。デフォルトは false です。監査ログ取得時の PII を除外 を参照してください。SaaS Cloud ではサポートされていません。

    • numDays: today - numdays から最新のログまで取得されます。デフォルトは 0 で、今日のログのみを返します。SaaS Cloud では過去最大 7 日分の監査ログを取得できます。

    • startDate: オプションの日付、YYYY-MM-DD 形式で指定します。 SaaS Cloud でのみサポートされています。

      startDatenumDays の相互作用:

      • startDatenumDays の両方を設定すると、startDate から startDate + numDays の範囲でログが返されます。
      • startDate を省略して numDays を含めると、today から numDays までの範囲でログが返されます。
      • startDatenumDays のどちらも設定しないと、今日のログのみが返されます。
  3. Web ブラウザーや PostmanHTTPie、cURL などのツールを使用して、構築した完全修飾 API エンドポイントに対して HTTP GET リクエストを実行します。

API レスポンスには、新しい行で区切られた JSON オブジェクトが含まれます。監査ログがインスタンスレベルのバケットに同期される場合と同じように、そのオブジェクトには スキーマ に記載されたフィールドが含まれます。その場合、監査ログはバケット内の /wandb-audit-logs ディレクトリー内に配置されます。

基本認証を使用する

Audit logs API に アクセスするために基本認証を API キーで使用するには、HTTP リクエストの Authorization ヘッダーを Basic という文字列の後にスペースを置き、 その後にフォーマット username:API-KEY で base-64 エンコードされた文字列を設定します。すなわち、ユーザー名と API キーを : 文字で区切って、その結果を base-64 エンコードします。例えば、demo:p@55w0rd として認証するには、ヘッダーは Authorization: Basic ZGVtbzpwQDU1dzByZA== となります。

監査ログ取得時の PII を除外する

Self-managed および Dedicated Cloud では、W&B の組織やインスタンス管理者が監査ログを取得する際に PII を除外できます。SaaS Cloud では、監査ログの関連フィールドを常に API エンドポイントが返します。この設定は変更できません。

PII を除外するには、URL パラメータ anonymize=true を渡します。例えば、W&B インスタンスの URL が https://mycompany.wandb.io で、過去 1 週間のユーザー活動の監査ログを取得し、PII を除外したい場合、以下のような API エンドポイントを使用します:

https://mycompany.wandb.io/admin/audit_logs?numDays=7&anonymize=true.

アクション

この表は、W&B によって記録される可能性のあるアクションをアルファベット順で説明しています。

アクション 定義
artifact:create アーティファクトが作成されます。
artifact:delete アーティファクトが削除されます。
artifact:read アーティファクトが読み取られます。
project:delete プロジェクトが削除されます。
project:read プロジェクトが読み取られます。
report:read レポートが読み取られます。 1
run:delete_many 複数の run が削除されます。
run:delete run が削除されます。
run:stop run が停止されます。
run:undelete_many 複数の run がゴミ箱から復元されます。
run:update_many 複数の run が更新されます。
run:update run が更新されます。
sweep:create_agent sweep agent が作成されます。
team:create_service_account チーム用のサービスアカウントが作成されます。
team:create チームが作成されます。
team:delete チームが削除されます。
team:invite_user ユーザーがチームに招待されます。
team:uninvite ユーザーまたはサービスアカウントがチームから招待取り消されます。
user:create_api_key ユーザーの API キーが作成されます。1
user:create ユーザーが作成されます。 1
user:deactivate ユーザーが無効化されます。1
user:delete_api_key ユーザーの API キーが削除されます。1
user:initiate_login ユーザーがログインを開始します。1
user:login ユーザーがログインします。1
user:logout ユーザーがログアウトします。1
user:permanently_delete ユーザーが完全に削除されます。1
user:reactivate ユーザーが再活性化されます。1
user:read ユーザーのプロフィールが読み取られます。1
user:update ユーザーが更新されます。1

1: SaaS Cloud では、監査ログは次の項目で収集されません:

  • オープンまたはパブリックプロジェクトの場合。
  • report:read のアクション。
  • 特定の組織に関連付けられていない User のアクション。

2 - Prometheus モニタリングを使用する

Prometheus を W&B サーバーと一緒に使用します。Prometheus のインストールは Kubernetes ClusterIP サービス として公開されます。

以下の手順に従って、Prometheus メトリクスエンドポイント (/metrics) にアクセスします:

  1. Kubernetes CLI ツールキットの kubectl を使用してクラスターに接続します。詳細については、Kubernetes の クラスターへのアクセス ドキュメントを参照してください。

  2. クラスターの内部アドレスを見つけます:

    kubectl describe svc prometheus
    
  3. Kubernetes クラスターで実行中のコンテナ内でシェルセッションを開始し、kubectl exec を使用して、<internal address>/metrics エンドポイントにアクセスします。

    以下のコマンドをコピーしてターミナルで実行し、<internal address> を内部アドレスに置き換えます:

    kubectl exec <internal address>/metrics
    

テストポッドが開始され、ネットワーク内の何かにアクセスするためだけに exec することができます:

kubectl run -it testpod --image=alpine bin/ash --restart=Never --rm

そこから、ネットワークへのアクセスを内部に保つか、kubernetes nodeport サービスで自分で公開するかを選択できます。

3 - Slack アラートの設定

Integrate W&B Server with Slack.

Slack アプリケーションを作成する

以下の手順に従って Slack アプリケーションを作成してください。

  1. https://api.slack.com/apps にアクセスし、Create an App を選択します。

  2. App Name フィールドにアプリの名前を入力します。

  3. アプリを開発したい Slack ワークスペースを選択します。アラートに使用する予定のワークスペースと同じワークスペースを使用していることを確認してください。

Slack アプリケーションを設定する

  1. 左側のサイドバーで OAth & Permissions を選択します。

  2. Scopes セクションで、ボットに incoming_webhook スコープを追加します。スコープは、アプリに開発ワークスペースでのアクションを実行する権限を与えます。

    Bot の OAuth スコープについての詳細は、Slack API ドキュメントの「Understanding OAuth scopes for Bots」チュートリアルを参照してください。

  3. W&B インストールを指すようにリダイレクト URL を設定します。ローカルシステム設定で指定されたホスト URL と同じ URL を使用してください。インスタンスへの異なる DNS マッピングを持つ場合は、複数の URL を指定できます。

  4. Save URLs を選択します。

  5. Restrict API Token Usage で、オプションとして W&B インスタンスの IP または IP 範囲を許可リストに指定できます。許可された IP アドレスの制限は、Slack アプリケーションのセキュリティをより強化します。

Slack アプリケーションを W&B に登録する

  1. W&B インスタンスの System Settings または System Console ページに移動します。デプロイメントに応じて異なります。

  2. 使用している System ページに応じて、以下のオプションのいずれかを実行します:

    • System Console にいる場合: Settings から Notifications に進みます。

    • System Settings にいる場合: カスタム Slack アプリケーションを有効にするために Enable a custom Slack application to dispatch alerts をトグルします。

  3. Slack client IDSlack secret を入力し、Save をクリックします。設定の基本情報でアプリケーションのクライアント ID とシークレットを見つけることができます。

  4. W&B アプリケーションで Slack インテグレーションを設定して、すべてが正常に動作していることを確認します。

4 - 組織のダッシュボードを表示する

組織の W&B 使用状況を確認する

組織のダッシュボードを使用して、組織の W&B 使用状況の全体像を把握できます。このダッシュボードはタブごとに整理されています。

  • Users: 各ユーザーの名前、メール、チーム、役割、最後の活動を含む詳細をリストします。
  • Service accounts: サービスアカウントに関する詳細をリストし、サービスアカウントを作成することができます。
  • Activity: 各ユーザーの活動に関する詳細をリストします。
  • Teams: 各チームのユーザー数や追跡時間を含む詳細をリストし、管理者がチームに参加できるようにします。
  • Billing: 組織の請求内容を要約し、請求レポートを実行およびエクスポートすることができ、ライセンスの期限などの詳細を示します。
  • Settings: カスタムロールとプライバシーや認証に関連する設定を構成できます。

ユーザーのステータスを確認する

Users タブには、すべてのユーザーと各ユーザーに関するデータが一覧表示されます。Last Active 列は、ユーザーが招待を受け入れたかどうか、およびユーザーの現在のステータスを示します。

  • Invite pending: 管理者が招待を送信しましたが、ユーザーが招待を受け入れていない状態。
  • Active: ユーザーが招待を受け入れ、アカウントを作成した状態。
  • -: ユーザーは以前にアクティブでしたが、過去6カ月間活動していない状態。
  • Deactivated: 管理者がユーザーのアクセスを取り消した状態。

アクティビティでユーザーのリストを並べ替えるには、Last Active 列の見出しをクリックします。

組織の W&B 利用方法を確認して共有する

Users タブから、組織の W&B 利用方法の詳細を CSV 形式で確認できます。

  1. Invite new user ボタンの横にあるアクション ... メニューをクリックします。
  2. Export as CSV をクリックします。ダウンロードされた CSV ファイルには、組織の各ユーザーに関する詳細(ユーザー名、メールアドレス、最後のアクティブ時刻、役割など)が記載されています。

ユーザーのアクティビティを確認する

Users タブ内の Last Active 列を使用して、個々のユーザーの Activity summary を取得します。

  1. Last Active でユーザーのリストを並べ替えるには、列名をクリックします。
  2. ユーザーの最後のアクティビティについての詳細を見るには、ユーザーの Last Active フィールドにマウスを重ねます。ツールチップが表示され、ユーザーが追加された日時と、ユーザーがアクティブであった総日数が示されます。

ユーザーが アクティブ であるとは以下の場合を指します:

  • W&B にログインする。
  • W&B アプリ内の任意のページを見る。
  • run をログする。
  • SDK を使用して実験を追跡する。
  • W&B サーバーと何らかの方法でやり取りする。

時間経過によるアクティブユーザーの確認

Activity タブのプロットを利用して、時間の経過とともに何人のユーザーがアクティブであったかの総合的なビューを取得できます。

  1. Activity タブをクリックします。
  2. Total active users プロットは、一定期間(デフォルトでは3カ月)におけるアクティブユーザー数を示します。
  3. Users active over time プロットは、一定期間(デフォルトでは6カ月)におけるアクティブユーザー数の変動を示します。ポイントにマウスを重ねると、その日時のユーザー数が表示されます。

プロットの期間を変更するには、ドロップダウンを使用します。次のオプションから選択できます:

  • 過去30日間
  • 過去3カ月
  • 過去6カ月
  • 過去12カ月
  • すべての時間