메인 콘텐츠로 건너뛰기
W&B 감사 로그(audit logs)를 사용하여 조직 내의 사용자 활동을 추적하고 엔터프라이즈 거버넌스 요구 사항을 준수하세요. 감사 로그는 JSON 형식으로 제공됩니다. 감사 로그 스키마를 참조하세요. 감사 로그에 액세스하는 방법은 W&B 플랫폼 배포 유형에 따라 다릅니다:
W&B 플랫폼 배포 유형감사 로그 액세스 메커니즘
Dedicated Cloud
  • 인스턴스 레벨 BYOB: 10분마다 인스턴스 레벨 버킷(BYOB)으로 동기화됩니다. API를 통해서도 사용 가능합니다.
  • 기본 인스턴스 레벨 스토리지: API를 통해서만 사용할 수 있습니다.
Multi-tenant CloudEnterprise 플랜 전용입니다. API를 통해서만 사용할 수 있습니다.
Self-Managed10분마다 인스턴스 레벨 버킷으로 동기화됩니다. API를 통해서도 사용 가능합니다.
감사 로그를 가져온 후에는 Pandas, Amazon Redshift, Google BigQuery 또는 Microsoft 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 또는 팀 ID입니다.
entity_name해당되는 경우, 액션과 관련된 Entity 또는 팀 이름입니다.
project_asset해당되는 경우, 액션과 관련된 프로젝트입니다.
project_name해당되는 경우, 액션과 관련된 프로젝트의 이름입니다.
report_asset해당되는 경우, 액션과 관련된 리포트 ID입니다.
report_name해당되는 경우, 액션과 관련된 리포트의 이름입니다.
response_code해당되는 경우, 액션에 대한 HTTP 응답 코드입니다.
timestampRFC3339 형식의 이벤트 시간입니다. 예를 들어, 2023-01-23T12:34:56Z는 2023년 1월 23일 12:34:56 UTC를 나타냅니다.
user_asset해당되는 경우, 액션이 영향을 미치는 사용자 에셋입니다(액션을 수행하는 사용자가 아님).
user_email해당되는 경우, 액션이 영향을 미치는 사용자의 이메일 주소입니다(액션을 수행하는 사용자의 이메일 주소가 아님).

개인 식별 정보 (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 엔드포인트를 확인합니다:
  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. <API-endpoint>?<parameters> 형식으로 정규화된 엔드포인트 URL을 구성합니다.
  3. 웹 브라우저나 Postman, HTTPie 또는 cURL과 같은 툴을 사용하여 정규화된 API 엔드포인트에 HTTP GET 요청을 실행합니다.
API 응답에는 줄바꿈으로 구분된 JSON 오브젝트가 포함됩니다. 오브젝트에는 감사 로그가 인스턴스 레벨 버킷에 동기화될 때와 마찬가지로 스키마에 설명된 필드가 포함됩니다. 이 경우 감사 로그는 버킷의 /wandb-audit-logs 디렉토리에 위치합니다.

기본 인증 사용

감사 로그 API에 액세스하기 위해 API 키로 기본 인증(basic authentication)을 사용하려면, 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이고 지난 주 동안의 사용자 활동에 대한 감사 로그를 가져오면서 PII를 제외하려면 다음과 같은 API 엔드포인트를 사용합니다:
https://mycompany.wandb.io/admin/audit_logs?anonymize=true&<additional-parameters>.

액션

이 표는 W&B에 기록될 수 있는 액션을 알파벳 순으로 설명합니다.
액션정의
artifact:createArtifact가 생성되었습니다.
artifact:delete Artifact가 삭제되었습니다.
artifact:readArtifact를 읽었습니다.
project:delete프로젝트가 삭제되었습니다.
project:read프로젝트를 읽었습니다.
report:read리포트를 읽었습니다. 1
run:delete_many여러 Runs가 배치로 삭제되었습니다.
run:deleteRun이 삭제되었습니다.
run:stopRun이 중지되었습니다.
run:undelete_many여러 Runs가 휴지통에서 복구되었습니다.
run:update_many여러 Runs가 배치로 업데이트되었습니다.
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에서는 다음 항목에 대해 감사 로그가 수집되지 않습니다:
  • 공개(Open) 또는 퍼블릭(Public) 프로젝트.
  • report:read 액션.
  • 특정 조직에 연결되지 않은 User 액션.