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

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

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

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

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

Cloud Tasks์—์„œ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ๋ฆฌ์ „์— ๋Œ€ํ•ด ์‚ฌ์šฉ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด ํ•ด๋‹น ๋ฆฌ์ „์—์„œ ์ƒ์„ฑ๋œ ํƒœ์Šคํฌ์˜ ๋ณธ๋ฌธ๊ณผ ํ—ค๋”๊ฐ€ ์ €์žฅ ์ƒํƒœ์ผ ๋•Œ ํ‚ค๋กœ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค. CMEK๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋™์•ˆ ํƒœ์Šคํฌ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์œผ๋‚˜ ๋‚˜์ค‘์— (ํ‚ค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ ๋˜๋Š” ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ CMEK๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜์—ฌ) ํ‚ค๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜๋ฉด ํƒœ์Šคํฌ๊ฐ€ ํ‚ค๋กœ ์•”ํ˜ธํ™”๋˜์ง€๋งŒ ์‹คํ–‰ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ํƒœ์Šคํฌ๊ฐ€ CMEK๋กœ ๋ณดํ˜ธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ธฐ ์ „์— ํƒœ์Šคํฌ๊ฐ€ ์ƒ์„ฑ๋จ
  • ํƒœ์Šคํฌ๊ฐ€ CMEK๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฆฌ์ „์— ์žˆ์ง€ ์•Š์Œ
  • ํƒœ์Šคํฌ๊ฐ€ ํ˜ธํ™˜์„ฑ ์ œํ•œ์‚ฌํ•ญ์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

ํ˜ธํ™˜์„ฑ ์ œํ•œ์‚ฌํ•ญ

Cloud Tasks์™€ CMEK์˜ ํ†ตํ•ฉ์€ ๋‹ค์Œ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • 4.0.0 ์ด์ „ google-gax ๋ฒ„์ „: Node.js์šฉ NPM ํŒจํ‚ค์ง€ google-gax๋Š” 4.0.0 ์ดํ•˜ ๋ฒ„์ „์—์„œ ์ œํ•œ์ ์œผ๋กœ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฒ„์ „์˜ ๊ฒฝ์šฐ us-central1 ๋ฆฌ์ „์—์„œ๋งŒ CMEK๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฆฌ์ „์—๋งŒ ํƒœ์Šคํฌ๊ฐ€ ์žˆ๋”๋ผ๋„ ๋ฒ„์ „ 4.0.0 ์ด์ƒ์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • App Engine ๊ธฐ๋ณธ ์ œ๊ณต Taskqueue ์„œ๋น„์Šค: App Engine ๊ธฐ๋ณธ ์ œ๊ณต Taskqueue ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ํƒœ์Šคํฌ๋Š” ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฆฌ์ „์— ์žˆ๋”๋ผ๋„ CMEK๋กœ ๋ณดํ˜ธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ด๋„ ์ด๋Ÿฌํ•œ ํƒœ์Šคํฌ์˜ ์ƒ์„ฑ์ด๋‚˜ ์ž‘์—…(์˜ˆ: ์‹คํ–‰ ๋˜๋Š” ์‚ญ์ œ)์€ ๋ฐฉ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • pull ํ: CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด pull ํ์—์„œ ํƒœ์Šคํฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ํƒœ์Šคํฌ๋Š” CMEK๋กœ ๋ณดํ˜ธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. pull ํ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํ๊ฐ€ pull ํ์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ gcloud CLI ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    gcloud tasks queues describe QUEUE_NAME

    QUEUE_NAME์„ ํ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    ๋‚˜์—ด๋œ type์ด pull์ด๋ฉด ํ๊ฐ€ pull ํ์ž…๋‹ˆ๋‹ค. ๋‚˜์—ด๋œ type์ด push์ธ ๊ฒฝ์šฐ ์ด ์ œํ•œ์ด ํ์˜ ํƒœ์Šคํฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ํ ์ˆ˜์ค€ ๋ผ์šฐํŒ…: CMEK๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ ์ˆ˜์ค€ ๋ผ์šฐํŒ…์„ ์ ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ ์ˆ˜์ค€ ๋ผ์šฐํŒ…์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ ์ˆ˜์ค€ ๋ผ์šฐํŒ…์ด ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

    1. ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ gcloud CLI ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      gcloud tasks queues describe QUEUE_NAME
      QUEUE_NAME์„ ํ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    2. ์ถœ๋ ฅ์—์„œ httpTarget ํ•„๋“œ๋ฅผ ์ฐพ๊ณ  uriOverride๊ฐ€ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. host๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ ํ์— ํ ์ˆ˜์ค€ ๋ผ์šฐํŒ…์ด ์‚ฌ์šฉ ์„ค์ •๋˜๋ฉฐ CMEK์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ ์ˆ˜์ค€ ๋ผ์šฐํŒ…์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ํ ์ˆ˜์ค€ ๋ผ์šฐํŒ… ์—…๋ฐ์ดํŠธ ๋˜๋Š” ์‚ญ์ œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ถœ๋ ฅ์— host๊ฐ€ ์ง€์ •๋œ uriOverride๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ํ๋Š” ํ ์ˆ˜์ค€ ๋ผ์šฐํŒ…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํƒœ์Šคํฌ TTL: CMEK๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ task_ttl์„ 60์ผ ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. task_ttl์ด 60์ผ์„ ์ดˆ๊ณผํ•˜๋„๋ก ์„ค์ •๋œ ๊ฒฝ์šฐ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

Cloud Tasks์—์„œ CMEK๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

  1. API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์ฝ˜์†”

    1. Enable the Cloud KMS and Cloud Tasks APIs.

      Enable the APIs

    gcloud

    1. In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    2. ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. CMEK๋กœ ๋ณดํ˜ธํ•˜๋ ค๋Š” Cloud Tasks ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋œ ํ”„๋กœ์ ํŠธ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. Cloud KMS ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋œ ํ”„๋กœ์ ํŠธ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ด ํŽ˜์ด์ง€์˜ gcloud CLI ๋ช…๋ น์–ด์— --project ํ”Œ๋ž˜๊ทธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ์ง€์ •ํ•  ํ”„๋กœ์ ํŠธ๋ฅผ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

      gcloud config set project PROJECT_ID

      PROJECT_ID๋ฅผ Cloud Tasks ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋œ ํ”„๋กœ์ ํŠธ์˜ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

    3. gcloud ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

      gcloud components update

    4. ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์ €์žฅํ•  ํ”„๋กœ์ ํŠธ์— Cloud KMS ๋ฐ Cloud Tasks API๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

      gcloud services enable cloudkms.googleapis.com cloudtasks.googleapis.com 
      --project=PROJECT_ID

      PROJECT_ID๋ฅผ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์ €์žฅํ•  ํ”„๋กœ์ ํŠธ์˜ ID๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. Cloud Tasks ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ Cloud KMS ํ‚ค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ์—์„œ Cloud KMS๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  2. Cloud KMS๋Š” ํ‚ค๋ฅผ ์‚ฌ์šฉ ์„ค์ •, ์‚ฌ์šฉ ์ค‘์ง€ ๋˜๋Š” Cloud Tasks ๋ฆฌ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™” ๋ฐ ๋ณตํ˜ธํ™”ํ•  ๋•Œ Cloud ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ Cloud KMS API์— ๋กœ๊น…์ด ์‚ฌ์šฉ ์„ค์ •๋˜์–ด ์žˆ๊ณ , ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ ์šฉํ•  ๋กœ๊น…๋ณ„ ๊ถŒํ•œ ๋ฐ ์—ญํ• ์ด ๊ฒฐ์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Cloud KMS ๊ฐ์‚ฌ ๋กœ๊น… ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  3. Identity and Access Management ์—ญํ• ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

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

    • CMEK ์‚ฌ์šฉ ์„ค์ • ๋˜๋Š” ์‚ฌ์šฉ ์ค‘์ง€: roles/cloudtasks.admin
    • ์‚ฌ์šฉ ์ค‘์ธ ํ‚ค ๋ณด๊ธฐ: roles/cloudtasks.viewer

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

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

Cloud KMS ํ‚ค๋ง ๋ฐ ํ‚ค ๋งŒ๋“ค๊ธฐ

Cloud Tasks ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ๋ฆฌ์ „์— ํ‚ค๋ง์ด ์ด๋ฏธ ์žˆ๊ณ  ์ด ํ‚ค์™€ ํ‚ค๋ง์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์„น์…˜์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด์— ๋”ฐ๋ผ Cloud KMS ํ‚ค์™€ ํ‚ค๋ง์„ ๋งŒ๋“œ์„ธ์š”.

  1. ํ‚ค๋ง์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

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

    • ํ‚ค๋ง๊ณผ CMEK๋กœ ๋ณดํ˜ธ๋˜๋Š” Cloud Tasks ๋ฆฌ์†Œ์Šค๋Š” ๋™์ผํ•œ ํ”„๋กœ์ ํŠธ์— ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ Cloud KMS ํ‚ค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ์—์„œ Cloud KMS๋ฅผ ์„ค์ •ํ•˜์„ธ์š”.

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

Cloud KMS ํ‚ค์˜ ID ๊ฒ€์ƒ‰

Cloud Tasks์— CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  ๋•Œ Cloud KMS ํ‚ค์˜ ๋ฆฌ์†Œ์Šค ID๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

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

    ํ‚ค ์ธ๋ฒคํ† ๋ฆฌ๋กœ ์ด๋™

  2. ๋ฆฌ์†Œ์Šค ID๋ฅผ ๊ฒ€์ƒ‰ํ•  ํ‚ค์— ๋Œ€ํ•˜์—ฌ ์ž‘์—…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. ๋ฆฌ์†Œ์Šค ์ด๋ฆ„ ๋ณต์‚ฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

    ํ‚ค์˜ ๋ฆฌ์†Œ์Šค ID๊ฐ€ ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

    projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    

gcloud

  1. ์ง€์ •๋œ ํ‚ค๋ง์˜ ๋ชจ๋“  ํ‚ค๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

    gcloud kms keys list --keyring=KEY_RING --location=LOCATION --project=PROJECT_ID

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

    • KEY_RING: ํ‚ค๋ง์˜ ์ด๋ฆ„
    • LOCATION: ํ‚ค๋ง์˜ ๋ฆฌ์ „
    • PROJECT_ID: ํ‚ค๋ง์ด ํฌํ•จ๋œ ํ”„๋กœ์ ํŠธ์˜ ID

    ์ถœ๋ ฅ์—๋Š” ๊ฐ ํ‚ค์˜ ํ‚ค ID๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    NAME: projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
    

Cloud Tasks ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— ํ‚ค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ถ€์—ฌ

Cloud KMS ํ‚ค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก Cloud Tasks ์„œ๋น„์Šค ์—์ด์ „ํŠธ์— Cloud KMS CryptoKey ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” Identity and Access Management(IAM) ์—ญํ• ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฝ˜์†”

  1. Google Cloud Console์—์„œ Identity and Access Management ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    IAM์œผ๋กœ ์ด๋™

  2. Google ์ œ๊ณต ์—ญํ•  ๋ถ€์—ฌ ํฌํ•จ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ํ•„ํ„ฐ์— cloudtasks.iam.gserviceaccount.com์„ ์ž…๋ ฅํ•˜์—ฌ Cloud Tasks ์„œ๋น„์Šค ๊ณ„์ •์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

    Cloud Tasks ์„œ๋น„์Šค ๊ณ„์ •์˜ ํ˜•์‹์€ service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com์ž…๋‹ˆ๋‹ค.

  4. ์ฃผ ๊ตฌ์„ฑ์› ์ˆ˜์ •(์—ฐํ•„ ์•„์ด์ฝ˜)์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  5. ํŒจ๋„์ด ์—ด๋ฆฌ๋ฉด ๋‹ค๋ฅธ ์—ญํ•  ์ถ”๊ฐ€๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. Cloud KMS CryptoKey ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™” ์—ญํ• ์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

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

gcloud

gcloud kms keys add-iam-policy-binding KEY_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

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

  • KEY_ID: ํ‚ค์˜ ์ •๊ทœํ™”๋œ ๋ฆฌ์†Œ์Šค ID. ์ด ID๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ Cloud KMS ํ‚ค์˜ ID ๊ฒ€์ƒ‰์„ ์ฐธ์กฐํ•˜์„ธ์š”. ํ‚ค ๋ฒ„์ „ ๋ฒˆํ˜ธ๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‚ค ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜๋ฉด ์ด ๋ช…๋ น์–ด๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • PROJECT_NUMBER: Google Cloud ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. Google Cloud ์ฝ˜์†”์˜ ์‹œ์ž‘ ํŽ˜์ด์ง€์—์„œ ๋˜๋Š” ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    PROJECT=$(gcloud info --format='value(config.project)')
    gcloud projects describe ${PROJECT} --format="value(projectNumber)"

์„œ๋น„์Šค ์—์ด์ „ํŠธ์— roles/cloudkms.cryptoKeyEncrypterDecrypter ์—ญํ• ์ด ์žˆ๋Š” ๊ฒฝ์šฐ CMEK๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๋ฆฌ์ „์˜ ํƒœ์Šคํฌ๋Š” CMEK ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ณ  ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—ญํ• ์„ ์ทจ์†Œํ•˜๊ฑฐ๋‚˜ CMEK ํ‚ค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๊ฑฐ๋‚˜ ํ๊ธฐํ•˜๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์˜ Cloud Tasks์— CMEK ์‚ฌ์šฉ ์ค‘์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Cloud Tasks์— CMEK ์‚ฌ์šฉ ์„ค์ •

API ๋˜๋Š” gcloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Tasks์˜ ๊ฒฝ์šฐ ๋ฆฌ์ „๋ณ„๋กœ CMEK๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ํƒœ์Šคํฌ๋ณ„๋กœ ์‚ฌ์šฉ ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Cloud Tasks์—์„œ ํŠน์ • ๋ฆฌ์ „์— CMEK๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜๋ฉด ํ•ด๋‹น ๋ฆฌ์ „์˜ ๋ชจ๋“  ํƒœ์Šคํฌ๊ฐ€ CMEK๋กœ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค.

gcloud

Google Cloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud tasks cmek-config update --location=LOCATION --kms-key-name=KEY_ID

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

  • LOCATION: Cloud Tasks ๋ฆฌ์†Œ์Šค์˜ ๋ฆฌ์ „.
  • KEY_ID: ํ‚ค์˜ ์ •๊ทœํ™”๋œ ๋ฆฌ์†Œ์Šค ID. ์ด ID๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ Cloud KMS ํ‚ค์˜ ID ๊ฒ€์ƒ‰์„ ์ฐธ์กฐํ•˜์„ธ์š”. ํ‚ค ๋ฒ„์ „ ๋ฒˆํ˜ธ๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‚ค ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜๋ฉด ์ด ๋ช…๋ น์–ด๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

REST

Update CMEK config ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Tasks API๋Š” REST API์™€ RPC API ๋ชจ๋‘์—์„œ Update CMEK config ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • REST: updateCmekConfig ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • RPC: UpdateCmekConfigRequest ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์‚ฌ์šฉ ์ค‘์ธ ํ‚ค ์‹๋ณ„ ์„น์…˜์˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

๊ธฐ์กด ํƒœ์Šคํฌ์— ์‚ฌ์šฉ ์„ค์ •

CMEK๋Š” Cloud Tasks์— CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ธฐ ์ „์— ์ƒ์„ฑ๋œ ํƒœ์Šคํฌ๋ฅผ ๋ณดํ˜ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CMEK๋กœ ๊ธฐ์กด ํƒœ์Šคํฌ๋ฅผ ๋ณดํ˜ธํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค(CMEK ์‚ฌ์šฉ ์„ค์ • ์„น์…˜ ์ฐธ์กฐ).
  2. ๊ธฐ์กด ํƒœ์Šคํฌ๋ฅผ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์„ ์ค‘์š”ํ•˜๊ฒŒ ์—ฌ๊ธฐ๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

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

    • ์ค‘๋ณต ๋ฐฉ์ง€: ์ค‘๋ณต ์‹คํ–‰์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด('์ตœ๋Œ€ 1ํšŒ' ์ „์†ก) ๋จผ์ € ์ด์ „ ํƒœ์Šคํฌ๋ฅผ ์‚ญ์ œํ•œ ํ›„ ๋‹ค์‹œ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ด์ „ ํƒœ์Šคํฌ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ ํƒœ์Šคํฌ๋ฅผ ๋งŒ๋“œ๋Š” ์‚ฌ์ด์— ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„์œผ๋กœ ์ธํ•ด ์‹คํ–‰์ด ๋ˆ„๋ฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์ค‘์ธ ํ‚ค ์‹๋ณ„

Cloud Tasks ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์‚ฌ์šฉ ์ค‘์ธ CMEK ํ‚ค๋ฅผ ์‹๋ณ„ํ•˜๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ gcloud CLI ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

gcloud tasks cmek-config describe --location=LOCATION

LOCATION์„ Cloud Tasks ๋ฆฌ์†Œ์Šค์˜ ๋ฆฌ์ „์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์ถœ๋ ฅ์ด ์—†์œผ๋ฉด ์ง€์ •๋œ ์œ„์น˜์— CMEK๊ฐ€ ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Cloud Tasks์— CMEK ์‚ฌ์šฉ ์ค‘์ง€

API ๋˜๋Š” gcloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CMEK๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Tasks์˜ ๊ฒฝ์šฐ ๋ฆฌ์ „๋ณ„๋กœ CMEK๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ํƒœ์Šคํฌ๋ณ„๋กœ ์‚ฌ์šฉ ์ค‘์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Cloud Tasks์—์„œ ํŠน์ • ๋ฆฌ์ „์— CMEK๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋˜๋ฉด ํ•ด๋‹น ๋ฆฌ์ „์˜ ํƒœ์Šคํฌ๊ฐ€ CMEK๋กœ ๋ณดํ˜ธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

CMEK๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ฉด ์ด์ „์— ์ƒ์„ฑ๋œ ํƒœ์Šคํฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์ดํ›„์— ์ƒ์„ฑ๋œ ํƒœ์Šคํฌ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

  • ์ƒˆ ํƒœ์Šคํฌ: CMEK๋กœ ๋ณดํ˜ธ๋˜์ง€ ์•Š์Œ
  • ๊ธฐ์กด ํƒœ์Šคํฌ: CMEK๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•œ ๋™์•ˆ ์ƒ์„ฑ๋œ ํƒœ์Šคํฌ๋Š” ์•”ํ˜ธํ™”๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋ฉฐ Cloud KMS ํ‚ค๊ฐ€ ํ™œ์„ฑ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ํ•œ ๊ณ„์† ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

gcloud

Google Cloud CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CMEK๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud tasks cmek-config update --location=LOCATION --clear-kms-key

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

  • LOCATION: Cloud Tasks ๋ฆฌ์†Œ์Šค์˜ ๋ฆฌ์ „.

REST

Update CMEK config ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  Cloud KMS ํ‚ค๋ฅผ ๋นˆ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ” ์‚ญ์ œํ•˜์—ฌ CMEK๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Cloud Tasks API๋Š” REST API์™€ RPC API ๋ชจ๋‘์—์„œ Update CMEK config ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • REST: updateCmekConfig ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • RPC: UpdateCmekConfigRequest ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Cloud KMS ์‚ญ์ œ

ํƒœ์Šคํฌ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์ทจ์†Œํ•˜๋ ค๋ฉด Cloud KMS๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. CMEK ํ‚ค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ฉด ํ‚ค๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋œ ๋™์•ˆ ์ด ํ‚ค ๋ฒ„์ „์œผ๋กœ ๋ณดํ˜ธ๋˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๊ฐ€ ์ •์ง€๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์ค‘์ง€๋œ ํ‚ค๋กœ ํƒœ์Šคํฌ์— ์•ก์„ธ์Šคํ•˜๊ฑฐ๋‚˜ ํƒœ์Šคํฌ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋œ ์ƒํƒœ์—์„œ CMEK ๋ณดํ˜ธ ํƒœ์Šคํฌ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด Cloud Logging์— UNKNOWN ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋‚˜์ค‘์— ํ‚ค๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๊ฐ ๊ด€๋ฆฌ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ฉด ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ ์šฉ๋˜๋Š” ๋ฐ ์ตœ๋Œ€ 5๋ถ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • Cloud Tasks ์„œ๋น„์Šค ์—์ด์ „ํŠธ์—์„œ cloudkms.cryptoKeyEncrypterDecrypterIAM ์—ญํ• ์„ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด CMEK๋ฅผ ์‚ฌ์šฉํ•œ ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๋Š” Google Cloud ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ํƒœ์Šคํฌ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. CMEK ํ†ตํ•ฉ ํƒœ์Šคํฌ๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ CMEK๋กœ ์•”ํ˜ธํ™”๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

๊ฐ€๊ฒฉ ์ฑ…์ •

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