メインコンテンツへスキップ
W&B の監査ログを使用して、組織内のユーザーアクティビティを追跡し、エンタープライズレベルのガバナンス要件への準拠に役立てることができます。監査ログは 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 を使用して、ログを定期的に長期保存用ストレージへ転送することを推奨します。
  • Health Insurance Portability and Accountability Act of 1996 (HIPAA) の適用対象となる場合、監査ログは、必須の保存期間が終了する前に、いかなる内部または外部の主体によっても削除または変更できない環境で、最低 6 年間保持されなければなりません。HIPAA 準拠の Dedicated Cloud インスタンスで BYOB を使用している場合は、長期保存用ストレージを含む管理対象ストレージに対してガードレールを構成する必要があります。

監査ログスキーマ

この表は、監査ログエントリに含まれる可能性のあるすべてのキーをアルファベット順に示します。アクションや状況によっては、特定のログエントリには、取り得るフィールドの一部のみが含まれます。
KeyDefinition
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(該当する場合)アクションに関連付けられたプロジェクト ID。
project_name(該当する場合)アクションに関連付けられたプロジェクト名。
report_asset(該当する場合)アクションに関連付けられたレポート ID。
report_name(該当する場合)アクションに関連付けられたレポート名。
response_code(該当する場合)アクションに対する HTTP レスポンスコード。
timestampイベントの時刻(RFC3339 形式)。たとえば、2023-01-23T12:34:56Z は UTC で 2023 年 1 月 23 日 12:34:56 を表します。
user_asset(該当する場合)アクションが影響を与えるユーザーアセット(アクションを実行するユーザーではなく)。
user_email(該当する場合)アクションが影響を与えるユーザーのメールアドレス(アクションを実行するユーザーのメールアドレスではなく)。

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

メールアドレスやプロジェクト名、Teams 名、レポート名などの個人を特定できる情報(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 を除外する」を参照してください。Multi-tenant Cloud ではサポートされておらず、PII を含むすべてのフィールドが常に返されます。
    • numdaysstartDate の組み合わせで、取得するログの日付範囲を設定します。各パラメータは任意であり、相互に影響します。
      • どちらのパラメータも指定しない場合、本日分のログのみが取得されます。
      • numDays: startDate から遡って何日分のログを取得するかを示す整数です。省略するか 0 に設定すると、startDate 当日分のみのログが取得されます。Multi-tenant Cloud の組織は最大 7 日分の監査ログを取得できます。つまり、numDays=9 を指定した場合、実際には numDays=7 として扱われます。
      • startDate: 取得するログのうち、最も新しい日付を指定します。形式は startDate=YYYY-MM-DD です。省略するか、本日の日付を明示的に指定した場合、本日から numDays で指定した日数分のログが取得されます(Multi-tenant Cloud では最大 7 日分)。
  2. <API-endpoint>?<parameters> という形式で、完全修飾エンドポイント URL を構成します。
  3. Web ブラウザ、または PostmanHTTPie、cURL などのツールを使用して、完全修飾 API エンドポイントに対して HTTP GET リクエストを実行します。
API レスポンスは、JSON オブジェクトが改行区切りで並んだ形式です。オブジェクトには、インスタンスレベルのバケットに監査ログが同期される場合と同様に、スキーマで説明されているフィールドが含まれます。その場合、監査ログはバケット内の /wandb-audit-logs ディレクトリに保存されます。

ベーシック認証を使用する

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 で、直近 1 週間のユーザーアクティビティに関する監査ログを取得しつつ PII を除外したい場合は、次のような API エンドポイントを使用します。
https://mycompany.wandb.io/admin/audit_logs?anonymize=true&<additional-parameters>.

Actions

この表は、W&B によって記録される可能性のあるアクションをアルファベット順に示します。
ActionDefinition
artifact:createアーティファクトが作成されます。
artifact:delete アーティファクトが削除されます。
artifact:readアーティファクトが読み取られます。
project:deleteプロジェクトが削除されます。
project:readプロジェクトが読み取られます。
report:readレポートが読み取られます。 1
run:delete_many複数の run が一括削除されます。
run:deleterun が削除されます。
run:stoprun が停止されます。
run:undelete_many複数の run がゴミ箱から復元されます。
run:update_many複数の run が一括更新されます。
run:updaterun が更新されます。
sweep:create_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: Multi-tenant Cloud では、次の対象については監査ログは収集されません:
  • オープンまたはパブリックなプロジェクト
  • report:read アクション
  • 特定の組織に紐付いていない User アクション