TLS ๊ฒ€์‚ฌ ์‚ฌ์šฉ ์„ค์ •

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ์ธ์Šคํ„ด์Šค์— ์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ(TLS) ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ๋Š” TLS ํŠธ๋ž˜ํ”ฝ์„ ๊ฐ€๋กœ์ฑ„๊ณ , ์•”ํ˜ธํ™”๋œ ์š”์ฒญ์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ, ๋ณด์•ˆ ์ •์ฑ…์„ ์‹œํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” TLS ๊ฒ€์‚ฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. TLS ๊ฒ€์‚ฌ์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ TLS ๊ฒ€์‚ฌ ๊ฐœ์š”๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

TLS ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์„น์…˜์˜ ํƒœ์Šคํฌ๋ฅผ ์™„๋ฃŒํ•˜์„ธ์š”.

Certificate Authority Service ์‚ฌ์šฉ ์„ค์ •

๋ณด์•ˆ ์›น ํ”„๋ก์‹œ๋Š” Certificate Authority Service๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TLS ๊ฒ€์‚ฌ์— ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

CA ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  gcloud services enable privateca.googleapis.com
  

CA ํ’€ ๋งŒ๋“ค๊ธฐ

์ธ์ฆ ๊ธฐ๊ด€ (CA) ํ’€์€ ๊ณตํ†ต ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์ •์ฑ…๊ณผ Identity and Access Management (IAM) ์ •์ฑ…์ด ์ ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ CA์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค. CA ํ’€์€ ํŽ˜์ด๋กœ๋“œ์˜ ์ค‘๋‹จ์ด๋‚˜ ๋‹ค์šดํƒ€์ž„ ์—†์ด ์‹ ๋ขฐ ์ฒด์ธ์„ ์ˆœํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

CA ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CA๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋จผ์ € CA ํ’€์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” ์ด ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์•ˆ๋‚ดํ•œ ํ›„ CA ํ’€์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด TLS ๊ฒ€์‚ฌ๋Š” service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com์ด๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋ณ„๋„์˜ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค ๊ณ„์ •์— CA ํ’€์„ ์‚ฌ์šฉํ•  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์ทจ์†Œ๋˜๋ฉด TLS ๊ฒ€์‚ฌ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

CA ํ’€ ํ”„๋กœ์ ํŠธ์˜ PROJECT_ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PROJECT_NUMBER๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud projects describe <var>PROJECT_ID</var>
    --format="value(projectNumber)"

ํ’€์„ ๋งŒ๋“ค๋ ค๋ฉด gcloud privateca pools create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํ•˜์œ„ ํ’€ ID, ๋“ฑ๊ธ‰, ํ”„๋กœ์ ํŠธ ID, ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

gcloud privateca pools create SUBORDINATE_POOL_ID \
    --tier=TIER \
    --project=PROJECT_ID \
    --location=REGION

๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • SUBORDINATE_POOL_ID: CA ํ’€์˜ ์ด๋ฆ„
  • TIER: CA ๋“ฑ๊ธ‰(devops ๋˜๋Š” enterprise)

    ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ฐœ๊ธ‰๋œ ์ธ์ฆ์„œ๋ฅผ ์ถ”์ ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ devops ๋“ฑ๊ธ‰์—์„œ CA ํ’€์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • PROJECT_ID: CA ํ’€ ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค.

  • REGION: CA ํ’€์˜ ์œ„์น˜

ํ•˜์œ„ CA ํ’€ ๋งŒ๋“ค๊ธฐ

์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ ์‹œ๋‚˜๋ฆฌ์˜ค๋งˆ๋‹ค ํ•˜์œ„ CA๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CA ํ’€์—์„œ ํ•˜์œ„ CA๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฃจํŠธ CA๋Š” ํ•ด๋‹น CA ํ’€์˜ ๋ชจ๋“  CA์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์ฆ์„œ๋Š” TLS ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ์ƒ์„ฑ๋œ ์„œ๋ฒ„ ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์œ„ CA ํ’€์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋ฉ”์„œ๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Certificate Authority Service์— ์ €์žฅ๋œ ๊ธฐ์กด ๋ฃจํŠธ CA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ CA ํ’€ ๋งŒ๋“ค๊ธฐ

ํ•˜์œ„ CA๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. CA ํ’€ ๋งŒ๋“ค๊ธฐ
  2. CA ํ’€ ๋‚ด์— ํ•˜์œ„ CA ๋งŒ๋“ค๊ธฐ

์™ธ๋ถ€์— ์žˆ๋Š” ๊ธฐ์กด ๋ฃจํŠธ CA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ CA ํ’€ ๋งŒ๋“ค๊ธฐ

ํ•˜์œ„ CA๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. CA ํ’€ ๋งŒ๋“ค๊ธฐ
  2. ์™ธ๋ถ€ ๋ฃจํŠธ CA์—์„œ ์„œ๋ช…ํ•œ ํ•˜์œ„ CA ๋งŒ๋“ค๊ธฐ

๋ฃจํŠธ CA ๋งŒ๋“ค๊ธฐ

๋ฃจํŠธ CA๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ CA Service ๋‚ด์—์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฃจํŠธ CA๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ๋ฃจํŠธ CA ๋งŒ๋“ค๊ธฐ
  2. CA ์„œ๋น„์Šค ๋‚ด์— ์ €์žฅ๋œ ๊ธฐ์กด ๋ฃจํŠธ CA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ CA ํ’€ ๋งŒ๋“ค๊ธฐ

์„œ๋น„์Šค ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

์„œ๋น„์Šค ๊ณ„์ •์€ ์‚ฌ์šฉ์ž ๊ณ„์ • ๋˜๋Š” ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ์ธ์Šคํ„ด์Šค ์ž์ฒด์˜ ๋ณด์•ˆ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ TLS ๊ฒ€์‚ฌ์— ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ •์ด ์—†๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“  ๋‹ค์Œ ํ•ด๋‹น ์„œ๋น„์Šค ๊ณ„์ •์— ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud beta services identity create \
        --service=networksecurity.googleapis.com \
        --project=PROJECT_ID
    

    ์ด์— ๋”ฐ๋ผ Google Cloud CLI๋Š” service-[PROJECT_NUMBER]@gcp-sa-networksecurity.iam.gserviceaccount.com์ด๋ผ๋Š” ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    CA ํ’€ ํ”„๋กœ์ ํŠธ์˜ PROJECT_ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PROJECT_NUMBER๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gcloud projects describe PROJECT_ID
        --format="value(projectNumber)"
    
  2. ์ƒ์„ฑํ•œ ์„œ๋น„์Šค ๊ณ„์ •์— CA ํ’€๋กœ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

    gcloud privateca pools add-iam-policy-binding CA_POOL \
        --member='serviceAccount:SERVICE_ACCOUNT' \
        --role='roles/privateca.certificateManager' \
        --location='REGION'
    

TLS ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•œ ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ๊ตฌ์„ฑ

์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์„น์…˜์— ๋‚˜์—ด๋œ ๊ธฐ๋ณธ ์š”๊ฑด ํƒœ์Šคํฌ๋ฅผ ์™„๋ฃŒํ•œ ํ›„์—๋งŒ ์ด ์„น์…˜์˜ ํƒœ์Šคํฌ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TLS ๊ฒ€์‚ฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋‹ค์Œ ์„น์…˜์˜ ํƒœ์Šคํฌ๋ฅผ ์™„๋ฃŒํ•˜์„ธ์š”.

TLS ๊ฒ€์‚ฌ ์ •์ฑ… ๋งŒ๋“ค๊ธฐ

์ฝ˜์†”

  1. Google Cloud ์ฝ˜์†”์—์„œ TLS ๊ฒ€์‚ฌ ์ •์ฑ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    TLS ๊ฒ€์‚ฌ ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ํ”„๋กœ์ ํŠธ ์„ ํƒ๊ธฐ ๋ฉ”๋‰ด์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. TLS ๊ฒ€์‚ฌ ์ •์ฑ… ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ด๋ฆ„์— ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  5. ์„ ํƒ์‚ฌํ•ญ: ์„ค๋ช… ํ•„๋“œ์— ์„ค๋ช…์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  6. ๋ฆฌ์ „ ๋ชฉ๋ก์—์„œ TLS ๊ฒ€์‚ฌ ์ •์ฑ…์„ ๋งŒ๋“ค๋ ค๋Š” ๋ฆฌ์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  7. CA ํ’€ ๋ชฉ๋ก์—์„œ ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๋ ค๋Š” CA ํ’€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    CA ํ’€์„ ๊ตฌ์„ฑํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ƒˆ ํ’€์„ ํด๋ฆญํ•˜๊ณ  CA ํ’€ ๋งŒ๋“ค๊ธฐ์˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

  8. ์„ ํƒ์‚ฌํ•ญ: ์ตœ์†Œ TLS ๋ฒ„์ „ ๋ชฉ๋ก์—์„œ ์ •์ฑ…์œผ๋กœ ์ง€์›๋˜๋Š” ์ตœ์†Œ TLS ๋ฒ„์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  9. ํŠธ๋Ÿฌ์ŠคํŠธ ๊ตฌ์„ฑ์—์„œ ๋‹ค์Œ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    • ๊ณต๊ฐœ CA๋งŒ ์‚ฌ์šฉ: ๊ณต๊ฐœ์ ์œผ๋กœ ์„œ๋ช…๋œ ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ์‹ ๋ขฐํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • ๋น„๊ณต๊ฐœ CA ์ „์šฉ: ๋น„๊ณต๊ฐœ๋กœ ์„œ๋ช…๋œ ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ์‹ ๋ขฐํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      ๋น„๊ณต๊ฐœ ํŠธ๋Ÿฌ์ŠคํŠธ ๊ตฌ์„ฑ ๋ชฉ๋ก์—์„œ ์—…์ŠคํŠธ๋ฆผ ์„œ๋ฒ„ ์ธ์ฆ์„œ๋ฅผ ์‹ ๋ขฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ํŠธ๋Ÿฌ์ŠคํŠธ ์ €์žฅ์†Œ๊ฐ€ ๊ตฌ์„ฑ๋œ ํŠธ๋Ÿฌ์ŠคํŠธ ๊ตฌ์„ฑ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋Ÿฌ์ŠคํŠธ ๊ตฌ์„ฑ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํŠธ๋Ÿฌ์ŠคํŠธ ๊ตฌ์„ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

    • ๊ณต๊ฐœ ๋ฐ ๋น„๊ณต๊ฐœ CA: ๊ณต๊ฐœ ๋ฐ ๋น„๊ณต๊ฐœ CA๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  10. ์„ ํƒ์‚ฌํ•ญ: ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ ํ”„๋กœํ•„ ๋ชฉ๋ก์—์„œ TLS ํ”„๋กœํ•„ ์œ ํ˜•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ํ˜ธํ™˜ ๊ฐ€๋Šฅ: ์˜ค๋ž˜๋œ TLS ๊ธฐ๋Šฅ๋งŒ ์ง€์›ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ๋“ฑ ๊ฐ€์žฅ ํญ๋„“์€ ํด๋ผ์ด์–ธํŠธ ์„ธํŠธ๋ฅผ ์ง€์›ํ•ด TLS ํ˜‘์ƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
    • ์ตœ์‹ : ๋‹ค์–‘ํ•œ TLS ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์ตœ์‹  ํด๋ผ์ด์–ธํŠธ์—์„œ TLS๋ฅผ ํ˜‘์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ œํ•œ๋จ: ๋”์šฑ ์—„๊ฒฉํ•œ ๊ทœ์ • ์ค€์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ถฉ์กฑ๋˜๋„๋ก ์ถ•์†Œ๋œ TLS ๊ธฐ๋Šฅ ์„ธํŠธ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์ปค์Šคํ…€: TLS ๊ธฐ๋Šฅ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ ๋ชฉ๋ก์—์„œ ์ปค์Šคํ…€ ํ”„๋กœํ•„๋กœ ์ง€์›๋˜๋Š” ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  11. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

  1. TLS_INSPECTION_FILE.yaml ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. TLS_INSPECTION_FILE์„ ํ•„์š”ํ•œ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  2. ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ YAML ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•˜์—ฌ ํ•„์š”ํ•œ TlsInspectionPolicy๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    name: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    caPool: projects/PROJECT_ID/locations/REGION/caPools/CA_POOL
    

    ๋‹ค์Œ์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    • PROJECT_ID: ํ”„๋กœ์ ํŠธ์˜ ID
    • REGION: ์ •์ฑ…์„ ๋งŒ๋“ค ๋ฆฌ์ „
    • TLS_INSPECTION_NAME: ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ TLS ๊ฒ€์‚ฌ ์ •์ฑ…์˜ ์ด๋ฆ„
    • CA_POOL: ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค CA ํ’€์˜ ์ด๋ฆ„

    CA ํ’€์€ ๊ฐ™์€ ๋ฆฌ์ „ ๋‚ด์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

TLS ๊ฒ€์‚ฌ ์ •์ฑ… ๊ฐ€์ ธ์˜ค๊ธฐ

์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“  TLS ๊ฒ€์‚ฌ ์ •์ฑ…์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

gcloud network-security tls-inspection-policies import TLS_INSPECTION_NAME \
    --source=TLS_INSPECTION_FILE.yaml \
    --location=REGION

๋ณด์•ˆ ์ •์ฑ…์— TLS ๊ฒ€์‚ฌ ์ •์ฑ… ์ถ”๊ฐ€

์ฝ˜์†”

์›น ํ”„๋ก์‹œ ์ •์ฑ… ๋งŒ๋“ค๊ธฐ

  1. Google Cloud ์ฝ˜์†”์—์„œ SWP ์ •์ฑ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    SWP ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ์ •์ฑ… ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ๋งŒ๋“ค๋ ค๋Š” ์ •์ฑ…์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: myswppolicy).

  4. ์ •์ฑ…์˜ ์„ค๋ช…์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: My new swp policy).

  5. ๋ฆฌ์ „ ๋ชฉ๋ก์—์„œ ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ์ •์ฑ…์„ ๋งŒ๋“ค ๋ฆฌ์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. TLS ๊ฒ€์‚ฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด TLS ๊ฒ€์‚ฌ ๊ตฌ์„ฑ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  7. TLS ๊ฒ€์‚ฌ ์ •์ฑ… ๋ชฉ๋ก์—์„œ ์ƒ์„ฑํ•œ TLS ๊ฒ€์‚ฌ ์ •์ฑ…์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. ์ •์ฑ…์— ๋Œ€ํ•œ ๊ทœ์น™์„ ๋งŒ๋“ค๋ ค๋ฉด ๊ณ„์†์„ ํด๋ฆญํ•œ ๋‹ค์Œ ๊ทœ์น™ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ๊ทœ์น™ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  9. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ๊ทœ์น™ ๋งŒ๋“ค๊ธฐ

  1. Google Cloud ์ฝ˜์†”์—์„œ SWP ์ •์ฑ… ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    SWP ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ํ”„๋กœ์ ํŠธ ์„ ํƒ๊ธฐ ๋ฉ”๋‰ด์—์„œ ์กฐ์ง ID ๋˜๋Š” ์ •์ฑ…์ด ํฌํ•จ๋œ ํด๋”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ์ •์ฑ… ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ๊ทœ์น™ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๊ทœ์น™ ํ•„๋“œ๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค.

    1. ์ด๋ฆ„
    2. ์„ค๋ช…
    3. ์ƒํƒœ
    4. ์šฐ์„ ์ˆœ์œ„: ๊ทœ์น™์˜ ํ‰๊ฐ€ ์ˆœ์„œ(๋ฒˆํ˜ธ์ˆœ)์ž…๋‹ˆ๋‹ค. ๊ทœ์น™์€ ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ํ‰๊ฐ€๋˜๋ฉฐ 0๋Š” ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„์ž…๋‹ˆ๋‹ค.
    5. ์ž‘์—… ์„น์…˜์—์„œ ๊ทœ์น™๊ณผ ์ผ์น˜ํ•˜๋Š” ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉ(ํ—ˆ์šฉ)ํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€(๊ฑฐ๋ถ€)ํ• ์ง€ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    6. ์„ธ์…˜ ์ผ์น˜ ์„น์…˜์—์„œ ์„ธ์…˜์„ ์ผ์น˜์‹œํ‚ค๋Š” ๊ธฐ์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. SessionMatcher์˜ ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ CEL ์ผ์น˜์ž ์–ธ์–ด ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
    7. TLS ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด TLS ๊ฒ€์‚ฌ ์‚ฌ์šฉ ์„ค์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    8. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ผ์น˜ ์„น์…˜์—์„œ ์š”์ฒญ์„ ์ผ์น˜์‹œํ‚ค๋Š” ๊ธฐ์ค€์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. TLS ๊ฒ€์‚ฌ์— ๋Œ€ํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ์š”์ฒญ์€ HTTP ํŠธ๋ž˜ํ”ฝ๋งŒ ์ผ์น˜์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    9. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  6. ๊ทœ์น™ ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋‹ค๋ฅธ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  7. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์›น ํ”„๋ก์‹œ ์„ค์ •

  1. Google Cloud ์ฝ˜์†”์—์„œ ์›น ํ”„๋ก์‹œ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์›น ํ”„๋ก์‹œ๋กœ ์ด๋™

  2. ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ๋งŒ๋“ค๋ ค๋Š” ์›น ํ”„๋ก์‹œ์˜ ์ด๋ฆ„(์˜ˆ: myswp)์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  4. ์›น ํ”„๋ก์‹œ์— ๋Œ€ํ•œ ์„ค๋ช…(์˜ˆ: My new swp)์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  5. ๋ฆฌ์ „ ๋ชฉ๋ก์—์„œ ์›น ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ค ๋ฆฌ์ „์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ๋„คํŠธ์›Œํฌ ๋ชฉ๋ก์—์„œ ์›น ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ค ๋„คํŠธ์›Œํฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  7. ์„œ๋ธŒ๋„คํŠธ์›Œํฌ ๋ชฉ๋ก์—์„œ ์›น ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“ค ์„œ๋ธŒ๋„คํŠธ์›Œํฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. ์„ ํƒ์‚ฌํ•ญ: ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“  ์„œ๋ธŒ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ IP ์ฃผ์†Œ ๋ฒ”์œ„์—์„œ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์„ ํƒํ•œ ์„œ๋ธŒ๋„ท์—์„œ IP ์ฃผ์†Œ๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  9. ์ธ์ฆ์„œ ๋ชฉ๋ก์—์„œ ์›น ํ”„๋ก์‹œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ธ์ฆ์„œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  10. ์ •์ฑ… ๋ชฉ๋ก์—์„œ ์›น ํ”„๋ก์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์ •์ฑ…์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  11. ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Cloud Shell

  1. policy.yaml ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

      description: basic Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
      tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    
  2. ๋ณด์•ˆ ์›น ํ”„๋ก์‹œ ์ •์ฑ…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

      gcloud network-security gateway-security-policies import policy1 \
          --source=policy.yaml --location=REGION
    
  3. rule.yaml ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/allow-example-com
      description: Allow example.com
      enabled: true
      priority: 1
      basicProfile: ALLOW
      sessionMatcher: host() == 'example.com'
      applicationMatcher: request.path.contains('index.html')
      tlsInspectionEnabled: true
    
  4. ๋ณด์•ˆ ์ •์ฑ… ๊ทœ์น™์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

      gcloud network-security gateway-security-policies rules import allow-example-com \
          --source=rule.yaml \
          --location=REGION \
          --gateway-security-policy=policy1
    
  5. TLS ๊ฒ€์‚ฌ ์ •์ฑ…์„ ๊ธฐ์กด ๋ณด์•ˆ ์ •์ฑ…์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด POLICY_FILE.yaml ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. POLICY_FILE์„ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

      description: My Secure Web Proxy policy
      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
      tlsInspectionPolicy: projects/PROJECT_ID/locations/REGION/tlsInspectionPolicies/TLS_INSPECTION_NAME
    

๋‹ค์Œ ๋‹จ๊ณ„