CMEK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๋ฆฌ์†Œ์Šค ์•”ํ˜ธํ™”

๊ธฐ๋ณธ์ ์œผ๋กœ Cloud Workstations๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ ์ค‘์ผ ๋•Œ Google ์†Œ์œ  ๋ฐ Google ๊ด€๋ฆฌ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VM ๋ฐ ์˜๊ตฌ ๋””์Šคํฌ์™€ ๊ฐ™์€ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ํ‚ค์™€ ๊ด€๋ จ๋œ ํŠน์ • ๊ทœ์ • ์ค€์ˆ˜๋‚˜ ๊ทœ์ œ ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด Cloud Key Management Service(Cloud KMS)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค(CMEK)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” ์‹œ๊ธฐ์™€ ์ด์œ ๋ฅผ ํฌํ•จํ•œ ์ผ๋ฐ˜์ ์ธ CMEK์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud KMS ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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

ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ

  1. Google Cloud ์ฝ˜์†”์˜ ํ”„๋กœ์ ํŠธ ์„ ํƒ๊ธฐ ํŽ˜์ด์ง€์—์„œ 2๊ฐœ์˜ Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋งŒ๋“ญ๋‹ˆ๋‹ค.:

    • ํ‚ค ํ”„๋กœ์ ํŠธ์—๋Š” ํ‚ค๋ง๊ณผ ๋Œ€์นญ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ๋น„๋กฏํ•œ Cloud KMS ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    • ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ์—๋Š” CMEK ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ์›Œํฌ์Šคํ…Œ์ด์…˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    ํ‚ค ํ”„๋กœ์ ํŠธ์™€ ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ์— ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—…๋ฌด ๋ถ„์žฅ์„ ์œ„ํ•ด 2๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  2. Cloud ํ”„๋กœ์ ํŠธ์— ๊ฒฐ์ œ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ๊ฒฐ์ œ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

  3. ๊ฐ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  4. gcloud CLI๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. gcloud CLI๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud init
    

ํ•„์š”ํ•œ ์—ญํ• 

Cloud KMS ๊ด€๋ฆฌ์ž ๋ฐ Cloud Workstations ๊ด€๋ฆฌ์ž ์—ญํ• ์„ ๋™์ผํ•œ ์‚ฌ๋žŒ์—๊ฒŒ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ญํ• ์„ ํ• ๋‹นํ•  ๋•Œ๋Š” ์ตœ์†Œ ๊ถŒํ•œ์˜ ์›์น™์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Cloud KMS์—๊ฒŒ Cloud Workstations ๊ด€๋ฆฌ์ž ์—ญํ• ๋„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๋Œ€์‹  ๊ถŒ์žฅ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์—ญํ• ์„ 2๋ช…์˜ ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌํ•˜๊ณ  ์„œ๋กœ ํ˜‘๋ ฅํ•˜๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณด์•ˆ ๊ถŒ์žฅ์‚ฌํ•ญ ๋ฐ ์•ˆ์ „ํ•˜๊ฒŒ IAM ์‚ฌ์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

CMEK๋ฅผ ์„ค์ •ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์–ป์œผ๋ ค๋ฉด ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋‹ค์Œ IAM ์—ญํ• ์„ ๋ถ€์—ฌํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜์„ธ์š”.

  • Cloud KMS ๊ด€๋ฆฌ์ž์ธ ๊ฒฝ์šฐ Cloud KMS ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌ์ž์—๊ฒŒ ํ‚ค ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ Cloud KMS ๊ด€๋ฆฌ์ž(roles/cloudkms.admin) ์—ญํ• ์„ ๋ถ€์—ฌํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜์„ธ์š”.
  • Cloud Workstations ๊ด€๋ฆฌ์ž์ธ ๊ฒฝ์šฐ ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ๋งŒ๋“ค๊ณ  ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌ์ž์—๊ฒŒ ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ Cloud Workstations ๊ด€๋ฆฌ์ž(roles/workstations.admin) ์—ญํ• ์„ ๋ถ€์—ฌํ•ด ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜์„ธ์š”.

์—ญํ•  ๋ถ€์—ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ”„๋กœ์ ํŠธ, ํด๋”, ์กฐ์ง์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ปค์Šคํ…€ ์—ญํ• ์ด๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์ „ ์ •์˜๋œ ์—ญํ• ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์–ป์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‚ค๋ง ๋ฐ ์•”ํ˜ธํ™” ํ‚ค ๋งŒ๋“ค๊ธฐ

ํ‚ค ํ”„๋กœ์ ํŠธ์—์„œ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ณ  ํ‚ค์˜ ๋ฆฌ์†Œ์Šค ID๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  1. ํ‚ค๋ง์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

  2. ๋Œ€์นญ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ๊ฐ™์€ ๋ฆฌ์ „์— CMEK ํ‚ค ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  3. ํ‚ค์˜ ๋ฆฌ์†Œ์Šค ID๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์ดํ›„ ๋‹จ๊ณ„๋ฅผ ์œ„ํ•ด ์ด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ ํ™•์ธ

Google Cloud ์ฝ˜์†”์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์ด ์—†์œผ๋ฉด Cloud Workstations ๊ด€๋ฆฌ์ž์—๊ฒŒ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์„ ๋งŒ๋“ค๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด Cloud Workstations ๊ด€๋ฆฌ์ž IAM ์—ญํ• ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค ์‚ฌ์šฉ

์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์—์„œ CMEK๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด Google Cloud ์ฝ˜์†” ๋˜๋Š” gcloud CLI์—์„œ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

Compute Engine ์„œ๋น„์Šค ๊ณ„์ •๊ณผ Compute Engine ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— Cloud KMS CryptoKey ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ์—ญํ•  ๋ฐ Cloud KMS ๋ทฐ์–ด ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

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

    ํ‚ค ๊ด€๋ฆฌ๋กœ ์ด๋™

  2. ํ‚ค๊ฐ€ ํฌํ•จ๋œ ํ‚ค๋ง์˜ ์ด๋ฆ„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์‚ฌ์šฉํ•  ํ‚ค์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ๊ถŒํ•œ ํƒญ์ด ์ฐฝ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  4. ๊ตฌ์„ฑ์› ์ถ”๊ฐ€ ๋Œ€ํ™”์ƒ์ž์—์„œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  Compute Engine ์„œ๋น„์Šค ๊ณ„์ •๊ณผ Compute Engine ์„œ๋น„์Šค ์—์ด์ „ํŠธ์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  5. ์—ญํ•  ์„ ํƒ ๋“œ๋กญ๋‹ค์šด์—์„œ Cloud KMS CryptoKey ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  6. ๋‹ค๋ฅธ ์—ญํ•  ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  7. ์—ญํ•  ์„ ํƒ ๋“œ๋กญ๋‹ค์šด์—์„œ Cloud KMS ๋ทฐ์–ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Google Cloud ์ฝ˜์†”์—์„œ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. ๋‹จ๊ณ„์— ๋”ฐ๋ผ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋จธ์‹  ๊ตฌ์„ฑ์„ ์ง€์ •ํ•  ๋•Œ ๊ณ ๊ธ‰ ์˜ต์…˜ ์„น์…˜์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

  3. expand_more๋”๋ณด๊ธฐ๋ฅผ ํด๋ฆญํ•˜๊ณ  ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค(CMEK) ์‚ฌ์šฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    1. ๊ณ ๊ฐ ๊ด€๋ฆฌ ํ‚ค ์„ ํƒ ํ•„๋“œ์—์„œ ํ‚ค ํ”„๋กœ์ ํŠธ์— ๋งŒ๋“  ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

      ๋งŒ๋“  ํ‚ค๊ฐ€ ๋ชฉ๋ก์— ์—†์œผ๋ฉด ์ง์ ‘ ํ‚ค ์ž…๋ ฅ์„ ํด๋ฆญํ•ด์„œ ๋ฆฌ์†Œ์Šค ID๋กœ ํ‚ค๋ฅผ ์„ ํƒํ•œ ํ›„ ์ด์ „์— ํ™•์ธํ•œ ๋ฆฌ์†Œ์Šค ID๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    2. ์„œ๋น„์Šค ๊ณ„์ • ํ•„๋“œ์—์„œ ํ‚ค์— ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. ๋‹ค๋ฅธ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ด์„œ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  5. ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์„ ๋งŒ๋“ค๊ณ , ์‹œ์ž‘ ๋ฐ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์—์„œ ์ง€์ •๋œ Cloud KMS ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜๊ตฌ ๋””์Šคํฌ๋ฅผ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.

gcloud

๋‹ค์Œ ์˜ˆ์‹œ๋Š” ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์— ์ด ํ‚ค๋ฅผ ์ง€์ •ํ•ด์„œ Cloud KMS ํ‚ค์— ๋Œ€ํ•ด ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•œ ํ›„ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋Š” IAM ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

  1. ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ์˜ KMS ์„œ๋น„์Šค ๊ณ„์ •๊ณผ Compute Engine ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— CMEK ํ‚ค์— ๋Œ€ํ•œ Cloud KMS CryptoKey ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ์—ญํ• (roles/cloudkms.cryptoKeyEncrypterDecrypter)์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Compute Engine ์„œ๋น„์Šค๊ฐ€ ์ง€์ •๋œ CMEK ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์—์„œ ์•”ํ˜ธํ™”๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    
      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member serviceAccount:service-WORKSTATIONS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --project KMS_PROJECT_ID
    

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

    • KEY_NAME: ํ‚ค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • LOCATION: ํ‚ค๋ง์„ ๋งŒ๋“  ๋ฆฌ์ „ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • KEY_RING: ํ‚ค๋ง์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • WORKSTATIONS_PROJECT_NUMBER: ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ์˜ Compute Engine ๊ธฐ๋ณธ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์œผ๋กœ ํฌํ•จ๋˜์—ˆ๊ณ  ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ๊ณ ์œ ํ•œ ์ˆซ์ž ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค.
    • KMS_PROJECT_ID: Google Cloud์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋กœ๋ถ€ํ„ฐ Cloud KMS ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ณ ์œ ํ•œ ๋ฌธ์ž์—ด์ธ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.

    ๋ชจ๋“  ํ”Œ๋ž˜๊ทธ ๋ฐ ๊ฐ€๋Šฅํ•œ ๊ฐ’์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด --help ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

  2. ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ์˜ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ด€๋ฆฌ ์„œ๋น„์Šค ๊ณ„์ •์„ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    gcloud beta services identity create --service=workstations.googleapis.com \
        --project=WORKSTATIONS_PROJECT_ID
    

    WORKSTATIONS_PROJECT_ID๋ฅผ ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  3. ํ”„๋กœ์ ํŠธ์˜ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ด€๋ฆฌ ์„œ๋น„์Šค ๊ณ„์ •์— CMEK ํ‚ค์— ๋Œ€ํ•œ Cloud KMS ๋ทฐ์–ด ์—ญํ• (roles/cloudkms.viewer)์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์›Œํฌ์Šคํ…Œ์ด์…˜ ์„œ๋น„์Šค์—์„œ ํ‚ค ์ˆœํ™˜์„ ๊ฐ์ง€ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์—์„œ ํ•„์š”ํ•œ ๋งŒํผ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์‹œ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT \
        --role roles/cloudkms.viewer \
        --project KMS_PROJECT_ID
    

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

    • KEY_NAME: ํ‚ค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • LOCATION: ํ‚ค๋ง์„ ๋งŒ๋“  ๋ฆฌ์ „ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • KEY_RING: ํ‚ค๋ง์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: ์œ„ ๋‹จ๊ณ„์—์„œ ๊ฐ€์ ธ์˜จ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ด€๋ฆฌ ์„œ๋น„์Šค ๊ณ„์ •์ž…๋‹ˆ๋‹ค.
    • KMS_PROJECT_ID: Google Cloud์˜ ๋‹ค๋ฅธ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋กœ๋ถ€ํ„ฐ Cloud KMS ํ‚ค ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ณ ์œ ํ•œ ๋ฌธ์ž์—ด์ธ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.

    ๋ชจ๋“  ํ”Œ๋ž˜๊ทธ ๋ฐ ๊ฐ€๋Šฅํ•œ ๊ฐ’์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด --help ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

  4. ์„ ํƒ์‚ฌํ•ญ: ์•„์ง ์›Œํฌ์Šคํ…Œ์ด์…˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•˜์œผ๋ฉด clusters create gcloud CLI ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    gcloud workstations clusters create \
        WORKSTATIONS_CLUSTER_NAME --region=LOCATION \
        --project=WORKSTATIONS_PROJECT_NUMBER
    

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

    • WORKSTATIONS_CLUSTER_NAME: ์›Œํฌ์Šคํ…Œ์ด์…˜ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • LOCATION: ์›Œํฌ์Šคํ…Œ์ด์…˜ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฆฌ์ „ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • WORKSTATIONS_PROJECT_NUMBER: ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ์˜ Compute Engine ๊ธฐ๋ณธ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์œผ๋กœ ํฌํ•จ๋˜์—ˆ๊ณ  ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ๊ณ ์œ ํ•œ ์ˆซ์ž ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค.
  5. ์ด๋ฏธ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  encryption_key ์„ค์ •์„ ์‚ฌ์šฉํ•ด์„œ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ๋จธ์‹  ์œ ํ˜• e2-standard-2, ์œ ํœด ์ƒํƒœ ์ œํ•œ ์‹œ๊ฐ„ 3600s, CMEK ์•”ํ˜ธํ™”๋œ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ gcloud CLI ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud workstations configs create WORKSTATIONS_CONFIG_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --region=LOCATION \
      --machine-type="e2-standard-2" \
      --idle-timeout=3600 \
      --kms-key="projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
      --kms-key-service-account="WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --project=WORKSTATIONS_PROJECT_NUMBER
    

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

    • WORKSTATIONS_CONFIG_NAME: ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • WORKSTATIONS_CLUSTER_NAME: ์›Œํฌ์Šคํ…Œ์ด์…˜ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • LOCATION: ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฆฌ์ „ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • KMS_PROJECT_ID: Google Cloud์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์™€ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ณ ์œ ํ•œ ๋ฌธ์ž์—ด์ธ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.
    • KEY_RING: ํ‚ค๋ง์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • KEY_NAME: ํ‚ค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • WORKSTATIONS_PROJECT_NUMBER: ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ”„๋กœ์ ํŠธ์˜ Compute Engine ๊ธฐ๋ณธ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์œผ๋กœ ํฌํ•จ๋˜์—ˆ๊ณ  ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ๊ณ ์œ ํ•œ ์ˆซ์ž ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค.

    ์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ตฌ์„ฑ์„ ๋งŒ๋“  ํ›„ Cloud KMS๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ ์˜๊ตฌ ๋””์Šคํฌ๋ฅผ ์ง€์ •๋œ Cloud KMS ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค ์ˆœํ™˜

์›Œํฌ์Šคํ…Œ์ด์…˜ ๊ด€๋ฆฌ ์„œ๋น„์Šค ๊ณ„์ •์— CMEK ํ‚ค์— ๋Œ€ํ•œ Cloud KMS ๋ทฐ์–ด ์—ญํ• (roles/cloudkms.viewer)์„ ๋ถ€์—ฌํ•˜๋ฉด ์›Œํฌ์Šคํ…Œ์ด์…˜ ์„œ๋น„์Šค์—์„œ ํ‚ค ์ˆœํ™˜์„ ๊ฐ์ง€ํ•˜๊ณ  ์ƒˆ ๊ธฐ๋ณธ ํ‚ค ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™ˆ ๋””์Šคํฌ๋ฅผ ๋‹ค์‹œ ์•”ํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์ค‘์ง€ํ•˜๋ฉด ๋‹ค์‹œ ์•”ํ˜ธํ™”๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์ค‘์ง€ํ•  ๋•Œ๋งˆ๋‹ค ์›Œํฌ์Šคํ…Œ์ด์…˜ ์„œ๋น„์Šค๋Š” ํ‚ค๊ฐ€ ์ˆœํ™˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ์ˆœํ™˜๋œ ๊ฒฝ์šฐ ์›Œํฌ์Šคํ…Œ์ด์…˜ ์„œ๋น„์Šค๋Š” ์›Œํฌ์Šคํ…Œ์ด์…˜ ํ™ˆ ๋””์Šคํฌ ์Šค๋ƒ…์ƒท์„ ๋งŒ๋“ค๊ณ  ๋””์Šคํฌ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์‹œ์ž‘ํ•˜๋ฉด ์›Œํฌ์Šคํ…Œ์ด์…˜ ์„œ๋น„์Šค๋Š” ์ƒˆ ๊ธฐ๋ณธ ํ‚ค ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ƒ…์ƒท์—์„œ ์ƒˆ ๋””์Šคํฌ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

Cloud KMS ํ• ๋‹น๋Ÿ‰ ๋ฐ Cloud Workstations

Cloud Workstations์—์„œ CMEK๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ”„๋กœ์ ํŠธ๋Š” Cloud KMS ์•”ํ˜ธํ™” ์š”์ฒญ ํ• ๋‹น๋Ÿ‰์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด CMEK๋กœ ์•”ํ˜ธํ™”๋œ ์ €์žฅ์†Œ๋Š” ๊ฐ ์—…๋กœ๋“œ ๋˜๋Š” ๋‹ค์šด๋กœ๋“œ์— ๋Œ€ํ•ด ์ด ํ• ๋‹น๋Ÿ‰์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CMEK ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•”ํ˜ธํ™” ๋ฐ ๋ณตํ˜ธํ™” ์ž‘์—…์€ ํ•˜๋“œ์›จ์–ด(Cloud HSM) ๋˜๋Š” ์™ธ๋ถ€(Cloud EKM) ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ Cloud KMS ํ• ๋‹น๋Ÿ‰์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud KMS ํ• ๋‹น๋Ÿ‰์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์™ธ๋ถ€ ํ‚ค

Cloud ์™ธ๋ถ€ ํ‚ค ๊ด€๋ฆฌ์ž(Cloud EKM)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ์™ธ๋ถ€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Google Cloud ๋‚ด ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud EKM ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Google์€ ์™ธ๋ถ€ ๊ด€๋ฆฌ ํ‚ค์˜ ๊ฐ€์šฉ์„ฑ์„ ์ œ์–ด ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉด ์›Œํฌ์Šคํ…Œ์ด์…˜์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์™ธ๋ถ€ ํ‚ค ์‚ฌ์šฉ ์‹œ ๊ณ ๋ ค์‚ฌํ•ญ์€ Cloud ์™ธ๋ถ€ ํ‚ค ๊ด€๋ฆฌ์ž๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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