
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 Native Sidecarに移行しました。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 |
| Control Plane 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秘密鍵ブロック — はそのフォーマットに基づいて秘匿化されるため、有効なキーはその本体が低エントロピーであるか、しきい値が引き上げられている場合でも捕捉されます。 - 形状による電話番号:
+付きの国際番号、北米の(555) 234-5678形式、および電話関連のキー(phone、mobile、wa_id、...)の下の数字は、数字だけではシークレットとしてスコアリングされないにもかかわらず隠されます。 - キーによる身分証明番号: 身分証明書を名付けるキー(
idNumber、national_id、ssn、passport_number、tax_id、...)の下の数字は隠されますが、user_idやorder_idのようなレコードIDは隠されません。 - リグレッション&ファズカバレッジ: バイナリガベージ、JSONネスト、多言語ログを含むストレステストケースに対してテストされています。
- 決定論的ハッシュ: シークレットを一意のハッシュ(例:
[HIDDEN:a1b2c])に置き換え、QAが生データを見ずにエラーを相関させることができます。 - ドロップイン: コード変更は不要です。任意の言語(Node、Python、Java、Go)で動作します。
- ホワイトリストサポート:
PII_SAFE_REGEX_LISTを使用して安全なパターン(例:gitハッシュ、システムID)を明示的に許可し、誤検知を防ぎます。
数十のクラスタにわたってPII-Shieldを管理しますか?
私たちは、集中化されたルール管理、Slackアラート、秘匿化分析を備えたホスト型Control Planeを構築しています。
統合
PII-ShieldのインプロセスWASMビルドは、オープンソースのAIコードガバナンスGitHub ActionであるGuardSpine Code内に同梱されており、同プロジェクトはバイナリをベンダーし、そのNOTICEにクレジットを記載しています。
パフォーマンスに関する考慮事項
PII-Shieldは高度に最適化されていますが、複雑なログの詳細な検査には設定への注意が必要です。
- テキストログ: 非常に高速(>100k行/秒)。
- JSONログ: ゼロアロケーションパース(
encoding/jsonのオーバーヘッドなし)。スキャナーはJSON構造を手動で解析し、メモリスパイクなしで高いスループット(~7MB/s)を確保します。 - 推奨事項: 高スループットでも安全に使用できます。深くネストされたJSONでのスタックオーバーフローを防ぐために再帰セーフガードを使用しています。
インストール
Helm Chart(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.7
# OR from GitHub Container Registry (Enterprise):
docker pull ghcr.io/pii-shield/pii-shield:2.2.7
ソースからのビルド
ソースコードから直接バイナリをビルドできます:
go build -o pii-shield ./cmd/cleaner
Goライブラリ
スキャナーはGoプログラム内で実行できます。例えば、各レコードが書き込まれる前に秘匿化するslog.Handlerなどです。標準ライブラリのみが必要です:
go get github.com/pii-shield/pii-shield/v2/pkg/scanner
import "github.com/pii-shield/pii-shield/v2/pkg/scanner"
clean := scanner.ScanAndRedact(line) // one line
cleanText := scanner.ScanAndRedactText(text) // several lines, line endings kept
このパッケージは、ロード時にCLIと同じPII_*環境変数を読み取ります。v2.2.8より前のリリースは/v2なしのモジュールパスを宣言しているため、go getはそれらを拒否します。
設定
環境変数の完全なリストについては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.7
# 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 ウェイトリストに登録 →