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

๊ธฐ๋ณธ์ ์œผ๋กœ Eventarc๋Š” ์ €์žฅ ์ค‘ ๊ณ ๊ฐ ์ฝ˜ํ…์ธ ๋ฅผ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. Eventarc๋Š” ์‚ฌ์šฉ์ž ์ธก์˜ ์ถ”๊ฐ€ ์ž‘์—… ์—†์ด ์ž๋™์œผ๋กœ ์•”ํ˜ธํ™”๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ Google ๊ธฐ๋ณธ ์•”ํ˜ธํ™”๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์ œ์–ดํ•˜๋ ค๋ฉด Eventarc๋ฅผ ํฌํ•จํ•œ CMEK ํ†ตํ•ฉ ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ Cloud KMS์—์„œ ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค(CMEK)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. Cloud KMS ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณดํ˜ธ ์ˆ˜์ค€, ์œ„์น˜, ์ˆœํ™˜ ์ผ์ •, ์‚ฌ์šฉ ๋ฐ ์•ก์„ธ์Šค ๊ถŒํ•œ, ์•”ํ˜ธํ™” ๊ฒฝ๊ณ„๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud KMS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ๋ณด๊ณ  ํ‚ค ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Google์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋Œ€์นญ ํ‚ค ์•”ํ˜ธํ™” ํ‚ค(KEK)๋ฅผ ์†Œ์œ ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋Œ€์‹  ์‚ฌ์šฉ์ž๊ฐ€ Cloud KMS์—์„œ ์ด๋Ÿฌํ•œ ํ‚ค๋ฅผ ์ œ์–ดํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CMEK๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ์„ค์ •ํ•œ ํ›„ Eventarc ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ํ™˜๊ฒฝ์€ Google ๊ธฐ๋ณธ ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™” ์˜ต์…˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค(CMEK)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค๋Š” Cloud HSM ํด๋Ÿฌ์Šคํ„ฐ์— ๋˜๋Š” ์™ธ๋ถ€์ ์œผ๋กœ Cloud ์™ธ๋ถ€ ํ‚ค ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ํ‚ค๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

Cloud KMS๋Š” ํ‚ค๊ฐ€ ์‚ฌ์šฉ ์„ค์ • ๋˜๋Š” ์‚ฌ์šฉ ์ค‘์ง€๋˜๊ฑฐ๋‚˜ Eventarc Advanced ์ฑ„๋„ ๋ฆฌ์†Œ์Šค์—์„œ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์•”ํ˜ธํ™” ๋ฐ ๋ณตํ˜ธํ™”ํ•  ๋•Œ ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud KMS ๊ฐ์‚ฌ ๋กœ๊น… ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

CMEK๋กœ ๋ณดํ˜ธ๋˜๋Š” ๋Œ€์ƒ

Eventarc Standard์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ฑ„๋„์— CMEK๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์ฑ„๋„์„ ํ†ต๊ณผํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์•”ํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CMEK๋กœ ์ฑ„๋„์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฑ„๋„๊ณผ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ(์˜ˆ: ์ „์†ก ๊ณ„์ธต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Pub/Sub ์ฃผ์ œ)๋ฅผ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Google Cloudํ”„๋กœ์ ํŠธ์˜ Google ์ฑ„๋„์— CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋ฐ ๋ฆฌ์ „์˜ Google ์ด๋ฒคํŠธ ์œ ํ˜•์— ๋Œ€ํ•œ ๋ชจ๋“  Eventarc Standard ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ CMEK ํ‚ค๋กœ ์™„์ „ํžˆ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. CMEK ํ‚ค๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ณ„๋กœ ์ ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

Eventarc์—์„œ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ์š”๊ฑด์„ ์ถฉ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Enable the Cloud KMS and Eventarc APIs.

    Enable the APIs

  2. ํ‚ค๋ง์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  3. ์ง€์ •๋œ ํ‚ค๋ง์˜ ํ‚ค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

gcloud

  1. gcloud ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
    gcloud components update
  2. ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์ €์žฅํ•  ํ”„๋กœ์ ํŠธ์— Cloud KMS ๋ฐ Eventarc API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
  3. ํ‚ค๋ง์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  4. ์ง€์ •๋œ ํ‚ค๋ง์˜ ํ‚ค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

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

Cloud KMS์™€ Eventarc๋Š” ๋ฆฌ์ „ํ™”๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. Cloud KMS ํ‚ค ๋ฐ ๋ณดํ˜ธ๋œ Eventarc ์ฑ„๋„์˜ ๋ฆฌ์ „์€ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Eventarc ์„œ๋น„์Šค ๊ณ„์ •์— ํ‚ค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ถ€์—ฌ

Eventarc ์„œ๋น„์Šค ๊ณ„์ •์— Cloud KMS ํ‚ค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ ค๋ฉด ์„œ๋น„์Šค ๊ณ„์ •์„ ํ‚ค์˜ ์ฃผ ๊ตฌ์„ฑ์›์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ์„œ๋น„์Šค ๊ณ„์ •์— Cloud KMS CryptoKey ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

์ฝ˜์†”์„ ํ†ตํ•ด Google ๋˜๋Š” ์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„์— CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ์„œ๋น„์Šค ๊ณ„์ •์— Cloud KMS CryptoKey ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๋ฌธ์„œ์˜ Google ์ด๋ฒคํŠธ ์œ ํ˜•์— CMEK ์‚ฌ์šฉ ์„ค์ • ๋˜๋Š” ์„œ๋“œ ํŒŒํ‹ฐ ์ด๋ฒคํŠธ ์ฑ„๋„์— CMEK ์‚ฌ์šฉ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

gcloud

 gcloud kms keys add-iam-policy-binding KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --member serviceAccount:SERVICE_AGENT_EMAIL \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter

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

  • KEY_NAME: ํ‚ค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด my-key์ž…๋‹ˆ๋‹ค.
  • KEY_RING: ํ‚ค๋ง์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์˜ˆ: my-keyring
  • LOCATION: ํ‚ค์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค. ์˜ˆ: us-central1
  • SERVICE_AGENT_EMAIL: eventarc.serviceAgent ์—ญํ• ์ด ์žˆ๋Š” ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค๋ฉด service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ์—์ด์ „ํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Google ์ด๋ฒคํŠธ ์œ ํ˜•์— CMEK ์‚ฌ์šฉ ์„ค์ •

Google ์ด๋ฒคํŠธ ์œ ํ˜•์„ ๋ผ์šฐํŒ…ํ•˜๋Š” Eventarc ํŠธ๋ฆฌ๊ฑฐ๋Š” ํ”„๋กœ์ ํŠธ ๋ฐ ๋ฆฌ์ „๋ณ„ Google ์ฑ„๋„์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฐ€์ƒ ์ฑ„๋„์— ์ด๋ฒคํŠธ๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ƒ ์ฑ„๋„์€ ๋ชจ๋“  Eventarc ๋ฆฌ์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Google Cloud ํ”„๋กœ์ ํŠธ์˜ Google ์ฑ„๋„์— CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋ฐ ๋ฆฌ์ „์˜ Google ์ด๋ฒคํŠธ ์œ ํ˜•์— ๋Œ€ํ•œ ๋ชจ๋“  Eventarc ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ CMEK ํ‚ค๋กœ ์™„์ „ํžˆ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ CMEK ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  Google ์ฑ„๋„์˜ ํŠน์ • ๋ฆฌ์ „๊ณผ ๊ฐ๊ฐ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CMEK ํ‚ค๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ณ„๋กœ ์ ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

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

    ์ฑ„๋„๋กœ ์ด๋™

  2. Google ์ œ๊ณต์—…์ฒด ์ฑ„๋„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ฑ„๋„ ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค(CMEK) ์‚ฌ์šฉ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. ์•”ํ˜ธํ™” ํ‚ค ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ๋ฆฌ์ „์„ ์„ ํƒํ•˜๊ณ  CMEK ์•”ํ˜ธํ™” ํ‚ค ๋ชฉ๋ก์—์„œ ๋ฆฌ์ „์— ๋งŒ๋“  ํ‚ค๋ง์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ฑ„๋„๋‹น ๋ฆฌ์ „๋ณ„๋กœ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ํ•˜๋‚˜๋งŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  6. ์„ ํƒ์‚ฌํ•ญ: ํ‚ค์˜ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์„ ์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅํ•˜๋ ค๋ฉด CMEK ์•”ํ˜ธํ™” ํ‚ค ๋ชฉ๋ก์—์„œ ํ‚ค๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๋‚˜์š”? ํ‚ค ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”๋ฅผ ํด๋ฆญํ•˜๊ณ  ์ง€์ •๋œ ํ˜•์‹์œผ๋กœ ํ‚ค ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  7. ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด eventarc.serviceAgent ์—ญํ• ์„ ๊ฐ€์ง„ Eventarc ์„œ๋น„์Šค ๊ณ„์ •์— cloudkms.cryptoKeyEncrypterDecrypter ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

  8. ์„ ํƒ์‚ฌํ•ญ: ์•”ํ˜ธํ™” ํ‚ค ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฆฌ์ „์— ๋งŒ๋“  ๋‹ค๋ฅธ ํ‚ค๋ง์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

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

gcloud

 gcloud eventarc google-channels update \
    --location=LOCATION \
    --crypto-key=KEY

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

  • LOCATION: ๋ณดํ˜ธํ•  Google ์ฑ„๋„์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋œ ํ‚ค์˜ ์œ„์น˜์™€ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • KEY: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME ํ˜•์‹์˜ ์ •๊ทœํ™”๋œ Cloud KMS ํ‚ค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ž์ฒด ๊ธฐ์กด ์ฃผ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Pub/Sub ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ ํฌ๊ด„์ ์ธ CMEK ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์ฃผ์ œ์— KMS ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Pub/Sub ์ฃผ์ œ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Cloud KMS ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ

์ฑ„๋„์ด ํ˜„์žฌ CMEK๋ฅผ ์ค€์ˆ˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

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

    ํŠธ๋ฆฌ๊ฑฐ๋กœ ์ด๋™

  2. Google Cloud ์†Œ์Šค๋ฅผ ์ด๋ฒคํŠธ ์ œ๊ณต์ž ๋ฐ CMEK๋ฅผ ์‚ฌ์šฉํ•ด ๋ณดํ˜ธํ•œ ๋ฆฌ์ „์œผ๋กœ ๋‚˜์—ดํ•˜๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ํŠธ๋ฆฌ๊ฑฐ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์•”ํ˜ธํ™” ์ƒํƒœ์— Events encrypted using Customer-managed encryption keys ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

gcloud

 gcloud eventarc google-channels describe \
     --location=LOCATION

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

 cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
 updateTime: '2022-06-28T17:24:56.365866104Z'

cryptokeyName ๊ฐ’์€ Google ์ฑ„๋„์— ์‚ฌ์šฉ๋œ Cloud KMS ํ‚ค๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„์— CMEK ์‚ฌ์šฉ ์„ค์ •

์„œ๋“œ ํŒŒํ‹ฐ์šฉ Eventarc ์ฑ„๋„์€ Eventarc ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š”Google Cloud ์™ธ๋ถ€ ํ•ญ๋ชฉ์ด ๋Œ€์ƒ๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค. ์ด ์ฑ„๋„์€ ๋ฆฌ์ „๋ณ„๋กœ ์ ์šฉ๋˜๋ฉฐ ์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„๋‹น ํ•˜๋‚˜์˜ ํ‚ค๋งŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ฝ˜์†”

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

    ์ฑ„๋„๋กœ ์ด๋™

  2. ์„œ๋“œ ํŒŒํ‹ฐ ์ œ๊ณต์—…์ฒด ์ฑ„๋„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ์ฑ„๋„ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ฑ„๋„ ์ˆ˜์ • ํŽ˜์ด์ง€์˜ ์•”ํ˜ธํ™”์—์„œ Cloud KMS ํ‚ค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. ํ‚ค ์œ ํ˜• ๋ชฉ๋ก์—์„œ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•  ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

    ํ‚ค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ํ‚ค๋ง๊ณผ ํ‚ค๋ฅผ ์ฃผ๋ฌธํ˜•์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” Autokey๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Autokey ์˜ต์…˜์ด ์‚ฌ์šฉ ์ค‘์ง€๋œ ๊ฒฝ์šฐ ์•„์ง ํ˜„์žฌ ๋ฆฌ์†Œ์Šค ์œ ํ˜•๊ณผ ํ†ตํ•ฉ๋˜์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  6. Cloud KMS ํ‚ค ์„ ํƒ ๋ชฉ๋ก์—์„œ ํ‚ค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ฑ„๋„๋‹น ๋ฆฌ์ „๋ณ„๋กœ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ํ•˜๋‚˜๋งŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  7. (์„ ํƒ์‚ฌํ•ญ) ํ‚ค์˜ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์„ ์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅํ•˜๋ ค๋ฉด Cloud KMS ํ‚ค ์„ ํƒ ๋ชฉ๋ก์—์„œ ์ˆ˜๋™์œผ๋กœ ํ‚ค ์ž…๋ ฅ์„ ํด๋ฆญํ•˜๊ณ  ์ง€์ •๋œ ํ˜•์‹์˜ ํ‚ค ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  8. ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด Eventarc ์„œ๋น„์Šค ์—์ด์ „ํŠธ์—๊ฒŒ cloudkms.cryptoKeyEncrypterDecrypter ์—ญํ• ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

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

gcloud

 gcloud eventarc channels update CHANNEL_NAME \
    --location=LOCATION \
    --crypto-key=KEY

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

  • CHANNEL_NAME: ์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ƒˆ ์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„์„ ๋งŒ๋“ค๋ ค๋ฉด ์ฑ„๋„ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • LOCATION: ๋ณดํ˜ธํ•  ์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค. ํ‚ค์˜ ์œ„์น˜์™€ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • KEY: projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME ํ˜•์‹์˜ ์ •๊ทœํ™”๋œ Cloud KMS ํ‚ค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

Cloud KMS ์‚ฌ์šฉ๋Ÿ‰ ํ™•์ธ

์ฑ„๋„์ด ํ˜„์žฌ CMEK๋ฅผ ์ค€์ˆ˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

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

    ํŠธ๋ฆฌ๊ฑฐ๋กœ ์ด๋™

  2. ์„œ๋“œ ํŒŒํ‹ฐ ์†Œ์Šค๊ฐ€ ์ด๋ฒคํŠธ ์ œ๊ณต์ž ๋ฐ CMEK๋ฅผ ์‚ฌ์šฉํ•ด ๋ณดํ˜ธํ•œ ๋ฆฌ์ „์ธ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ํŠธ๋ฆฌ๊ฑฐ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์•”ํ˜ธํ™” ์ƒํƒœ์— Events encrypted using Customer-managed encryption keys ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

gcloud

 gcloud eventarc channels describe CHANNEL_NAME \
    --location=LOCATION

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

 createTime: '2022-06-28T18:05:52.403999904Z'
 cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
 name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig
 pubsubTopic: projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID
 state: ACTIVE
 uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3
 updateTime: '2022-06-28T18:09:18.650727516Z'

cryptokeyName ๊ฐ’์€ ์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„์— ์‚ฌ์šฉ๋˜๋Š” Cloud KMS ํ‚ค๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ฑ„๋„์— ์‚ฌ์šฉ๋œ ํ‚ค ํ‘œ์‹œ

Eventarc ์ฑ„๋„์„ ์„ค๋ช…ํ•˜๊ณ  ์ฑ„๋„์— ์‚ฌ์šฉ ์ค‘์ธ Cloud KMS ํ‚ค๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

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

    ์ฑ„๋„๋กœ ์ด๋™

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

  3. ์ฑ„๋„์— ์‚ฌ์šฉ ์ค‘์ธ CMEK ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

gcloud

์ฑ„๋„ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Google ์ฑ„๋„

gcloud eventarc google-channels describe \
    --location=LOCATION

์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„

gcloud eventarc channels describe CHANNEL_NAME \
    --location=LOCATION

์ถœ๋ ฅ์—๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ๋ผ์ธ์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME

cryptoKeyName ๊ฐ’์€ ์ฑ„๋„์— ์‚ฌ์šฉ๋˜๋Š” Cloud KMS ํ‚ค๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

CMEK ์‚ฌ์šฉ ์ค‘์ง€

์ฑ„๋„๊ณผ ์—ฐ๊ฒฐ๋œ CMEK ๋ณดํ˜ธ๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ฑ„๋„์„ ํ†ตํ•ด ์ „์†ก๋˜๋Š” ์ด๋ฒคํŠธ๋Š” ์—ฌ์ „ํžˆ Google-owned and Google-managed encryption keys๋กœ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค. ์ฑ„๋„๊ณผ ์—ฐ๊ฒฐ๋œ CMEK ๋ณดํ˜ธ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

์ฝ˜์†”

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

    ์ฑ„๋„๋กœ ์ด๋™

  2. ์ฑ„๋„ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

    Google ์ฑ„๋„

    1. Google ์ œ๊ณต์—…์ฒด ์ฑ„๋„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    2. ์ฑ„๋„ ์ˆ˜์ • ํŽ˜์ด์ง€์—์„œ CMEK ์•”ํ˜ธํ™” ํ‚ค ๋ชฉ๋ก ์œ„์— ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ ธ๊ฐ€ ํ•ญ๋ชฉ ์‚ญ์ œ ๋ฒ„ํŠผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
    3. ํ•ญ๋ชฉ ์‚ญ์ œ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    4. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

      ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค(CMEK) ์‚ฌ์šฉ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„

    1. ์„œ๋“œ ํŒŒํ‹ฐ ์ œ๊ณต์—…์ฒด ์ฑ„๋„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    2. ์ฑ„๋„ ์„ธ๋ถ€์ •๋ณด ํŽ˜์ด์ง€์—์„œ ์ˆ˜์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
    3. ์ฑ„๋„ ์ˆ˜์ • ํŽ˜์ด์ง€์˜ ์•”ํ˜ธํ™”์—์„œ Google ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    4. ์ €์žฅ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

์ฑ„๋„ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Google ์ฑ„๋„

gcloud eventarc google-channels \
    update --clear-crypto-key

์„œ๋“œ ํŒŒํ‹ฐ ์ฑ„๋„

gcloud eventarc channels CHANNEL_NAME \
    update --clear-crypto-key

CMEK ์กฐ์ง ์ •์ฑ… ์ ์šฉ

Eventarc๋Š” ์กฐ์ง ์ „๋ฐ˜์˜ CMEK ์‚ฌ์šฉ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ์กฐ์ง ์ •์ฑ… ์ œ์•ฝ ์กฐ๊ฑด๊ณผ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

  • constraints/gcp.restrictNonCmekServices๋Š” CMEK ๋ณดํ˜ธ๋ฅผ ์š”๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • constraints/gcp.restrictCmekCryptoKeyProjects๋Š” CMEK ๋ณดํ˜ธ์— ์‚ฌ์šฉ๋˜๋Š” Cloud KMS ํ‚ค๋ฅผ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ํ†ตํ•ฉ์„ ํ†ตํ•ด ์กฐ์ง์˜ Eventarc ๋ฆฌ์†Œ์Šค์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•”ํ˜ธํ™” ๊ทœ์ • ์ค€์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์ง ์ •์ฑ… ์ ์šฉ ์‹œ ๊ณ ๋ ค์‚ฌํ•ญ

CMEK ์กฐ์ง ์ •์ฑ…์„ ์ ์šฉํ•˜๊ธฐ ์ „์— ์•Œ์•„๋‘์–ด์•ผ ํ•  ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ „ํŒŒ ์ง€์—ฐ ๋Œ€๋น„

    ์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ์ƒˆ ์ •์ฑ…์ด ์ ์šฉ๋˜๋Š” ๋ฐ ์ตœ๋Œ€ 15๋ถ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ์กด ๋ฆฌ์†Œ์Šค ๊ณ ๋ ค

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

  • ์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ ํ™•์ธ

    ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ๋Š” ์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ํš๋“ํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์กฐ์ง ์ •์ฑ… ๊ด€๋ฆฌ์ž ์—ญํ• ์„ ๋ถ€์—ฌ๋ฐ›์•„์•ผ ํ•˜๋ฉฐ, ์ด ์—ญํ• ์€ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ํด๋” ์ˆ˜์ค€์ด ์•„๋‹Œ ์กฐ์ง ์ˆ˜์ค€์—์„œ๋งŒ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ƒˆ Eventarc ๋ฆฌ์†Œ์Šค์˜ CMEK ์š”๊ตฌ

constraints/gcp.restrictNonCmekServices ์ œ์•ฝ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ง์˜ ์ƒˆ Eventarc ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ CMEK๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์กฐ์ง ์ •์ฑ…์„ ์„ค์ •ํ•˜๋ฉด ์ง€์ •๋œ Cloud KMS ํ‚ค๊ฐ€ ์—†๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ๋งŒ๋“ค๊ธฐ ์š”์ฒญ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์ด ์ •์ฑ…์„ ์„ค์ •ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ์˜ ์ƒˆ ๋ฆฌ์†Œ์Šค์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. Cloud KMS ํ‚ค๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ๊ธฐ์กด ๋ฆฌ์†Œ์Šค๋„ ๊ณ„์† ์กด์žฌํ•˜๋ฉฐ ๋ฌธ์ œ ์—†์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

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

    ์กฐ์ง ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์ œ์•ฝ์กฐ๊ฑด์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

    constraints/gcp.restrictNonCmekServices
    
  3. ์ด๋ฆ„ ์—ด์—์„œ CMEK ์—†์ด ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค ์ œํ•œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ •์ฑ… ๊ด€๋ฆฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ์ •์ฑ… ์ˆ˜์ • ํŽ˜์ด์ง€์˜ ์ •์ฑ… ์†Œ์Šค์—์„œ ์ƒ์œ„ ์ •์ฑ… ์žฌ์ •์˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

  7. ์ •์ฑ… ๊ฐ’ ๋ชฉ๋ก์—์„œ ์ปค์Šคํ…€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. ์ •์ฑ… ์œ ํ˜• ๋ชฉ๋ก์—์„œ ๊ฑฐ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  9. ์ปค์Šคํ…€ ๊ฐ’ ํ•„๋“œ์— ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    is:eventarc.googleapis.com
    
  10. ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ ์ •์ฑ… ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

  1. ์ •์ฑ…์„ ์ €์žฅํ•  /tmp/policy.yaml ์ž„์‹œ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

      name: projects/PROJECT_ID/policies/gcp.restrictNonCmekServices
      spec:
        rules:
        - values:
            deniedValues:
            - is:eventarc.googleapis.com

    PROJECT_ID๋ฅผ ์ด ์ œ์•ฝ์กฐ๊ฑด์„ ์ ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  2. org-policies set-policy ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud org-policies set-policy /tmp/policy.yaml

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

Eventarc ํ”„๋กœ์ ํŠธ์˜ Cloud KMS ํ‚ค ์ œํ•œ

constraints/gcp.restrictCmekCryptoKeyProjects ์ œ์•ฝ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ Eventarc ํ”„๋กœ์ ํŠธ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Cloud KMS ํ‚ค๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 'projects/my-company-data-project์˜ ๊ด€๋ จ Eventarc ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์ด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” Cloud KMS ํ‚ค๋Š” projects/my-company-central-keys ๋˜๋Š” projects/team-specific-keys์—์„œ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค'์™€ ๊ฐ™์€ ๊ทœ์น™์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ˜์†”

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

    ์กฐ์ง ์ •์ฑ…์œผ๋กœ ์ด๋™

  2. ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์ œ์•ฝ์กฐ๊ฑด์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

    constraints/gcp.restrictCmekCryptoKeyProjects
    
  3. ์ด๋ฆ„ ์—ด์—์„œ CMEK์šฉ KMS CryptoKey๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ์ œํ•œ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. ์ •์ฑ… ๊ด€๋ฆฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ์ •์ฑ… ์ˆ˜์ • ํŽ˜์ด์ง€์˜ ์ •์ฑ… ์†Œ์Šค์—์„œ ์ƒ์œ„ ์ •์ฑ… ์žฌ์ •์˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

  7. ์ •์ฑ… ๊ฐ’ ๋ชฉ๋ก์—์„œ ์ปค์Šคํ…€์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  8. ์ •์ฑ… ์œ ํ˜• ๋ชฉ๋ก์—์„œ ํ—ˆ์šฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  9. ์ปค์Šคํ…€ ๊ฐ’ ํ•„๋“œ์— ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    under:projects/KMS_PROJECT_ID
    

    KMS_PROJECT_ID๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” Cloud KMS ํ‚ค๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค๋ฉด under:projects/my-kms-project์ž…๋‹ˆ๋‹ค.

  10. ์™„๋ฃŒ๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ ์ •์ฑ… ์„ค์ •์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

gcloud

  1. ์ •์ฑ…์„ ์ €์žฅํ•  /tmp/policy.yaml ์ž„์‹œ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

      name: projects/PROJECT_ID/policies/gcp.restrictCmekCryptoKeyProjects
      spec:
        rules:
        - values:
            allowedValues:
            - under:projects/KMS_PROJECT_ID

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

    • PROJECT_ID: ์ด ์ œ์•ฝ์กฐ๊ฑด์„ ์ ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ID
    • KMS_PROJECT_ID: ์‚ฌ์šฉํ•˜๋ ค๋Š” Cloud KMS ํ‚ค๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜ ID
  2. org-policies set-policy ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud org-policies set-policy /tmp/policy.yaml

์ •์ฑ…์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์˜ Cloud KMS ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Eventarc Standard ์ฑ„๋„์„ ๋งŒ๋“ค์–ด ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํŒจํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Cloud KMS ํ‚ค ์‚ฌ์šฉ ์ค‘์ง€ ๋ฐ ์‚ฌ์šฉ ์„ค์ •

ํ‚ค ๋ฒ„์ „์€ ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”, ์„œ๋ช…, ํ™•์ธ์— ์‚ฌ์šฉํ•˜๋Š” ์•”ํ˜ธํ™” ํ‚ค ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๋กœ ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋„๋ก ์ด ํ‚ค ๋ฒ„์ „์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Eventarc๊ฐ€ Cloud KMS ํ‚ค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ FAILED_PRECONDITION ์˜ค๋ฅ˜ ๋ฐ ์ฑ„๋„ ์ „์†ก์ด ์ค‘์ง€๋˜๊ณ  ์ฑ„๋„์„ ์‚ฌ์šฉํ•œ ์ด๋ฒคํŠธ ๊ฒŒ์‹œ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ์— ๋‹ค์‹œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์šฉ ์ค‘์ง€๋จ ์ƒํƒœ์˜ ํ‚ค๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud KMS ํ‚ค ์‚ฌ์šฉ ์ค‘์ง€

Eventarc์—์„œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ฑฐ๋‚˜ ๋ณตํ˜ธํ™”ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฑ„๋„์— ๊ตฌ์„ฑํ•œ ํ‚ค ๋ฒ„์ „์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํŠน์ • ํ‚ค์™€ ๊ด€๋ จ๋œ Eventarc ์ฑ„๋„ ๋ฐ ํŠธ๋ฆฌ๊ฑฐ์—๋งŒ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.
  • ์„ ํƒ์‚ฌํ•ญ: Eventarc ์„œ๋น„์Šค ๊ณ„์ •์—์„œ cloudkms.cryptoKeyEncrypterDecrypter ์—ญํ• ์„ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CMEK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธํ™”๋œ ์ด๋ฒคํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์˜ Eventarc ์ฑ„๋„ ๋ฐ ํŠธ๋ฆฌ๊ฑฐ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

์–ด๋А ์ž‘์—…๋„ ์ฆ‰์‹œ ์•ก์„ธ์Šค ์ทจ์†Œ๋ฅผ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ID ๋ฐ ์•ก์„ธ์Šค ๊ด€๋ฆฌ(IAM) ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋” ๋น ๋ฅด๊ฒŒ ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud KMS ๋ฆฌ์†Œ์Šค ์ผ๊ด€์„ฑ ๋ฐ ์•ก์„ธ์Šค ๋ณ€๊ฒฝ ์ „ํŒŒ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Cloud KMS ํ‚ค ๋‹ค์‹œ ์‚ฌ์šฉ ์„ค์ •

์ด๋ฒคํŠธ ์ „์†ก ๋ฐ ๊ฒŒ์‹œ๋ฅผ ์žฌ๊ฐœํ•˜๋ ค๋ฉด Cloud KMS์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๊ฒฉ ์ฑ…์ •

์ด ํ†ตํ•ฉ์€ Google Cloudํ”„๋กœ์ ํŠธ์— ์ฒญ๊ตฌ๋˜๋Š” ์ฃผ์š” ์ž‘์—… ์ด์™ธ์˜ ์ถ”๊ฐ€ ๋น„์šฉ์„ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฑ„๋„์—์„œ CMEK๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Pub/Sub ๊ฐ€๊ฒฉ ์ฑ…์ •์— ๋”ฐ๋ผ Cloud KMS ์„œ๋น„์Šค ์‚ฌ์šฉ ์š”๊ธˆ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ตœ์‹  ๊ฐ€๊ฒฉ ์ฑ…์ • ์ •๋ณด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud KMS ๊ฐ€๊ฒฉ ์ฑ…์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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