메인 콘텐츠로 건너뛰기
W&B 감사 로그를 사용하여 조직 내 사용자 활동을 추적하고 엔터프라이즈 거버넌스 요구 사항을 충족하십시오. 감사 로그는 JSON 형식으로 제공됩니다. 감사 로그 스키마를 참조하십시오. 감사 로그에 액세스하는 방법은 사용 중인 W&B 플랫폼 배포 유형에 따라 다릅니다:
W&B 플랫폼 배포 유형감사 로그 액세스 방식
Dedicated Cloud
  • Instance-level BYOB: 인스턴스 수준 버킷(BYOB)으로 10분마다 동기화됩니다. API를 사용해서도 액세스할 수 있습니다.
  • 기본 인스턴스 수준 스토리지: API를 사용하는 경우에만 액세스할 수 있습니다.
Multi-tenant CloudEnterprise 플랜에서만 제공됩니다. API를 사용하는 경우에만 액세스할 수 있습니다.
Self-Managed인스턴스 수준 버킷에 10분마다 동기화됩니다. API를 사용해서도 액세스할 수 있습니다.
감사 로그를 가져온 후에는 Pandas, Amazon Redshift, Google BigQuery, Microsoft Fabric과 같은 도구를 사용해 분석할 수 있습니다. 일부 감사 로그 분석 도구는 JSON을 지원하지 않을 수 있으므로, 분석 전에 JSON 형식의 감사 로그를 변환하는 방법과 요구 사항은 사용하는 분석 도구의 설명서를 참조하십시오. 로그 형식에 대한 자세한 내용은 감사 로그 스키마작업을 참조하십시오.

감사 로그 보존

  • 특정 기간 동안 감사 로그를 보존해야 하는 경우, W&B에서는 스토리지 버킷 또는 Audit Logging API를 사용하여 주기적으로 로그를 장기 보관 스토리지로 전송할 것을 권장합니다.
  • 1996년 건강보험 양도 및 책임에 관한 법률(HIPAA)의 적용을 받는 경우, 감사 로그는 필수 보존 기간이 끝나기 전까지 내부 또는 외부 주체에 의해 삭제되거나 수정될 수 없는 환경에서 최소 6년 동안 보존되어야 합니다. HIPAA를 준수하는 Dedicated Cloud 인스턴스에서 BYOB를 사용하는 경우, 장기 보존 스토리지를 포함한 관리형 스토리지에 대해 가드레일을 구성해야 합니다.

감사 로그 스키마

다음 표는 감사 로그 항목에 나타날 수 있는 모든 키를 알파벳순으로 나열합니다. 작업 유형과 상황에 따라 특정 로그 항목에는 가능한 필드의 일부만 포함될 수 있습니다.
Key정의
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작업과 연결된 프로젝트(해당하는 경우).
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)

이메일 주소, 프로젝트·팀·리포트 이름과 같은 개인 식별 정보(PII)는 API 엔드포인트 옵션을 통해서만 조회할 수 있습니다.
  • Self-ManagedDedicated Cloud 환경에서는, 조직 관리자가 감사 로그를 가져올 때 PII를 제외하도록 설정할 수 있습니다.
  • Multi-tenant Cloud 환경에서는, API 엔드포인트가 PII를 포함해 감사 로그에 필요한 필드를 항상 반환합니다. 이는 별도로 구성할 수 없습니다.

시작하기 전에

  1. 감사 로그는 조직 수준 관리자만 가져올 수 있습니다. 403 오류가 발생하면, 본인 또는 서비스 계정에 충분한 권한이 있는지 확인하세요.
  2. 멀티 테넌트 클라우드(Multi-tenant Cloud): 여러 멀티 테넌트 클라우드 조직의 구성원인 경우, 감사 로그 API 호출이 라우팅될 위치를 결정하는 기본 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. 인스턴스에 맞는 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. 웹 브라우저 또는 Postman, HTTPie, cURL과 같은 도구를 사용하여 완전한 API 엔드포인트에 대해 HTTP GET 요청을 실행합니다.
API 응답에는 줄바꿈으로 구분된 JSON 객체가 포함됩니다. 객체에는 인스턴스 수준 버킷으로 감사 로그가 동기화될 때와 마찬가지로 스키마에 설명된 필드가 포함됩니다. 이 경우 감사 로그는 버킷의 /wandb-audit-logs 디렉터리에 저장됩니다.

기본 인증 사용

API key를 사용해 기본 인증 방식으로 audit logs API에 액세스하려면, HTTP 요청의 Authorization 헤더를 Basic이라는 문자열 다음에 공백 한 칸과 username:API-KEY 형식의 문자열을 Base64로 인코딩한 값을 이어 붙인 문자열로 설정합니다. 즉, 사용자 이름과 API key를 : 문자로 구분해 하나의 문자열로 만든 다음, 그 결과를 Base64로 인코딩합니다. 예를 들어 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:create아티팩트가 생성됩니다.
artifact:delete 아티팩트가 삭제됩니다.
artifact:read아티팩트가 읽힙니다.
project:delete프로젝트가 삭제됩니다.
project:read프로젝트가 조회됩니다.
report:read리포트가 조회됩니다. 1
run:delete_many여러 실행이 삭제됩니다.
run:delete실행이 삭제됩니다.
run:stop실행이 중지됩니다.
run:undelete_many여러 실행이 휴지통에서 복원됩니다.
run:update_many여러 실행이 업데이트됩니다.
run:update실행이 업데이트됩니다.
sweep:create_agent스윕 에이전트가 생성됩니다.
team:create_service_account팀용 서비스 계정이 생성됩니다.
team:create팀이 생성됩니다.
team:delete팀이 삭제됩니다.
team:invite_user사용자가 팀에 초대됩니다.
team:uninvite사용자 또는 서비스 계정이 팀 초대에서 제거됩니다.
user:create_api_key사용자 또는 서비스 계정용 API key가 생성됩니다. 1
user:create사용자가 생성됩니다. 1
user:deactivate사용자가 비활성화됩니다. 1
user:delete_api_key사용자 또는 서비스 계정용 API key가 삭제됩니다. 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 작업