> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-hivemind-launch.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 감사 로그로 사용자 활동 추적

> 로그 스키마와 추적되는 작업을 포함해, 다양한 배포 유형에서 W&B 감사 로그에 액세스하고 가져오고 분석합니다.

W\&B 감사 로그를 사용하면 조직 내 사용자 활동을 추적하고 엔터프라이즈 거버넌스 요구 사항을 충족할 수 있습니다. 이 페이지는 W\&B 배포 유형 전반에서 감사 로그 데이터에 액세스하고, 가져오고, 분석해야 하는 조직 수준 관리자용입니다. 감사 로그는 JSON 형식으로 사용 가능합니다. [감사 로그 스키마](#audit-log-schema)를 참고하세요.

감사 로그에 액세스하는 방법은 W\&B 플랫폼 배포 유형에 따라 다릅니다.

| W\&B 플랫폼 배포 유형                                                                | 감사 로그 액세스 방식                                                                                                                                                                                                                                              |
| ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Dedicated Cloud](/ko/platform/hosting/hosting-options/dedicated-cloud)       | <ul><li>[인스턴스 수준 BYOB](/ko/platform/hosting/data-security/secure-storage-connector): 10분마다 인스턴스 수준 버킷(BYOB)으로 동기화됩니다. [API](#fetch-audit-logs-using-api)로도 사용할 수 있습니다.</li><li>기본 인스턴스 수준 저장소: [API](#fetch-audit-logs-using-api)로만 사용할 수 있습니다.</li></ul> |
| [Multi-tenant Cloud](/ko/platform/hosting/hosting-options/multi_tenant_cloud) | Enterprise 플랜에서만 사용할 수 있습니다. [API](#fetch-audit-logs-using-api)로만 사용할 수 있습니다.                                                                                                                                                                             |
| [Self-Managed](/ko/platform/hosting/hosting-options/self-managed)             | 10분마다 인스턴스 수준 버킷으로 동기화됩니다. [API](#fetch-audit-logs-using-api)로도 사용할 수 있습니다.                                                                                                                                                                               |

감사 로그를 가져온 후에는 [Pandas](https://pandas.pydata.org/docs/index.html), [Amazon Redshift](https://aws.amazon.com/redshift/), [Google BigQuery](https://cloud.google.com/bigquery), [Microsoft Fabric](https://www.microsoft.com/microsoft-fabric)와 같은 도구를 사용해 분석할 수 있습니다. 일부 감사 로그 분석 도구는 JSON을 지원하지 않습니다. 분석 전에 JSON 형식의 감사 로그를 변환하기 위한 지침과 요구 사항은 사용하는 분석 도구의 문서를 참고하세요.

로그 형식에 대한 자세한 내용은 [감사 로그 스키마](#audit-log-schema) 및 [작업](#actions)을 참고하세요.

<div id="audit-log-retention">
  ## 감사 로그 보존
</div>

다음 권장 사항은 조직의 거버넌스 및 규정 준수 의무를 충족할 수 있도록 감사 로그를 보존하는 데 도움이 됩니다.

* 감사 로그를 특정 기간 동안 보존해야 하는 경우, W\&B는 저장소 버킷 또는 Audit Logging API를 사용해 로그를 장기 저장소로 주기적으로 전송할 것을 권장합니다.
* [Health Insurance Portability and Accountability Act of 1996 (HIPAA)](https://hhs.gov/hipaa/for-professionals/index.html)의 적용을 받는 경우, 감사 로그는 의무 보존 기간이 끝나기 전에 내부 또는 외부의 어떤 주체도 삭제하거나 수정할 수 없는 환경에서 최소 6년 동안 보존되어야 합니다. [BYOB](/ko/platform/hosting/data-security/secure-storage-connector)를 사용하는 HIPAA 준수 [Dedicated Cloud](/ko/platform/hosting/hosting-options/dedicated-cloud) 인스턴스의 경우, 장기 보존 저장소를 포함한 관리형 저장소에 대해 가드레일을 구성해야 합니다.

<div id="audit-log-schema">
  ## 감사 로그 스키마
</div>

각 감사 로그 항목에서 반환되는 필드를 해석하려면 이 스키마를 사용하세요. 다음 표는 감사 로그 항목에 나타날 수 있는 모든 키를 알파벳순으로 보여 줍니다. action 및 상황에 따라 특정 로그 항목에는 가능한 필드 중 일부만 포함될 수 있습니다.

| Key                       | 정의                                                                                                                                      |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `action`                  | 이벤트의 [action](#actions)입니다.                                                                                                             |
| `actor_email`             | 해당하는 경우, action을 시작한 사용자의 이메일 주소입니다.                                                                                                    |
| `actor_ip`                | action을 시작한 사용자의 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 응답 코드입니다.                                                                                                         |
| `timestamp`               | [RFC3339 format](https://www.rfc-editor.org/rfc/rfc3339)의 이벤트 시간입니다. 예를 들어 `2023-01-23T12:34:56Z`는 UTC 기준 2023년 1월 23일 12:34:56을 나타냅니다. |
| `user_asset`              | 해당하는 경우, action을 수행한 사용자가 아니라 action의 영향을 받는 사용자 asset입니다.                                                                              |
| `user_email`              | 해당하는 경우, action을 수행한 사용자의 이메일 주소가 아니라 action의 영향을 받는 사용자의 이메일 주소입니다.                                                                    |

<div id="personally-identifiable-information-pii">
  ### 개인 식별 정보 (PII)
</div>

이메일 주소, Projects, Teams, Reports의 이름과 같은 개인 식별 정보(PII)는 API 엔드포인트 옵션을 통해서만 확인할 수 있습니다:

* [Self-Managed](/ko/platform/hosting/hosting-options/self-managed) 및 [Dedicated Cloud](/ko/platform/hosting/hosting-options/dedicated-cloud)의 경우, 조직 관리자는 감사 로그를 가져올 때 [PII 제외](#exclude-pii)를 설정할 수 있습니다.
* [Multi-tenant Cloud](/ko/platform/hosting/hosting-options/multi_tenant_cloud)의 경우, API 엔드포인트는 PII를 포함한 감사 로그의 관련 필드를 항상 반환합니다. 이는 설정할 수 없습니다.

<div id="before-you-begin">
  ## 시작하기 전에
</div>

감사 로그를 가져오기 전에 배포 유형에 따라 다음 사전 요구 사항을 충족하는지 확인하세요:

* 조직 수준 관리자는 감사 로그를 가져올 수 있습니다. `403` 오류가 발생하면 본인 또는 서비스 계정에 충분한 권한이 있는지 확인하세요.
* **Multi-tenant Cloud**: 여러 Multi-tenant Cloud 조직의 멤버인 경우, 감사 로그 API 호출이 라우팅될 대상을 결정하는 **Default API organization**을 *반드시* 구성해야 합니다. 그렇지 않으면 다음 오류가 발생합니다:

  ```text theme={null}
  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 조직에만 속할 수 있기 때문입니다.

<div id="fetch-audit-logs">
  ## 감사 로그 조회
</div>

W\&B Audit Logging API에서 감사 로그를 조회하려면 다음 단계를 따르세요. 이 절차를 완료하면 선호하는 도구로 분석할 수 있는 줄바꿈으로 구분된 JSON 객체 집합을 얻게 됩니다.

1. 인스턴스에 맞는 올바른 API 엔드포인트를 확인합니다:

   * [Self-Managed](/ko/platform/hosting/hosting-options/self-managed): `[WANDB-PLATFORM-URL]/admin/audit_logs`
   * [Dedicated Cloud](/ko/platform/hosting/hosting-options/dedicated-cloud): `[INSTANCE-NAME].wandb.io/admin/audit_logs`
   * [Multi-tenant Cloud (Enterprise required)](/ko/platform/hosting/hosting-options/multi_tenant_cloud): `https://api.wandb.ai/audit_logs`

   다음 단계에서는 `[API-ENDPOINT]`를 사용 중인 API 엔드포인트로 바꾸세요.
2. 선택: 엔드포인트에 추가할 쿼리 파라미터를 구성합니다. 다음 단계에서는 `[PARAMETERS]`를 결과 문자열로 바꾸세요.
   * `anonymize`: URL에 `anonymize=true` 파라미터가 포함되면 W\&B가 모든 PII를 제거합니다. 그렇지 않으면 PII가 포함됩니다. [감사 로그 조회 시 PII 제외](#exclude-pii-when-fetching-audit-logs)를 참고하세요. 모든 필드(PII 포함)가 포함되므로 Multi-tenant Cloud에서는 지원되지 않습니다.
   * `numDays`와 `startDate`를 조합해 조회할 로그의 날짜 범위를 설정합니다. 각 파라미터는 선택 사항이며 서로 영향을 줍니다.
     * 두 파라미터가 모두 포함되지 않으면 오늘 로그만 조회합니다.
     * `numDays`: `startDate`를 기준으로 과거 며칠치 로그를 조회할지 나타내는 정수입니다. 생략하거나 `0`으로 설정하면 `startDate` 하루치 로그만 조회합니다. **Multi-tenant Cloud**에서는 `numDays`를 더 큰 값으로 설정하더라도 최대 7일치 감사 로그만 조회할 수 있습니다.
     * `startDate`: 선택 사항입니다. `startDate=YYYY-MM-DD`를 사용해 범위에서 가장 최신인 날짜를 설정합니다. 이를 생략하거나 오늘로 설정하면 범위는 오늘에 끝나고 `numDays`는 그 날짜를 기준으로 과거로 계산됩니다.
       * 엔터프라이즈 라이선스가 있는 **Multi-tenant Cloud**에서만 지원됩니다.
       * **Dedicated Cloud** 및 **Self-Managed** v0.80.0 이상에서 지원됩니다.
3. `[API-ENDPOINT]?[PARAMETERS]` 형식으로 정규화된 전체 엔드포인트 URL을 구성합니다.
4. 웹 브라우저 또는 [Postman](https://www.postman.com/downloads/), [HTTPie](https://httpie.io/), cURL 같은 도구를 사용해 정규화된 전체 API 엔드포인트에 HTTP `GET` 요청을 실행합니다.

API 응답에는 줄바꿈으로 구분된 JSON 객체가 포함됩니다. 객체에는 [스키마](#audit-log-schema)에 설명된 필드가 포함되며, 감사 로그가 인스턴스 수준 버킷에 Sync될 때와 동일합니다. 이 경우 감사 로그는 버킷의 `/wandb-audit-logs` 디렉터리에 있습니다.

<div id="use-basic-authentication">
  ### 기본 인증 사용
</div>

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

### 감사 로그를 조회할 때 PII 제외 <a id="exclude-pii" />

[Self-Managed](/ko/platform/hosting/hosting-options/self-managed) 및 [Dedicated Cloud](/ko/platform/hosting/hosting-options/dedicated-cloud)에서는 W\&B 조직 또는 인스턴스 관리자가 감사 로그를 조회할 때 PII를 제외할 수 있습니다. [Multi-tenant Cloud](/ko/platform/hosting/hosting-options/multi_tenant_cloud)에서는 API 엔드포인트가 감사 로그의 관련 필드(PII 포함)를 항상 반환합니다. 이 설정은 변경할 수 없습니다.

PII를 제외하려면 `anonymize=true` URL 파라미터를 전달하세요. 예를 들어 지난 1주일간의 사용자 활동에 대한 감사 로그를 조회하면서 PII를 제외하려는 경우, W\&B 인스턴스 URL이 `https://mycompany.wandb.io`이면 다음과 같은 API 엔드포인트를 사용하세요:

```text theme={null}
https://mycompany.wandb.io/admin/audit_logs?anonymize=true&[ADDITIONAL-PARAMETERS].
```

<div id="actions">
  ## 작업
</div>

각 감사 로그 항목에는 다음 작업 중 하나가 기록됩니다. 이 레퍼런스를 사용하여 로그 항목의 `action` 필드를 해석하세요. 다음 표는 W\&B에서 기록할 수 있는 작업을 알파벳순으로 설명합니다.

| Action                        | Definition                                                 |
| ----------------------------- | ---------------------------------------------------------- |
| `artifact:create`             | Artifact가 생성됩니다.                                           |
| `artifact:delete`             | Artifact가 삭제됩니다.                                           |
| `artifact:read`               | Artifact가 조회됩니다.                                           |
| `project:delete`              | 프로젝트가 삭제됩니다.                                               |
| `project:read`                | 프로젝트가 조회됩니다.                                               |
| `report:read`                 | 리포트가 조회됩니다. <sup><a href="#1">1</a></sup>                  |
| `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 키가 생성됩니다. <sup><a href="#1">1</a></sup> |
| `user:create`                 | 사용자가 생성됩니다. <sup><a href="#1">1</a></sup>                  |
| `user:deactivate`             | 사용자가 비활성화됩니다. <sup><a href="#1">1</a></sup>                |
| `user:delete_api_key`         | 사용자 또는 서비스 계정의 API 키가 삭제됩니다. <sup><a href="#1">1</a></sup> |
| `user:initiate_login`         | 사용자가 로그인을 시작합니다. <sup><a href="#1">1</a></sup>             |
| `user:login`                  | 사용자가 로그인합니다. <sup><a href="#1">1</a></sup>                 |
| `user:logout`                 | 사용자가 로그아웃합니다. <sup><a href="#1">1</a></sup>                |
| `user:permanently_delete`     | 사용자가 영구 삭제됩니다. <sup><a href="#1">1</a></sup>               |
| `user:reactivate`             | 사용자가 다시 활성화됩니다. <sup><a href="#1">1</a></sup>              |
| `user:read`                   | 사용자 프로필이 조회됩니다. <sup><a href="#1">1</a></sup>              |
| `user:update`                 | 사용자가 업데이트됩니다. <sup><a href="#1">1</a></sup>                |

<a id="1">1</a>: [Multi-tenant Cloud](/ko/platform/hosting/hosting-options/multi_tenant_cloud)에서는 다음에 대한 감사 로그가 수집되지 않습니다.

* Open 또는 Public Projects.
* `report:read` 작업.
* 특정 조직에 연결되지 않은 `User` 작업.
