| W&B 플랫폼 배포 유형 | 감사 로그 액세스 메커니즘 |
|---|---|
| Dedicated Cloud |
|
| Multi-tenant Cloud | Enterprise 플랜 전용입니다. API를 통해서만 사용할 수 있습니다. |
| Self-Managed | 10분마다 인스턴스 레벨 버킷으로 동기화됩니다. API를 통해서도 사용 가능합니다. |
감사 로그 보관
- 감사 로그를 특정 기간 동안 보관해야 하는 경우, 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 응답 코드입니다. |
timestamp | RFC3339 형식의 이벤트 시간입니다. 예를 들어, 2023-01-23T12:34:56Z는 2023년 1월 23일 12:34:56 UTC를 나타냅니다. |
user_asset | 해당되는 경우, 액션이 영향을 미치는 사용자 에셋입니다(액션을 수행하는 사용자가 아님). |
user_email | 해당되는 경우, 액션이 영향을 미치는 사용자의 이메일 주소입니다(액션을 수행하는 사용자의 이메일 주소가 아님). |
개인 식별 정보 (PII)
이메일 주소나 Projects, Teams, Reports의 이름과 같은 개인 식별 정보(PII)는 API 엔드포인트 옵션을 통해서만 사용할 수 있습니다.- Self-Managed 및 Dedicated Cloud의 경우, 조직 관리자는 감사 로그를 가져올 때 PII를 제외할 수 있습니다.
- Multi-tenant Cloud의 경우, API 엔드포인트는 항상 PII를 포함하여 감사 로그와 관련된 필드를 반환합니다. 이는 구성할 수 없습니다.
시작하기 전 주의사항
-
조직 레벨 관리자가 감사 로그를 가져올 수 있습니다.
403오류가 발생하면 귀하 또는 귀하의 서비스 계정에 적절한 권한이 있는지 확인하세요. -
Multi-tenant Cloud: 여러 Multi-tenant Cloud 조직의 멤버인 경우, 감사 로깅 API 호출이 라우팅되는 위치를 결정하는 Default API organization을 반드시 구성해야 합니다. 그렇지 않으면 다음과 같은 오류가 발생합니다:
기본 API 조직을 지정하려면:
- 프로필 이미지를 클릭한 다음 User Settings를 클릭합니다.
- Default API organization에서 조직을 선택합니다.
감사 로그 가져오기
감사 로그를 가져오려면:- 해당 인스턴스의 올바른 API 엔드포인트를 확인합니다:
-
Self-Managed:
<wandb-platform-url>/admin/audit_logs -
Dedicated Cloud:
<instance-name>.wandb.io/admin/audit_logs -
Multi-tenant Cloud (Enterprise 필요):
https://api.wandb.ai/audit_logs다음 단계에서<API-endpoint>를 귀하의 API 엔드포인트로 바꿉니다.
- (선택 사항) 엔드포인트에 추가할 쿼리 파라미터를 구성합니다. 다음 단계에서
<parameters>를 결과 문자열로 바꿉니다.anonymize: URL에anonymize=true파라미터가 포함되어 있으면 PII를 제거합니다. 그렇지 않으면 PII가 포함됩니다. 감사 로그를 가져올 때 PII 제외를 참조하세요. PII를 포함한 모든 필드가 제공되는 Multi-tenant Cloud에서는 지원되지 않습니다.numdays와startDate를 조합하여 가져올 로그의 날짜 범위를 구성합니다. 각 파라미터는 선택 사항이며 서로 상호 작용합니다.- 두 파라미터가 모두 포함되지 않으면 오늘의 로그만 가져옵니다.
numDays:startDate부터 며칠 전까지의 로그를 가져올지 나타내는 정수입니다. 생략하거나0으로 설정하면startDate당일의 로그만 가져옵니다. Multi-tenant Cloud 조직은 최대 7일간의 감사 로그를 가져올 수 있습니다. 즉,numDays=9로 설정하더라도 유효 파라미터는numDays=7이 됩니다.startDate: 가져올 로그의 가장 최근 날짜를startDate=YYYY-MM-DD형식으로 제어합니다. 생략하거나 오늘 날짜로 명시적으로 설정하면, 오늘부터numDays전까지의 로그를 가져옵니다(Multi-tenant Cloud의 경우 최대7일).
<API-endpoint>?<parameters>형식으로 정규화된 엔드포인트 URL을 구성합니다.- 웹 브라우저나 Postman, HTTPie 또는 cURL과 같은 툴을 사용하여 정규화된 API 엔드포인트에 HTTP
GET요청을 실행합니다.
/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-Managed 및 Dedicated Cloud의 경우, W&B 조직 또는 인스턴스 관리자는 감사 로그를 가져올 때 PII를 제외할 수 있습니다. Multi-tenant Cloud의 경우 API 엔드포인트는 항상 PII를 포함한 관련 필드를 반환하며 이는 구성할 수 없습니다. PII를 제외하려면anonymize=true URL 파라미터를 전달하세요. 예를 들어, W&B 인스턴스 URL이 https://mycompany.wandb.io이고 지난 주 동안의 사용자 활동에 대한 감사 로그를 가져오면서 PII를 제외하려면 다음과 같은 API 엔드포인트를 사용합니다:
액션
이 표는 W&B에 기록될 수 있는 액션을 알파벳 순으로 설명합니다.| 액션 | 정의 |
|---|---|
artifact:create | Artifact가 생성되었습니다. |
artifact:delete | Artifact가 삭제되었습니다. |
artifact:read | Artifact를 읽었습니다. |
project:delete | 프로젝트가 삭제되었습니다. |
project:read | 프로젝트를 읽었습니다. |
report:read | 리포트를 읽었습니다. 1 |
run:delete_many | 여러 Runs가 배치로 삭제되었습니다. |
run:delete | Run이 삭제되었습니다. |
run:stop | Run이 중지되었습니다. |
run:undelete_many | 여러 Runs가 휴지통에서 복구되었습니다. |
run:update_many | 여러 Runs가 배치로 업데이트되었습니다. |
run:update | Run이 업데이트되었습니다. |
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 |
- 공개(Open) 또는 퍼블릭(Public) 프로젝트.
report:read액션.- 특정 조직에 연결되지 않은
User액션.