
pii-shield v2.2.3
コード不要のK8sサイドカーでログをサニタイズ。エントロピー分析による機密情報検出、JSONの整合性保持、PIIの決定的なマスキング。🛡️
PII-Shield 🛡️
Kubernetes向けゼロコードログサニタイズサイドカー。 PIIをポッドから外部に出る前にログから編集することで、データ漏洩(GDPR/SOC2)を防ぎます。
PII-Shieldはインプロセスで動作します — CLI、サイドカー、またはWASMとして。ホスト型APIも、データが送信されるサーバーもありません。
「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 |
| コントロールプレーンUI | 計画中のR&D |
| eBPF傍受 | 実験的R&D |
現在の本番強化の境界については、KNOWN_LIMITATIONS.mdを参照してください。
PII-Shieldを選ぶ理由
開発者は機密データのマスキングを忘れがちです。Fluentd/Logstashの従来の正規表現フィルターは遅く、メンテナンスが難しく、ログアグリゲーター上で高価なCPUを消費します。
PII-Shieldはアプリコンテナのすぐ隣に配置されます:
- 本番強化コアエンジン: ホットパス上の低メモリ割り当てと決定的な正規表現マッチングを備えたKubernetesサイドカー向けに最適化。
- コンテキスト認識エントロピー分析: コンテキストキーワードを分析することで、キーなしでも高エントロピーのシークレットを検出(例:
Error: ... 44saCk9...)。 - カスタム正規表現ルール: 既知のパターンのエントロピーチェックを上書きする構造化データ(UUID、ID)の決定的な編集。
- リグレッション&ファズカバレッジ: バイナリガベージ、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は高度に最適化されていますが、複雑なログの深い検査には設定への細心の注意が必要です。
- テキストログ: 非常に高速(>10万行/秒)。
- JSONログ: ゼロ割り当てパース(
encoding/jsonのオーバーヘッドなし)。スキャナーはJSON構造を手動でパースし、メモリスパイクなしで高スループット(約7MB/秒)を保証します。 - 推奨事項: 高スループットでの使用は安全です。深くネストされた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
これにより、コードやDockerfileの変更を必要とせずに、高セキュリティなdistrolessサイドカーをポッドに自動的に注入するPII-Shield Operatorがデプロイされます。
Docker
Docker HubまたはGHCRから最新の軽量イメージを取得します:
docker pull thelisdeep/pii-shield:2.2.3
# またはGitHub Container Registry(エンタープライズ)から:
docker pull ghcr.io/pii-shield/pii-shield:2.2.3
ソースからビルド
ソースコードから直接バイナリをビルドできます:
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 | キャメルケース、部分ハッシュ | 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にパイプして、すぐに動作を確認できます:
# 機密パスワードを含むログをエミュレート
echo "Error: User password=MySecretPass123! failed login" | docker run -i --rm ghcr.io/pii-shield/pii-shield:2.2.3
# 出力: 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"
デプロイメントにラベルを付ける:
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が混合ワークロードを実行し、検出精度を報告します。 - エンドツーエンド(E2E)テスト:
operator/tests/run_e2e.shスイートは、MinikubeとHelmを使用してフルスタック検証を実行します。ローカルイメージをビルドし、cert-managerなしでOperatorをプロビジョニングし、ターゲットJobをデプロイし、サイドカー出力を傍受して実際のログ編集を検証します。
パフォーマンスベンチマーク
現在のブランチとベースラインref間のエンドツーエンドCLIスループットを比較するには:
./benchmark/run_benchmarks.sh
デフォルトでは、ベンチマークはHEADをorigin/mainと比較し、origin/mainを更新し、混合ログコーパスを生成し、新旧の実行順序を交互にし、中央値、p95、最小/最大、およびMiB/秒を報告します:
BASE_REF=origin/main RUNS=9 LINES=500000 ./benchmark/run_benchmarks.sh
これは完全なstdinからstdoutへのCLIパスを測定します。スキャナーのみのマイクロベンチマークには、以下を実行します:
go test -bench=. -benchmem ./pkg/scanner
Operator統合テスト
Operatorは、高速なユニットテストをKubernetes API統合テストから分離しています。通常のOperatorテストはローカルAPIサーバーを起動しません:
cd operator
go test ./...
envtestベースのコントローラー統合スイートを実行するには:
./scripts/test-operator-integration.sh
これらのテストはenvtestを通じてローカルKubernetes APIサーバーとetcdを起動するため、127.0.0.1へのバインド権限が必要です。制限されたサンドボックスでは、ローカルシェル、Docker環境、またはlocalhostバインドを許可するCIランナーで実行してください。
サポート
PII-Shieldは、プライバシー保護ログのためのオープンソースインフラストラクチャです。このプロジェクトがあなたやあなたの組織にとって有用である場合、GitHub Sponsorsを通じて開発を支援できます。
リリース検証
リリースチェックサムとイメージダイジェストの検証ガイダンスはdocs/release-verification.mdに文書化されています。署名および来歴に基づくリリースは、サプライチェーン強化ロードマップの一部として追跡されています。
ライセンス
Apache 2.0ライセンスの下で配布されています。詳細についてはLICENSEを参照してください。