
pii-shield v2.2.0
コード不要のK8sサイドカーでログをサニタイズ。エントロピー分析による機密情報検出、JSONの整合性保持、PIIの決定的なマスキング。🛡️
PII-Shield 🛡️
Kubernetes向けのゼロコード・ログサニタイズサイドカー。 ログがポッドから出る前にPIIを秘匿化することで、データ漏洩(GDPR/SOC2)を防止します。
PII-Shieldはインプロセスで動作します — CLI、サイドカー、またはWASM。ホスト型APIはなく、データが送信されるサーバーもありません。
同じ名前、異なるプロジェクト。 これはMicrosoft開発者コミュニティブログのPII Shieldプライバシープロキシ(2026年5月、vikasgautam18/pii-shield)ではなく、piishield.aiやpiishield.comのプロンプト秘匿化製品でもなく、IntellirimによるPyPIの
pii-shieldパッケージでもありません。私たちのパッケージはPyPIのpii-shield-wasiとnpmの@aragossa/pii-shield-wasiです。文章ではこのプロジェクトをPII-Shieldサイドカーと呼んでいます。
「PIIでAIモデルを汚染させないでください。」PII-Shieldは、機密データがトレーニングデータセットに到達しないことを保証し、GDPRによるモデルの再トレーニングからあなたを守ります。
[!WARNING] v2.0.0へのアップグレードですか? エンドユーザー向けの配布をHelmベースのインストールとDistrolessネイティブサイドカーに移行しました。Kustomizeは本番ユーザー向けのサポートされたリリースインストールパスではなくなりましたが、オペレーターリポジトリにはローカル開発とマニフェスト生成用のKustomizeスキャフォールディングが残っています。PII-Shieldサイドカー内での
/bin/shアクセスはサポートされなくなりました。移行ガイドをお読みください。
2つのデプロイモデル
PII-Shieldは、スタックに統合する2つの異なる方法を提供します:
- Kubernetes Operator(ゼロコード): 私たちのフラッグシップデプロイモデル。高度にセキュアなDistrolessサイドカーをポッドに注入し、ログをオンザフライで傍受・サニタイズする完全自動化されたK8s Operatorです。
- インプロセスWASM(コア統合用): 極限のパフォーマンスのために、コアエンジンをWASM経由で直接埋め込むことができ、ネットワークホップなしで
<1msのレイテンシを提供します。
プロジェクトの状況とロードマップ
PII-Shieldは、本番環境の堅牢化フェーズにある活発に開発中のオープンソースセキュリティツールです。v2.xリリースラインは、使用可能なCLI、コンテナ、Helm/operator、およびWASM SDKアーティファクトを提供します。コアの秘匿化パスは制御されたデプロイに対応していますが、一部のKubernetesデプロイモードとサプライチェーン保証はまだ安定化中です。
| コンポーネント | ステータス |
|---|---|
| コアスキャナー | リリース済み / 制御されたデプロイ |
| CLIサイドカー | リリース済み / 制御されたデプロイ |
| Kubernetes operator | 安定化フェーズ |
| WASM SDK | リリース済みベータ |
| Proxy-Wasmゲートウェイ統合 | 計画中のR&D |
| コントロールプレーンUI | 計画中のR&D |
| eBPF傍受 | 実験的R&D |
現在の本番環境堅牢化の境界については、KNOWN_LIMITATIONS.mdを参照してください。
なぜPII-Shieldなのか?
開発者はしばしば機密データのマスクを忘れます。Fluentd/Logstashの従来の正規表現フィルターは遅く、保守が難しく、ログアグリゲーター上で高コストなCPUを消費します。
PII-Shieldはアプリケーションコンテナのすぐ隣に位置します:
- 本番環境堅牢化コアエンジン: ホットパスでの低メモリ割り当てと決定論的な正規表現マッチングにより、Kubernetesサイドカー向けに最適化されています。
- コンテキスト認識エントロピー分析: コンテキストキーワードを分析することで、キーなしでも高エントロピーのシークレット(例:
Error: ... 44saCk9...)を検出します。 - カスタム正規表現ルール: 既知のパターンに対してエントロピーチェックを上書きする、構造化データ(UUID、ID)の決定論的な秘匿化。
- 組み込みシークレットシグネチャ: 発行者プレフィックス付きの認証情報 — AWSおよびGoogle APIキー、GitHub、Slack、Stripeトークン、JWT、
Bearer認証情報、PEM秘密鍵ブロック — はその形式に基づいて秘匿化されるため、本文が低エントロピーであるか閾値が引き上げられている場合でも、有効なキーが捕捉されます。 - リグレッション&ファズカバレッジ: バイナリガベージ、JSONネスト、多言語ログを含むストレステストケースに対してテスト済み。
- 決定論的ハッシュ: シークレットを一意のハッシュ(例:
[HIDDEN:a1b2c])に置き換え、QAが生データを見ずにエラーを相関させることができます。 - ドロップイン: コード変更は不要。あらゆる言語(Node、Python、Java、Go)で動作します。
- ホワイトリストサポート:
PII_SAFE_REGEX_LISTを使用して安全なパターン(例:gitハッシュ、システムID)を明示的に許可し、誤検知を防ぎます。
数十のクラスタにまたがってPII-Shieldを管理しますか?
私たちは、集中化されたルール管理、Slackアラート、秘匿化分析を備えたホスト型コントロールプレーンを構築しています。
統合
PII-ShieldのインプロセスWASMビルドは、オープンソースのAIコードガバナンスGitHub ActionであるGuardSpine Codeに同梱されており、同プロジェクトはバイナリをベンダー化し、そのNOTICEにクレジットを記載しています。
パフォーマンスに関する考慮事項
PII-Shieldは高度に最適化されていますが、複雑なログの詳細な検査には設定への注意深い配慮が必要です。
- テキストログ: 非常に高速(>100k行/秒)。
- JSONログ: ゼロアロケーション解析(
encoding/jsonのオーバーヘッドなし)。スキャナーはJSON構造を手動で解析し、メモリスパイクなしで高スループット(~7MB/s)を確保します。 - 推奨事項: 高スループットでも安全に使用できます。深くネストされたJSONでのスタックオーバーフローを防ぐために再帰セーフガードを使用しています。
インストール
Helmチャート(Kubernetes Operator)
KubernetesでPII-Shieldをデプロイする公式かつ推奨される方法は、完全自動化されたOperator経由です:
helm repo add pii-shield https://pii-shield.github.io/pii-shield/
helm repo update
helm install pii-shield-operator pii-shield/pii-shield-operator -n operator-system --create-namespace
これによりPII-Shield Operatorがデプロイされ、コードやDockerfileの変更を必要とせずに、高度にセキュアなdistrolessサイドカーをポッドに自動的に注入します。
Docker
Docker HubまたはGHCRから最新の軽量イメージを取得します:
docker pull thelisdeep/pii-shield:2.2.4
# OR from GitHub Container Registry (Enterprise):
docker pull ghcr.io/pii-shield/pii-shield:2.2.4
ソースからのビルド
ソースコードから直接バイナリをビルドできます:
go build -o pii-shield ./cmd/cleaner/main.go
設定
環境変数の完全なリストについてはCONFIGURATION.mdを参照してください。以下を含みます:
PII_SALT: カスタムHMACソルト(本番環境では必須)。PII_ADAPTIVE_THRESHOLD: 動的エントロピーベースラインを有効化。PII_DISABLE_BIGRAM_CHECK: 非英語ログ向けに最適化。PII_CUSTOM_REGEX_LIST: 決定論的な秘匿化のためのカスタム正規表現ルール。PII_SAFE_REGEX_LIST: 無視するホワイトリスト正規表現ルール(マッチはそのまま返されます)。
エントロピー感度テーブル(デフォルト閾値:3.6)
| エントロピー | データ型 | 例 |
|---|---|---|
| 0.0 - 3.0 | 一般的な単語、繰り返し | password、admin、111111 |
| 3.0 - 3.6 | CamelCase、部分ハッシュ | ProgramCampaignInstanceJob、8f3a11b2c |
| 3.6 - 4.5 | パス、UUID、弱いパスワード | /opt/application/runtime、P@ssw0rd2026! |
| 4.5 - 5.0 | 中程度のトークン | E8s9d_2kL1 |
| 5.0+ | 高エントロピーキー | (SHA-256、APIキー) |
クイックスタート
- ローカルでテスト(CLI) 任意のログ出力をPII-Shieldにパイプして、すぐに動作を確認できます:
# Emulate a log with a sensitive password
echo "Error: User password=MySecretPass123! failed login" | docker run -i --rm ghcr.io/pii-shield/pii-shield:2.2.4
# Output: Error: User password=[HIDDEN:8f3a11] failed login
- Kubernetes(自動サイドカー注入)
PII-Shield Operatorをインストールすれば、アプリケーションの保護は
PiiPolicyを作成してポッドにラベルを付けるだけです。
ポリシーを作成:
apiVersion: core.pii-shield.io/v1alpha1
kind: PiiPolicy
metadata:
name: strict-policy
namespace: default
spec:
injectionMode: "file"
Deploymentにラベルを付与:
apiVersion: apps/v1
kind: Deployment
metadata:
name: secure-app
spec:
template:
metadata:
labels:
pii-shield.io/inject: "true"
annotations:
pii-shield.io/policy: "strict-policy"
# ...
OperatorはNative Sidecarパターン(K8s 1.28+)を使用してpii-shield-agentを自動的に注入し、すべてのログを安全にマスクします!
📋 無料:25項目のKubernetesログPII監査チェックリスト — ポッドからPIIが漏れる場所、どのログパスがフィルターを迂回するか、秘匿化が実際に機能するかを検証する方法。チェックリストを入手 →
📦 GDPRコンプライアンスパック — 提供中(アーリーアクセス): 40以上のテスト済み秘匿化ルール、DPO対応ドキュメント、監査証跡テンプレート。$149 → · HIPAA/PCI ウェイトリスト登録 →
💬 PII-Shieldを使用していますか? あなたのデプロイについて教えてください → — 2分で、次に何が作られるかに影響します。
検証
このプロジェクトは、本番環境堅牢化の前に信頼性を高めることを目的とした、成長中のテストスイートで検証されています:
- ユニットテスト: エッジケース、多言語サポート、JSON整合性を85%以上のカバレッジでカバー。
- ファジング: ネイティブGoファジングにより、無効およびランダムなバイナリ入力に対するクラッシュ安全性を確保。
- スモークテスト:
./scripts/test-smoke.shは、凍結された1000行の混合ワークロードコーパスをコンテナを通してエンドツーエンドで実行し、検出精度を報告します。シークレットは、その値が出力に存在せず、代わりに秘匿化マーカーが置かれている場合にのみ捕捉されたと見なされます。安全な行は変更されずに返されなければなりません。誤検知または偽陰性があった場合、またコンテナが非ゼロで終了した場合や、与えられた行数と異なる行数を返した場合にも実行は失敗します。文章中にキーなしで現れるシークレットは既知のギャップとして別途追跡されます。その検出はエントロピーのみに依存するためです。凍結コーパスではゼロを許容し、新たなランダムコーパス(--fuzz)では2つを許容します。 - エンドツーエンド(E2E)テスト:
operator/tests/run_e2e.shスイートは、MinikubeとHelmを使用してフルスタック検証を実行します。ローカルイメージをビルドし、cert-managerなしでOperatorをプロビジョニングし、ターゲットJobをデプロイし、サイドカー出力を傍受して実際のログ秘匿化を検証します。