| W&B Platform Deployment type | Audit logs access mechanism |
|---|---|
| 専用クラウド |
|
| Multi-tenant Cloud | Enterprise プランでのみ利用できます。APIを使用した場合のみ利用できます。 |
| セルフマネージド | 10 分ごとにインスタンスレベルのバケットに Sync されます。APIを使用して取得することもできます。 |
監査ログの保持
- 監査ログを一定期間保持する必要がある場合、W&B では、storage buckets または Audit Logging API を使用して、ログを長期ストレージに定期的に転送することを推奨します。
- 1996年医療保険の携行性と責任に関する法律 (HIPAA) の適用対象である場合、監査ログは、法令で義務付けられた保持期間が終了するまで、社内外のいかなる関係者も削除または変更できない環境で、少なくとも 6 年間保持する必要があります。BYOB を使用する HIPAA 準拠の専用クラウドインスタンスでは、長期保持用ストレージを含む管理対象ストレージに対するガードレールを設定する必要があります。
監査ログスキーマ
| Key | Definition |
|---|---|
action | イベントのアクション。 |
actor_email | 該当する場合、アクションを開始したユーザーのメールアドレス。 |
actor_ip | アクションを開始したユーザーの IP アドレス。 |
actor_user_id | 該当する場合、アクションを実行したログイン中のユーザーの ID。 |
artifact_asset | 該当する場合、アクションに関連付けられた artifact ID。 |
artifact_digest | 該当する場合、アクションに関連付けられた artifact digest。 |
artifact_qualified_name | 該当する場合、アクションに関連付けられた artifact の完全修飾名。 |
artifact_sequence_asset | 該当する場合、アクションに関連付けられた artifact sequence ID。 |
cli_version | 該当する場合、アクションを開始した Python SDK のバージョン。 |
entity_asset | 該当する場合、アクションに関連付けられた entity または チーム ID。 |
entity_name | 該当する場合、アクションに関連付けられた entity または チーム 名。 |
project_asset | 該当する場合、アクションに関連付けられたプロジェクト。 |
project_name | 該当する場合、アクションに関連付けられたプロジェクト名。 |
report_asset | 該当する場合、アクションに関連付けられたレポート ID。 |
report_name | 該当する場合、アクションに関連付けられたレポート名。 |
response_code | 該当する場合、アクションに対する HTTP レスポンスコード。 |
timestamp | RFC3339 format 形式のイベント発生時刻。たとえば、2023-01-23T12:34:56Z は 2023 年 1 月 23 日 12:34:56 UTC を表します。 |
user_asset | 該当する場合、アクションを実行したユーザーではなく、そのアクションの影響を受けるユーザーの asset。 |
user_email | 該当する場合、アクションを実行したユーザーのメールアドレスではなく、そのアクションの影響を受けるユーザーのメールアドレス。 |
個人を特定できる情報 (PII)
- セルフマネージド と 専用クラウド では、組織管理者は 監査ログ の取得時に PII を除外 できます。
- Multi-tenant Cloud では、API endpoint は常に PII を含む 監査ログ の関連フィールドを返します。これは設定できません。
始める前に
-
組織レベルの管理者は監査ログを取得できます。
403エラーが返される場合は、ご自身またはサービスアカウントに十分な権限があることを確認してください。 -
Multi-tenant Cloud: 複数の Multi-tenant Cloud 組織に所属している場合、監査ログ API 呼び出しの送信先を決定する Default API organization を 必ず 設定する必要があります。設定しないと、次のエラーが表示されます。
デフォルトの API 組織を指定するには、次の手順を実行します。
- プロフィール画像をクリックし、User Settings をクリックします。
- Default API organization で、組織を選択します。
監査ログを取得する
-
ご利用のインスタンスに対応する正しい API endpoint を確認します。
- セルフマネージド:
<wandb-platform-url>/admin/audit_logs - 専用クラウド:
<instance-name>.wandb.io/admin/audit_logs - Multi-tenant Cloud (Enterprise が必要) :
https://api.wandb.ai/audit_logs
<API-endpoint>を実際の API endpoint に置き換えてください。 - セルフマネージド:
-
(任意) エンドポイントに追加するクエリパラメーターを作成します。以下の手順では、
<parameters>をその結果の文字列に置き換えてください。
anonymize: URL にanonymize=trueパラメーターが含まれている場合は、PII を削除します。含まれていない場合は、PII も含まれます。監査ログ取得時に PII を除外する を参照してください。Multi-tenant Cloud では、PII を含むすべてのフィールドが含まれるため、サポートされていません。numdaysとstartDateを組み合わせて、取得するログの日付範囲を設定します。各パラメーターは任意で、相互に影響します。- どちらのパラメーターも含まれない場合は、当日のログのみが取得されます。
numDays:startDateからさかのぼって何日分のログを取得するかを示す整数です。省略した場合、または0に設定した場合は、startDateのログのみが取得されます。Multi-tenant Cloud では、numDaysにそれより大きい値を設定しても、取得できる監査ログは最大 7 日分です。startDate: Multi-tenant Cloud でのみサポートされます。取得対象の最新ログの日付をstartDate=YYYY-MM-DD形式で指定します。省略した場合、または明示的に当日の日付を指定した場合は、当日からnumDays分のログが取得されます。
<API-endpoint>?<parameters>の形式で完全修飾エンドポイント URL を作成します。- Web ブラウザーまたは Postman、HTTPie、cURL などのツールを使用して、完全修飾 API endpoint に HTTP
GETリクエストを送信します。
/wandb-audit-logs ディレクトリーに保存されます。
基本認証を使用する
Authorization ヘッダーに、文字列 Basic、半角スペース 1 つ、続けて username:API-KEY 形式の文字列をbase64エンコードした値を設定します。つまり、username と API-KEY を : で区切った実際の値に置き換え、その結果をbase64エンコードします。たとえば、demo:p@55w0rd として認証する場合、ヘッダーは Authorization: Basic ZGVtbzpwQDU1dzByZA== になります。
監査ログ取得時に PII を除外する
セルフマネージド と 専用クラウド では、W&B の組織またはインスタンス管理者は、監査ログの取得時に PII を除外できます。Multi-tenant Cloud では、API endpoint は常に PII を含む監査ログの関連フィールドを返します。これは設定できません。 PII を除外するには、URL パラメーターanonymize=true を指定します。たとえば、W&B インスタンスの URL が https://mycompany.wandb.io で、過去 1 週間のユーザーアクティビティに関する監査ログを取得し、PII を除外したい場合は、次のような API endpoint を使用します。
アクション
| Action | Definition |
|---|---|
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 |
- Open または Public のプロジェクト。
report:readアクション。- 特定の組織に紐付いていない
Userアクション。