> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Redact PII from traces

> Automatically redact Personally Identifiable Information from traces

<Warning>
  이 기능은 Python SDK를 통해서만 사용할 수 있습니다.
</Warning>

일부 조직은 대규모 언어 모델(LLM) 워크플로에서 이름, 전화번호, 이메일 주소와 같은 개인 식별 정보(PII)를 처리합니다. 이러한 데이터를 W\&B Weave에 저장하면 규정 준수 및 보안상의 위험이 생깁니다. 로깅하기 전에 이러한 데이터를 제거하면 에이전트가 [GDPR](https://gdpr.eu/), [HIPAA](https://www.hhs.gov/hipaa/index.html) 등의 정책을 준수하는 데 도움이 됩니다.

*Sensitive Data Protection* 기능을 사용하면 Weave가 [트레이스](/ko/products/wandb/weave/guides/tracking/tracing)를 Weave 서버로 전송하기 전에 트레이스에서 개인 식별 정보(PII)를 자동으로 마스킹할 수 있습니다. 이 기능은 [Microsoft Presidio](https://microsoft.github.io/presidio/)를 Weave Python SDK에 통합하므로 SDK 수준에서 마스킹 설정을 제어할 수 있습니다.

Sensitive Data Protection 기능은 Python SDK에 다음과 같은 기능을 추가합니다.

* PII 마스킹을 켜는 `redact_pii` 설정. `weave.init()` 호출에서 활성화하거나 비활성화할 수 있습니다.
* `redact_pii = True`일 때 [일반적인 엔티티](#entities-redacted-by-default) 자동 마스킹
* `redact_pii_fields` 설정을 통한 마스킹 필드 맞춤 구성
* `redact_pii_exclude_fields` 설정을 통한 특정 엔티티의 마스킹 제외

<h2 id="enable-pii-redaction">
  PII 마스킹 활성화
</h2>

이 섹션에서는 필요한 의존성을 설치하고, `weave.init()`에서 PII 마스킹을 활성화한 다음, 필요에 따라 Weave가 마스킹할 엔티티를 조정하는 방법을 안내합니다. Weave에서 Sensitive Data Protection 기능을 사용하려면 다음 단계를 완료하세요.

1. 필요한 의존성을 설치합니다.

   ```bash theme={"system"}
   pip install presidio-analyzer presidio-anonymizer
   ```

2. 마스킹이 활성화되도록 `weave.init()` 호출을 수정합니다. `redact_pii=True`로 설정하면 Weave는 [일반적인 엔티티를 기본으로 마스킹합니다](#entities-redacted-by-default).

   ```python lines theme={"system"}
   import weave

   weave.init("my-project", settings={"redact_pii": True})
   ```

3. 선택 사항: `redact_pii_fields` 매개변수로 마스킹 필드를 사용자 지정합니다.

   ```python lines theme={"system"}
   weave.init("my-project", settings={"redact_pii": True, "redact_pii_fields":["CREDIT_CARD", "US_SSN"]})
   ```

   감지 및 마스킹할 수 있는 엔티티의 전체 목록은 [Presidio에서 지원하는 PII 엔티티](https://microsoft.github.io/presidio/supported_entities/)를 참조하세요.

4. 선택 사항: `redact_pii_exclude_fields` 매개변수로 특정 엔티티를 마스킹 대상에서 제외합니다. 기본 마스킹은 유지하되 일부 엔티티 유형은 그대로 두고 싶을 때 유용합니다. 다음 예시는 `EMAIL_ADDRESS`와 `PERSON`을 제외한 모든 [기본 엔티티](#entities-redacted-by-default)를 마스킹하는 방법을 보여줍니다.

   ```python lines theme={"system"}
   weave.init("my-project", settings={"redact_pii": True, "redact_pii_exclude_fields":["EMAIL_ADDRESS", "PERSON"]})
   ```

이 단계를 완료하면 Weave는 트레이스를 Weave 서버로 전송하기 전에 트레이스에서 설정된 PII 엔티티를 마스킹합니다.

<h2 id="entities-redacted-by-default">
  기본적으로 마스킹되는 엔티티
</h2>

이 섹션에서는 `redact_pii_fields`를 지정하지 않고 PII 마스킹을 활성화할 때 Weave가 자동으로 마스킹하는 PII 엔티티 유형을 소개합니다. PII 마스킹을 활성화하면 Weave는 다음 엔티티를 자동으로 마스킹합니다.

* `CREDIT_CARD`
* `CRYPTO`
* `EMAIL_ADDRESS`
* `ES_NIF`
* `FI_PERSONAL_IDENTITY_CODE`
* `IBAN_CODE`
* `IN_AADHAAR`
* `IN_PAN`
* `IP_ADDRESS`
* `LOCATION`
* `PERSON`
* `PHONE_NUMBER`
* `UK_NHS`
* `UK_NINO`
* `US_BANK_NUMBER`
* `US_DRIVER_LICENSE`
* `US_PASSPORT`
* `US_SSN`

<h2 id="redact-sensitive-keys-with-redact_keys">
  `REDACT_KEYS`로 민감한 키 마스킹하기
</h2>

Weave SDK는 PII 마스킹 외에도 `REDACT_KEYS`를 사용한 맞춤형 키 마스킹을 지원합니다. 이 기능은 PII 범주에 속하지는 않지만 비공개로 유지해야 하는 기타 민감한 데이터를 보호하려는 경우에 유용합니다. 예시는 다음과 같습니다.

* API 키
* 인증 헤더
* 토큰
* 내부 ID
* 설정 값

<h3 id="pre-defined-redact_keys">
  사전 정의된 `REDACT_KEYS`
</h3>

Weave는 기본적으로 다음과 같은 민감한 키를 자동으로 마스킹합니다.

```json theme={"system"}
[
  "api_key",
  "auth_headers",
  "authorization"
]
```

<h3 id="add-your-own-keys">
  자체 키 추가
</h3>

애플리케이션에서 민감한 값이 담긴 다른 필드 이름을 사용한다면 기본 `REDACT_KEYS` 목록을 확장할 수 있습니다. 트레이스에서 마스킹하려는 맞춤형 키를 직접 추가하세요.

```python lines theme={"system"}
import weave
from weave.utils import sanitize

client = weave.init("my-project", settings={"redact_pii": True})

# 편집(redact)할 맞춤형 키 추가
sanitize.add_redact_key("client_id")
sanitize.add_redact_key("token")

client_id = "123"
token = "789"

@weave.op
def test(client_id, token):
    return client_id + token

test(client_id, token)
```

Weights & Biases UI에서 보면 `client_id`와 `token`의 값이 `"REDACTED"`로 표시됩니다.

```python lines theme={"system"}
client_id = "REDACTED"
token = "REDACTED"
```

<h2 id="usage-information">
  사용 정보
</h2>

* 이 기능은 Python SDK에서만 사용할 수 있습니다.
* 마스킹을 활성화하면 Presidio 의존성 때문에 처리 시간이 늘어납니다.
