메인 콘텐츠로 건너뛰기
W&B 감사 로그를 사용해 조직 내 사용자 활동을 추적하고 엔터프라이즈 거버넌스 요구 사항을 충족할 수 있습니다. 감사 로그는 JSON 형식으로 제공됩니다. Audit log schema를 참고하세요. 감사 로그에 액세스하는 방법은 W&B 플랫폼 배포 유형에 따라 다릅니다.
W&B Platform Deployment typeAudit logs access mechanism
Dedicated Cloud
  • Instance-level BYOB: 10분마다 인스턴스 수준 버킷(BYOB)으로 동기화됩니다. the API를 사용해서도 액세스할 수 있습니다.
  • 기본 인스턴스 수준 저장소: the API를 통해서만 액세스할 수 있습니다.
Multi-tenant CloudEnterprise 플랜에서만 사용할 수 있습니다. the API를 통해서만 액세스할 수 있습니다.
Self-Managed10분마다 인스턴스 수준 버킷으로 동기화됩니다. the API를 사용해서도 액세스할 수 있습니다.
감사 로그를 가져온 후에는 Pandas, Amazon Redshift, Google BigQuery, Microsoft Fabric와 같은 도구를 사용해 분석할 수 있습니다. 일부 감사 로그 분석 도구는 JSON을 지원하지 않으므로, 분석 전에 JSON 형식의 감사 로그를 변환하는 지침과 요구 사항은 사용하는 분석 도구의 문서를 참고하세요. 로그 형식에 대한 자세한 내용은 Audit log schemaActions를 참조하세요.

감사 로그 보존

  • 감사 로그를 특정 기간 동안 보존해야 하는 경우, W&B는 저장소 버킷 또는 Audit Logging API를 사용해 로그를 장기 저장소로 주기적으로 전송할 것을 권장합니다.
  • Health Insurance Portability and Accountability Act of 1996 (HIPAA)의 적용을 받는 경우, 감사 로그는 의무 보존 기간이 끝나기 전에 내부 또는 외부의 어떤 주체도 삭제하거나 수정할 수 없는 환경에서 최소 6년 동안 보존되어야 합니다. BYOB를 사용하는 HIPAA 준수 Dedicated Cloud 인스턴스의 경우, 장기 보존 저장소를 포함한 관리형 저장소에 대해 가드레일을 구성해야 합니다.

Audit log schema

이 표는 감사 로그 항목에 나타날 수 있는 모든 키를 알파벳순으로 보여 줍니다. action 및 상황에 따라 특정 로그 항목에는 가능한 필드 중 일부만 포함될 수 있습니다.
Key정의
action이벤트의 action입니다.
actor_email해당하는 경우, action을 시작한 사용자의 이메일 주소입니다.
actor_ipaction을 시작한 사용자의 IP 주소입니다.
actor_user_id해당하는 경우, action을 수행한 로그인된 사용자의 ID입니다.
artifact_asset해당하는 경우, action과 연결된 artifact ID입니다.
artifact_digest해당하는 경우, action과 연결된 artifact digest입니다.
artifact_qualified_name해당하는 경우, action과 연결된 artifact의 전체 이름입니다.
artifact_sequence_asset해당하는 경우, action과 연결된 artifact sequence ID입니다.
cli_version해당하는 경우, action을 시작한 Python SDK의 버전입니다.
entity_asset해당하는 경우, action과 연결된 entity 또는 팀 ID입니다.
entity_name해당하는 경우, action과 연결된 entity 또는 팀 이름입니다.
project_asset해당하는 경우, action과 연결된 프로젝트입니다.
project_name해당하는 경우, action과 연결된 프로젝트 이름입니다.
report_asset해당하는 경우, action과 연결된 리포트 ID입니다.
report_name해당하는 경우, action과 연결된 리포트 이름입니다.
response_code해당하는 경우, action의 HTTP 응답 코드입니다.
timestampRFC3339 format의 이벤트 시간입니다. 예를 들어 2023-01-23T12:34:56Z는 UTC 기준 2023년 1월 23일 12:34:56을 나타냅니다.
user_asset해당하는 경우, action을 수행한 사용자가 아니라 action의 영향을 받는 사용자 asset입니다.
user_email해당하는 경우, action을 수행한 사용자의 이메일 주소가 아니라 action의 영향을 받는 사용자의 이메일 주소입니다.

개인 식별 정보 (PII)

이메일 주소, Projects, Teams, Reports의 이름과 같은 개인 식별 정보(PII)는 API 엔드포인트 옵션을 통해서만 확인할 수 있습니다.
  • Self-ManagedDedicated 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에서 조직을 선택합니다.
    이는 서비스 계정에는 적용되지 않습니다. 서비스 계정은 하나의 Multi-tenant Cloud 조직에만 속할 수 있기 때문입니다.

감사 로그 조회

감사 로그를 조회하려면 다음 단계를 따르세요:
  1. 인스턴스에 맞는 올바른 API 엔드포인트를 확인합니다: 다음 단계에서는 <API-endpoint>를 사용 중인 API 엔드포인트로 바꾸세요.
  2. (선택) 엔드포인트에 추가할 쿼리 파라미터를 구성합니다. 다음 단계에서는 <parameters>를 결과 문자열로 바꾸세요.
    • anonymize: URL에 anonymize=true 파라미터가 포함되면 모든 PII를 제거합니다. 그렇지 않으면 PII가 포함됩니다. 감사 로그 조회 시 PII 제외를 참고하세요. 모든 필드(PII 포함)가 포함되므로 Multi-tenant Cloud에서는 지원되지 않습니다.
    • numdaysstartDate를 조합해 조회할 로그의 날짜 범위를 설정합니다. 각 파라미터는 선택 사항이며 서로 영향을 줍니다.
      • 두 파라미터가 모두 포함되지 않으면 오늘 로그만 조회합니다.
      • numDays: startDate를 기준으로 과거 며칠치 로그를 조회할지 나타내는 정수입니다. 생략하거나 0으로 설정하면 startDate 하루치 로그만 조회합니다. Multi-tenant Cloud에서는 numDays를 더 큰 값으로 설정하더라도 최대 7일치 감사 로그만 조회할 수 있습니다.
      • startDate: Multi-tenant Cloud에서만 지원됩니다. startDate=YYYY-MM-DD 형식으로 조회할 가장 최신 로그를 지정합니다. 생략하거나 명시적으로 오늘 날짜로 설정하면 오늘부터 numDays까지의 로그를 조회합니다.
  3. <API-endpoint>?<parameters> 형식으로 정규화된 전체 엔드포인트 URL을 구성합니다.
  4. 웹 브라우저 또는 Postman, HTTPie, cURL 같은 도구를 사용해 정규화된 전체 API 엔드포인트에 HTTP GET 요청을 실행합니다.
API 응답에는 줄바꿈으로 구분된 JSON 객체가 포함됩니다. 객체에는 schema에 설명된 필드가 포함되며, 감사 로그가 인스턴스 수준 버킷에 Sync될 때와 동일합니다. 이 경우 감사 로그는 버킷의 /wandb-audit-logs 디렉터리에 있습니다.

기본 인증 사용

API 키로 감사 로그 API에 액세스하기 위해 기본 인증을 사용하려면 HTTP 요청의 Authorization 헤더를 Basic 문자열 뒤에 공백 하나와 username:API-KEY 형식의 base-64 인코딩 문자열이 오도록 설정합니다. 즉, 사용자 이름과 API 키를 : 문자로 구분해 실제 값으로 바꾼 다음 그 결과를 base-64로 인코딩합니다. 예를 들어 demo:p@55w0rd로 인증하려면 헤더는 Authorization: Basic ZGVtbzpwQDU1dzByZA==여야 합니다.

감사 로그를 조회할 때 PII 제외

Self-ManagedDedicated Cloud에서는 W&B 조직 또는 인스턴스 관리자가 감사 로그를 조회할 때 PII를 제외할 수 있습니다. Multi-tenant Cloud에서는 API 엔드포인트가 감사 로그의 관련 필드(PII 포함)를 항상 반환합니다. 이 설정은 변경할 수 없습니다. PII를 제외하려면 anonymize=true URL 파라미터를 전달하세요. 예를 들어 W&B 인스턴스 URL이 https://mycompany.wandb.io이고 지난 1주일간의 사용자 활동에 대한 감사 로그를 조회하면서 PII를 제외하려면 다음과 같은 API 엔드포인트를 사용하세요.
https://mycompany.wandb.io/admin/audit_logs?anonymize=true&<additional-parameters>.

작업

이 표는 W&B에서 기록할 수 있는 작업을 알파벳순으로 설명합니다.
ActionDefinition
artifact:createArtifact가 생성됩니다.
artifact:delete Artifact가 삭제됩니다.
artifact:readArtifact가 조회됩니다.
project:delete프로젝트가 삭제됩니다.
project:read프로젝트가 조회됩니다.
report:read리포트가 조회됩니다. 1
run:delete_manyrun 여러 개가 삭제됩니다.
run:deleterun이 삭제됩니다.
run:stoprun이 중지됩니다.
run:undelete_manyrun 여러 개가 휴지통에서 복원됩니다.
run:update_manyrun 여러 개가 업데이트됩니다.
run:updaterun이 업데이트됩니다.
sweep:create_agentsweep agent가 생성됩니다.
team:create_service_account팀용 service account가 생성됩니다.
team:create팀이 생성됩니다.
team:delete팀이 삭제됩니다.
team:invite_user사용자가 팀에 초대됩니다.
team:uninvite사용자 또는 service account가 팀에서 초대 취소됩니다.
user:create_api_key사용자 또는 service account의 API 키가 생성됩니다. 1
user:create사용자가 생성됩니다. 1
user:deactivate사용자가 비활성화됩니다. 1
user:delete_api_key사용자 또는 service account의 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에서는 다음에 대한 감사 로그가 수집되지 않습니다.
  • Open 또는 Public Projects.
  • report:read 작업.
  • 특정 조직에 연결되지 않은 User 작업.