์—…๋ฐ์ดํŠธ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
New releaseSep 10, 2026

pii-shield v2.2.3

์ฝ”๋“œ ์—†๋Š” K8s ์‚ฌ์ด๋“œ์นด๋กœ ๋กœ๊ทธ๋ฅผ ์ •ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์—”ํŠธ๋กœํ”ผ ๋ถ„์„์„ ํ†ตํ•ด ๋น„๋ฐ€์„ ๊ฐ์ง€ํ•˜๊ณ , JSON ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉฐ, PII๋ฅผ ๊ฒฐ์ •๋ก ์ ์œผ๋กœ ๊ฐ€๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ›ก๏ธ

๊ณต์œ 

PII-Shield ๐Ÿ›ก๏ธ

Kubernetes์šฉ ์ œ๋กœ์ฝ”๋“œ ๋กœ๊ทธ ์ •ํ™” ์‚ฌ์ด๋“œ์นด. PII(๊ฐœ์ธ์‹๋ณ„์ •๋ณด)๊ฐ€ ํŒŒ๋“œ(pod)๋ฅผ ๋– ๋‚˜๊ธฐ ์ „์— ๋กœ๊ทธ์—์„œ ์‚ญ์ œํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์œ ์ถœ(GDPR/SOC2)์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

PII-Shield๋Š” ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค โ€” CLI, ์‚ฌ์ด๋“œ์นด ๋˜๋Š” WASM. ํ˜ธ์ŠคํŒ… API๊ฐ€ ์—†์œผ๋ฉฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „์†ก๋˜๋Š” ์„œ๋ฒ„๋„ ์—†์Šต๋‹ˆ๋‹ค.

Release License Docker Pulls Artifact Hub
OpenSSF Best Practices Go Report Card Test Coverage Sponsor

"PII๊ฐ€ AI ๋ชจ๋ธ์„ ์˜ค์—ผ์‹œํ‚ค์ง€ ๋งˆ์„ธ์š”." PII-Shield๋Š” ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹์— ๋„๋‹ฌํ•˜์ง€ ์•Š๋„๋ก ๋ณด์žฅํ•˜์—ฌ GDPR๋กœ ์ธํ•œ ๋ชจ๋ธ ์žฌํ•™์Šต์˜ ๋ถ€๋‹ด์—์„œ ๋ฒ—์–ด๋‚˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

[!WARNING] v2.0.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹œ๋‚˜์š”? ์ตœ์ข… ์‚ฌ์šฉ์ž ๋ฐฐํฌ ๋ฐฉ์‹์„ Helm ๊ธฐ๋ฐ˜ ์„ค์น˜ ๋ฐ Distroless ๋„ค์ดํ‹ฐ๋ธŒ ์‚ฌ์ด๋“œ์นด๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. Kustomize๋Š” ๋” ์ด์ƒ ํ”„๋กœ๋•์…˜ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ณต์‹ ๋ฆด๋ฆฌ์Šค ์„ค์น˜ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ, ์šด์˜์ž ์ €์žฅ์†Œ์—๋Š” ๋กœ์ปฌ ๊ฐœ๋ฐœ ๋ฐ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์ƒ์„ฑ์„ ์œ„ํ•œ Kustomize ์Šค์บํด๋”ฉ์ด ๊ณ„์† ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. PII-Shield ์‚ฌ์ด๋“œ์นด ๋‚ด๋ถ€์˜ /bin/sh ์ ‘๊ทผ์€ ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฝ์–ด๋ณด์„ธ์š”.

๋‘ ๊ฐ€์ง€ ๋ฐฐํฌ ๋ชจ๋ธ

PII-Shield๋Š” ์Šคํƒ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  1. Kubernetes Operator (์ œ๋กœ์ฝ”๋“œ): ์ฃผ๋ ฅ ๋ฐฐํฌ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ํŒŒ๋“œ์— ๊ณ ๋„๋กœ ์•ˆ์ „ํ•œ Distroless ์‚ฌ์ด๋“œ์นด๋ฅผ ์ž๋™์œผ๋กœ ์ฃผ์ž…ํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ€๋กœ์ฑ„๊ณ  ์ •ํ™”ํ•˜๋Š” ์™„์ „ ์ž๋™ํ™”๋œ K8s Operator์ž…๋‹ˆ๋‹ค.
  2. ํ”„๋กœ์„ธ์Šค ๋‚ด WASM (ํ•ต์‹ฌ ํ†ตํ•ฉ์šฉ): ๊ทนํ•œ์˜ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ํ•ต์‹ฌ ์—”์ง„์„ WASM์„ ํ†ตํ•ด ์ง์ ‘ ์ž„๋ฒ ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋„คํŠธ์›Œํฌ ํ™‰ ์—†์ด <1ms ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ƒํƒœ ๋ฐ ๋กœ๋“œ๋งต

PII-Shield๋Š” ํ”„๋กœ๋•์…˜ ๊ฐ•ํ™” ๋‹จ๊ณ„์— ์žˆ๋Š” ํ™œ๋ฐœํžˆ ๊ฐœ๋ฐœ ์ค‘์ธ ์˜คํ”ˆ์†Œ์Šค ๋ณด์•ˆ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. v2.x ๋ฆด๋ฆฌ์Šค ๋ผ์ธ์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ CLI, ์ปจํ…Œ์ด๋„ˆ, Helm/operator ๋ฐ WASM SDK ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์‚ญ์ œ ๊ฒฝ๋กœ๋Š” ํ†ต์ œ๋œ ๋ฐฐํฌ์— ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์ง€๋งŒ, ์ผ๋ถ€ Kubernetes ๋ฐฐํฌ ๋ชจ๋“œ์™€ ๊ณต๊ธ‰๋ง ๋ณด์ฆ์€ ์•„์ง ์•ˆ์ •ํ™” ์ค‘์ž…๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ์ƒํƒœ
ํ•ต์‹ฌ ์Šค์บ๋„ˆ๋ฆด๋ฆฌ์Šค๋จ / ํ†ต์ œ๋œ ๋ฐฐํฌ
CLI ์‚ฌ์ด๋“œ์นด๋ฆด๋ฆฌ์Šค๋จ / ํ†ต์ œ๋œ ๋ฐฐํฌ
Kubernetes operator์•ˆ์ •ํ™” ๋‹จ๊ณ„
WASM SDK๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค๋จ
Proxy-Wasm ๊ฒŒ์ดํŠธ์›จ์ด ํ†ตํ•ฉR&D ๊ณ„ํš๋จ
์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ UIR&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)์„ ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜์—ฌ ์˜คํƒ(false positive)์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์‹ญ ๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ PII-Shield๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”?

์ค‘์•™ ์ง‘์ค‘์‹ ๊ทœ์น™ ๊ด€๋ฆฌ, Slack ์•Œ๋ฆผ ๋ฐ ์‚ญ์ œ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ํ˜ธ์ŠคํŒ… ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์„ ๊ตฌ์ถ• ์ค‘์ž…๋‹ˆ๋‹ค. Join the Waitlist

ํ†ตํ•ฉ

PII-Shield์˜ ํ”„๋กœ์„ธ์Šค ๋‚ด WASM ๋นŒ๋“œ๋Š” ์˜คํ”ˆ์†Œ์Šค AI ์ฝ”๋“œ ๊ฑฐ๋ฒ„๋„Œ์Šค GitHub Action์ธ GuardSpine Code ๋‚ด๋ถ€์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด ์•ก์…˜์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ฒค๋”๋งํ•˜๊ณ  NOTICE์—์„œ ์ด๋ฅผ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ๊ณ ๋ ค ์‚ฌํ•ญ

PII-Shield๋Š” ๊ณ ๋„๋กœ ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€๋งŒ, ๋ณต์žกํ•œ ๋กœ๊ทธ์˜ ์‹ฌ์ธต ๊ฒ€์‚ฌ๋Š” ๊ตฌ์„ฑ์— ์„ธ์‹ฌํ•œ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ํ…์ŠคํŠธ ๋กœ๊ทธ: ๋งค์šฐ ๋น ๋ฆ„(์ดˆ๋‹น 10๋งŒ ์ค„ ์ด์ƒ).
  • JSON ๋กœ๊ทธ: ์ œ๋กœ ํ• ๋‹น ํŒŒ์‹ฑ(encoding/json ์˜ค๋ฒ„ํ—ค๋“œ ์—†์Œ). ์Šค์บ๋„ˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ธ‰์ฆ ์—†์ด ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰(์•ฝ 7MB/s)์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด JSON ๊ตฌ์กฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŒŒ์‹ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ถŒ์žฅ ์‚ฌํ•ญ: ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊นŠ๊ฒŒ ์ค‘์ฒฉ๋œ 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.6CamelCase, ๋ถ€๋ถ„ ํ•ด์‹œProgramCampaignInstanceJob, 8f3a11b2c
3.6 - 4.5๊ฒฝ๋กœ, UUID, ์•ฝํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ/opt/application/runtime, P@ssw0rd2026!
4.5 - 5.0์ค‘๊ฐ„ ํ† ํฐE8s9d_2kL1
5.0+๋†’์€ ์—”ํŠธ๋กœํ”ผ ํ‚ค(SHA-256, API ํ‚ค)

๋น ๋ฅธ ์‹œ์ž‘

  1. ๋กœ์ปฌ ํ…Œ์ŠคํŠธ (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
  1. 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๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์‚ฌ์ด๋“œ์นด ํŒจํ„ด(K8s 1.28+)์„ ์‚ฌ์šฉํ•˜์—ฌ pii-shield-agent๋ฅผ ์ž๋™์œผ๋กœ ์ฃผ์ž…ํ•˜๊ณ  ๋ชจ๋“  ๋กœ๊ทธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋งˆ์Šคํ‚นํ•ฉ๋‹ˆ๋‹ค!


๐Ÿ“‹ ๋ฌด๋ฃŒ: 25๊ฐœ ํ•ญ๋ชฉ Kubernetes ๋กœ๊ทธ PII ๊ฐ์‚ฌ ์ฒดํฌ๋ฆฌ์ŠคํŠธ โ€” ํŒŒ๋“œ์—์„œ PII๊ฐ€ ์œ ์ถœ๋˜๋Š” ์œ„์น˜, ํ•„ํ„ฐ๋ฅผ ์šฐํšŒํ•˜๋Š” ๋กœ๊ทธ ๊ฒฝ๋กœ, ์‚ญ์ œ๊ฐ€ ์‹ค์ œ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•. ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๋ฐ›๊ธฐ โ†’

๐Ÿ“ฆ GDPR ์ปดํ”Œ๋ผ์ด์–ธ์Šค ํŒฉ โ€” ์ง€๊ธˆ ์ด์šฉ ๊ฐ€๋Šฅ(์–ผ๋ฆฌ ์•ก์„ธ์Šค): 40๊ฐœ ์ด์ƒ์˜ ํ…Œ์ŠคํŠธ๋œ ์‚ญ์ œ ๊ทœ์น™, DPO์šฉ ๋ฌธ์„œ, ๊ฐ์‚ฌ ์ถ”์  ํ…œํ”Œ๋ฆฟ. $149 โ†’ ยท HIPAA/PCI ๋Œ€๊ธฐ์ž ๋ช…๋‹จ โ†’

๐Ÿ’ฌ PII-Shield๋ฅผ ์‚ฌ์šฉ ์ค‘์ด์‹ ๊ฐ€์š”? ๋ฐฐํฌ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์„ธ์š” โ†’ โ€” 2๋ถ„์ด๋ฉด ์ถฉ๋ถ„ํ•˜๋ฉฐ, ํ–ฅํ›„ ๊ฐœ๋ฐœ ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๊ฒ€์ฆ

์ด ํ”„๋กœ์ ํŠธ๋Š” ํ”„๋กœ๋•์…˜ ๊ฐ•ํ™” ์ „์— ์‹ ๋ขฐ๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ง€์†์ ์œผ๋กœ ํ™•์žฅ๋˜๋Š” ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋กœ ๊ฒ€์ฆ๋ฉ๋‹ˆ๋‹ค:

  1. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ: ์—ฃ์ง€ ์ผ€์ด์Šค, ๋‹ค๊ตญ์–ด ์ง€์› ๋ฐ JSON ๋ฌด๊ฒฐ์„ฑ์„ 85% ์ด์ƒ์˜ ์ปค๋ฒ„๋ฆฌ์ง€๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
  2. ํผ์ง•: ๋„ค์ดํ‹ฐ๋ธŒ Go ํผ์ง•์œผ๋กœ ์ž˜๋ชป๋œ ์ž…๋ ฅ๊ณผ ๋ฌด์ž‘์œ„ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ž…๋ ฅ์— ๋Œ€ํ•œ ํฌ๋ž˜์‹œ ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  3. ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ: ./scripts/test-smoke.sh๋Š” ํ˜ผํ•ฉ ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํƒ์ง€ ์ •ํ™•๋„๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.
  4. ์—”๋“œํˆฌ์—”๋“œ(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/s๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค:

BASE_REF=origin/main RUNS=9 LINES=500000 ./benchmark/run_benchmarks.sh

์ด ๋ช…๋ น์€ ์ „์ฒด stdin-to-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์— ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ๋œ ์ƒŒ๋“œ๋ฐ•์Šค์—์„œ๋Š” localhost ๋ฐ”์ธ๋”ฉ์„ ํ—ˆ์šฉํ•˜๋Š” ๋กœ์ปฌ ์…ธ, Docker ํ™˜๊ฒฝ ๋˜๋Š” CI ๋Ÿฌ๋„ˆ์—์„œ ์‹คํ–‰ํ•˜์„ธ์š”.

์ง€์›

PII-Shield๋Š” ํ”„๋ผ์ด๋ฒ„์‹œ ๋ณดํ˜ธ ๋กœ๊ทธ๋ฅผ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ์ธํ”„๋ผ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ท€ํ•˜ ๋˜๋Š” ๊ท€ํ•˜์˜ ์กฐ์ง์— ์œ ์šฉํ•˜๋‹ค๋ฉด, GitHub Sponsors๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฆด๋ฆฌ์Šค ๊ฒ€์ฆ

๋ฆด๋ฆฌ์Šค ์ฒดํฌ์„ฌ ๋ฐ ์ด๋ฏธ์ง€ ๋‹ค์ด์ œ์ŠคํŠธ ๊ฒ€์ฆ ์ง€์นจ์€ docs/release-verification.md์— ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ช… ๋ฐ ์ถœ์ฒ˜(provenance) ๊ธฐ๋ฐ˜ ๋ฆด๋ฆฌ์Šค๋Š” ๊ณต๊ธ‰๋ง ๊ฐ•ํ™” ๋กœ๋“œ๋งต์˜ ์ผ๋ถ€๋กœ ์ถ”์ ๋ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

Apache 2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์นดํ…Œ๊ณ ๋ฆฌ