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

# トレース内のPIIをマスクする

> トレースから Personally Identifiable Information（PII）を自動的にマスクします

<Warning>
  この機能は Python SDK からのみ利用できます。
</Warning>

一部の組織では、大規模言語モデル (LLM) のワークフローで、名前、電話番号、メールアドレスなどの Personally Identifiable Information (PII) を処理しています。こうしたデータを Weights & Biases (W\&B) Weave に保存すると、コンプライアンス上およびセキュリティ上のリスクが生じます。このデータがログされる前に除去することで、エージェントを [GDPR](https://gdpr.eu/) や [HIPAA](https://www.hhs.gov/hipaa/index.html) などのポリシーに準拠した状態に保つのに役立ちます。

*Sensitive Data Protection* 機能を使用すると、[トレース](/ja/weave/guides/tracking) が Weave サーバーに送信される前に、そのトレースから Personally Identifiable Information (PII) を自動的にマスクできます。この機能は [Microsoft Presidio](https://microsoft.github.io/presidio/) を Weave Python SDK に統合しており、SDK レベルでマスキング設定を制御できます。

Sensitive Data Protection 機能により、Python SDK で次のことが可能になります。

* `redact_pii` 設定。`weave.init()` call でオンまたはオフに切り替えて、PII のマスキングを有効化できます。
* `redact_pii = True` の場合、[一般的なEntities](#entities-redacted-by-default) を自動的にマスクします。
* 設定可能な `redact_pii_fields` 設定を使用して、マスキングするフィールドをカスタマイズできます。
* `redact_pii_exclude_fields` 設定を使用して、特定のEntitiesをマスキング対象から除外できます。

<div id="enable-pii-redaction">
  ## PII のマスキングを有効にする
</div>

Weave の Sensitive Data Protection 機能を使い始めるには、以下の手順を実行します。

1. 必要な依存関係をインストールします。

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

2. マスキングを有効にするように、`weave.init()` call を変更します。`redact_pii=True` を設定すると、[一般的なEntitiesはデフォルトでマスクされます](#entities-redacted-by-default)。

   ```python lines theme={null}
   import weave

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

3. (任意) `redact_pii_fields` パラメーターを使用して、マスキングするフィールドをカスタマイズします。

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

検出およびマスクできるEntitiesの一覧については、[Presidio でサポートされる PII Entities](https://microsoft.github.io/presidio/supported_entities/)を参照してください。

4. (任意) `redact_pii_exclude_fields` パラメーターを使用して、特定のEntitiesをマスキング対象から除外します。これは、デフォルトのマスキングは維持しつつ、特定のEntitiesタイプは保持したい場合に便利です。次の例は、`EMAIL_ADDRESS` と `PERSON` を除くすべての[デフォルトのEntities](#entities-redacted-by-default)をマスクする方法を示しています。

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

<div id="entities-redacted-by-default">
  ## デフォルトでマスクされるEntities
</div>

PII のマスキング を有効にすると、以下のEntitiesは自動的にマスクされます。

* `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`

<div id="redacting-sensitive-keys-with-redact_keys">
  ## `REDACT_KEYS` を使用した機密キーのマスキング
</div>

PII のマスキングに加えて、Weave SDK は `REDACT_KEYS` を使用したカスタムキーのマスキングにも対応しています。これは、PII のカテゴリには該当しないものの、非公開にしておく必要がある追加の機密データを保護したい場合に便利です。たとえば、次のようなものがあります。

* APIキー
* 認証ヘッダー
* トークン
* 内部ID
* 設定値

<div id="pre-defined-redact_keys">
  ### 事前定義された `REDACT_KEYS`
</div>

Weave はデフォルトで、以下の機密キーを自動的にマスクします。

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

<div id="adding-your-own-keys">
  ### 独自のキーを追加する
</div>

このリストに、トレースからマスクしたい独自のキーを追加できます。

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

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

# マスクするカスタムキーを追加する
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)
```

Weave UI で確認すると、`client_id` と `token` の値は `"REDACTED"` と表示されます。

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

<div id="usage-information">
  ## 利用情報
</div>

* この機能は Python SDK でのみ利用できます。
* マスキングを有効にすると、Presidio への依存により処理時間が長くなります。
