メインコンテンツへスキップ
W&Bの監査ログ(Audit logs)を使用すると、組織内のユーザーアクティビティを追跡し、企業のガバナンス要件に準拠することができます。監査ログはJSON形式で提供されます。監査ログのスキーマを参照してください。 監査ログへのアクセス方法は、W&Bプラットフォームのデプロイメントタイプによって異なります。
W&Bプラットフォームのデプロイメントタイプ監査ログのアクセス方法
Dedicated Cloud
  • インスタンスレベルのBYOB: 10分ごとにインスタンスレベルのバケット(BYOB)に同期されます。また、APIを使用して取得することも可能です。
  • デフォルトのインスタンスレベルストレージ: APIを使用した場合のみ利用可能です。
Multi-tenant CloudEnterpriseプランのみ利用可能です。APIを使用した場合のみ利用可能です。
Self-Managed10分ごとにインスタンスレベルのバケットに同期されます。また、APIを使用して取得することも可能です。
監査ログを取得した後は、PandasAmazon RedshiftGoogle BigQueryMicrosoft Fabric などのツールを使用して分析できます。一部の監査ログ分析ツールはJSONをサポートしていません。分析前にJSON形式の監査ログを変換するためのガイドラインや要件については、お使いの分析ツールのドキュメントを参照してください。 ログの形式に関する詳細は、監査ログのスキーマおよびアクションを参照してください。

監査ログの保持

  • 特定の期間、監査ログを保持する必要がある場合、W&BはストレージバケットまたはAudit Logging APIを使用して、ログを定期的に長期ストレージに転送することを推奨します。
  • 1996年の医療保険の相互運用性と責任に関する法律(HIPAA)の対象となる場合、監査ログは、義務付けられた保持期間が終了するまで内部または外部のいかなる主体によっても削除または変更できない環境で、最低6年間保持する必要があります。BYOBを使用したHIPAA準拠の Dedicated Cloud インスタンスの場合、長期保持ストレージを含む管理ストレージに対してガードレールを設定する必要があります。

監査ログのスキーマ

この表は、監査ログのエントリに表示される可能性のあるすべてのキーをアルファベット順に示しています。アクションや状況によっては、特定の見出しにフィールドの一部(サブセット)のみが含まれる場合があります。
キー定義
actionイベントの アクション
actor_emailアクションを開始したユーザーのメールアドレス(該当する場合)。
actor_ipアクションを開始したユーザーのIPアドレス。
actor_user_idアクションを実行したログインユーザーのID(該当する場合)。
artifact_assetアクションに関連付けられた Artifact ID(該当する場合)。
artifact_digestアクションに関連付けられた Artifact ダイジェスト(該当する場合)。
artifact_qualified_nameアクションに関連付けられた Artifact の完全修飾名(該当する場合)。
artifact_sequence_assetアクションに関連付けられた Artifact シーケンスID(該当する場合)。
cli_versionアクションを開始したPython SDKのバージョン(該当する場合)。
entity_assetアクションに関連付けられた Entity または Team のID(該当する場合)。
entity_nameアクションに関連付けられた Entity または Team の名前(該当する場合)。
project_assetアクションに関連付けられた Project(該当する場合)。
project_nameアクションに関連付けられた Project の名前(該当する場合)。
report_assetアクションに関連付けられた Report ID(該当する場合)。
report_nameアクションに関連付けられた Report の名前(該当する場合)。
response_codeアクションに対するHTTPレスポンスコード(該当する場合)。
timestampイベントの発生時刻( RFC3339形式 )。例えば、 2023-01-23T12:34:56Z は2023年1月23日 12:34:56 UTCを表します。
user_assetアクションの影響を受ける User アセット(アクションを実行したユーザーではなく、対象となるユーザー)(該当する場合)。
user_emailアクションの影響を受けるユーザーのメールアドレス(アクションを実行したユーザーのメールアドレスではなく、対象となるユーザー)(該当する場合)。

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

メールアドレスや Project 、 Team 、 Report の名前などの個人を特定できる情報(PII)は、APIエンドポイントオプションを使用した場合のみ利用可能です。
  • Self-Managed および Dedicated Cloud の場合、組織管理者は監査ログの取得時に PIIを除外 することができます。
  • Multi-tenant Cloud の場合、APIエンドポイントはPIIを含む監査ログの関連フィールドを常に返します。これは設定変更できません。

事前準備

  1. 組織レベルの管理者が監査ログを取得できます。 403 エラーが発生した場合は、自身またはサービスアカウントに適切な権限があることを確認してください。
  2. Multi-tenant Cloud: 複数の Multi-tenant Cloud 組織のメンバーである場合、監査ログAPIコールのルーティング先を決定する Default API organization を設定する 必要があります 。設定しない場合、以下のエラーが発生します。
    user is associated with multiple organizations but no valid org ID found in user info
    
    デフォルトのAPI組織を指定するには:
    1. プロフィール画像をクリックし、 User Settings をクリックします。
    2. Default API organization で、組織を選択します。
    これは、1つの Multi-tenant Cloud 組織のメンバーにしかなれないサービスアカウントには適用されません。

監査ログの取得

監査ログを取得するには:
  1. インスタンスに応じた正しいAPIエンドポイントを確認します。
  1. (オプション)エンドポイントに追加するクエリパラメータを作成します。以下の手順では、 <parameters> を作成した文字列に置き換えてください。
    • anonymize: URLに anonymize=true パラメータが含まれている場合、PIIが削除されます。それ以外の場合、PIIが含まれます。監査ログ取得時のPIIの除外を参照してください。PIIを含むすべてのフィールドが返される Multi-tenant Cloud ではサポートされていません。
    • numdaysstartDate を組み合わせて、取得するログの日付範囲を設定します。各パラメータは任意であり、相互に作用します。
      • 両方のパラメータが含まれていない場合、当日のログのみが取得されます。
      • numDays: startDate から遡ってログを取得する日数を整数で指定します。省略するか 0 に設定すると、 startDate 当日のログのみが取得されます。 Multi-tenant Cloud 組織では、最大7日分までの監査ログを取得できます。つまり、 numDays=9 と設定しても、実際のパラメータは numDays=7 として扱われます。
      • startDate: 取得する最新のログの日付を startDate=YYYY-MM-DD 形式で制御します。省略するか、明示的に当日の日付に設定した場合、今日から numDays 前( Multi-tenant Cloud の場合は最大 7 日前)までのログが取得されます。
  2. 完全修飾エンドポイントURLを <API-endpoint>?<parameters> の形式で作成します。
  3. Webブラウザ、または PostmanHTTPie 、cURLなどのツールを使用して、完全修飾APIエンドポイントに対してHTTP GET リクエストを実行します。
APIレスポンスには、改行区切りのJSONオブジェクトが含まれます。オブジェクトには、監査ログがインスタンスレベルのバケットに同期された場合と同様に、 スキーマ で説明されているフィールドが含まれます。バケットに同期されている場合、監査ログはバケット内の /wandb-audit-logs ディレクトリーに配置されます。

基本認証(Basic Authentication)の使用

APIキーを使用して監査ログAPIにアクセスするために基本認証を使用するには、HTTPリクエストの Authorization ヘッダーに、文字列 Basic とそれに続くスペース、そして username:API-KEY 形式のBase64エンコードされた文字列を設定します。つまり、ユーザー名とAPIキーを : 文字で区切って自身の値に置き換え、その結果をBase64でエンコードします。例えば、 demo:p@55w0rd として認証する場合、ヘッダーは Authorization: Basic ZGVtbzpwQDU1dzByZA== になります。

監査ログ取得時のPIIの除外

Self-Managed および Dedicated Cloud では、W&B組織管理者またはインスタンス管理者が監査ログの取得時にPIIを除外できます。Multi-tenant Cloud の場合、APIエンドポイントはPIIを含む監査ログの関連フィールドを常に返します。これは設定変更できません。 PIIを除外するには、URLパラメータ anonymize=true を渡します。例えば、W&BインスタンスのURLが https://mycompany.wandb.io で、先週のユーザーアクティビティの監査ログをPIIを除外して取得したい場合は、以下のようなAPIエンドポイントを使用します。
https://mycompany.wandb.io/admin/audit_logs?anonymize=true&<additional-parameters>.

アクション

この表は、W&Bによって記録される可能性のあるアクションをアルファベット順に説明しています。
アクション定義
artifact:createArtifact が作成されました。
artifact:delete Artifact が削除されました。
artifact:readArtifact が読み取られました。
project:deleteProject が削除されました。
project:readProject が読み取られました。
report:readReport が読み取られました。 1
run:delete_many一括の Runs が削除されました。
run:deleteRun が削除されました。
run:stopRun が停止されました。
run:undelete_many一括の Runs がゴミ箱から復元されました。
run:update_many一括の Runs が更新されました。
run:updateRun が更新されました。
sweep:create_agentsweep agent が作成されました。
team:create_service_accountTeam 用のサービスアカウントが作成されました。
team:createTeam が作成されました。
team:deleteTeam が削除されました。
team:invite_userUser が Team に招待されました。
team:uninviteUser またはサービスアカウントの Team への招待が取り消されました。
user:create_api_keyユーザーの APIキー が作成されました。 1
user:createUser が作成されました。 1
user:deactivateUser が無効化されました。 1
user:delete_api_keyユーザーの APIキー が削除されました。 1
user:initiate_loginUser がログインを開始しました。 1
user:loginUser がログインしました。 1
user:logoutUser がログアウトしました。 1
user:permanently_deleteUser が完全に削除されました。 1
user:reactivateUser が再有効化されました。 1
user:readユーザープロファイルが読み取られました。 1
user:updateUser が更新されました。 1
1: Multi-tenant Cloud では、以下の監査ログは収集されません:
  • オープンまたはパブリックな Projects 。
  • report:read アクション。
  • 特定の組織に紐付かない User アクション。