> ## 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.

# トレースから PII をマスクする

> トレースから個人を特定できる情報 (PII) を自動的にマスクします

<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 が [トレース](/ja/products/wandb/weave/guides/tracking/tracing) を Weave サーバーに送信する前に、トレースから個人を特定できる情報 (PII) を自動的にマスクできます。この機能は [Microsoft Presidio](https://microsoft.github.io/presidio/) を Weave Python SDK に統合したもので、マスキングの設定を SDK レベルで制御できます。

Sensitive Data Protection 機能により、Python SDK で次の機能が利用できるようになります。

* `redact_pii` 設定: `weave.init()` の呼び出しで有効または無効にでき、有効にすると PII のマスキングが行われます。
* `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>

PII のマスキングに加えて、Weave SDK は `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})

# マスク対象のカスタムキーを追加
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 に依存するため処理時間が長くなります。
