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๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค. ํ ์์ค ๋ผ์ฐํ ์ด ์ฌ์ฉ ์ค์ ๋์ด ์๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
ํฐ๋ฏธ๋์์ ๋ค์ gcloud CLI ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
gcloud tasks queues describe QUEUE_NAME
QUEUE_NAME
์ ํ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ๋๋ค.์ถ๋ ฅ์์
httpTarget
ํ๋๋ฅผ ์ฐพ๊ณuriOverride
๊ฐ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.host
๊ฐ ์ง์ ๋ ๊ฒฝ์ฐ ํ์ ํ ์์ค ๋ผ์ฐํ ์ด ์ฌ์ฉ ์ค์ ๋๋ฉฐ CMEK์ ํธํ๋์ง ์์ต๋๋ค. ํ ์์ค ๋ผ์ฐํ ์ ์ญ์ ํ๋ ค๋ฉด ํ ์์ค ๋ผ์ฐํ ์ ๋ฐ์ดํธ ๋๋ ์ญ์ ๋ฅผ ์ฐธ์กฐํ์ธ์. ์ถ๋ ฅ์host
๊ฐ ์ง์ ๋uriOverride
๊ฐ ํ์๋์ง ์์ผ๋ฉด ํ๋ ํ ์์ค ๋ผ์ฐํ ์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๋๋ค.
ํ์คํฌ TTL: CMEK๊ฐ ์ฌ์ฉ ์ค์ ๋ ๊ฒฝ์ฐ
task_ttl
์ 60์ผ ์ด์์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค.task_ttl
์ด 60์ผ์ ์ด๊ณผํ๋๋ก ์ค์ ๋ ๊ฒฝ์ฐ CMEK๋ฅผ ์ฌ์ฉ ์ค์ ํ ์ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์
Cloud Tasks์์ CMEK๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํฉ๋๋ค.
API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
์ฝ์
-
Enable the Cloud KMS and Cloud Tasks APIs.
gcloud
In the Google Cloud console, 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.
๊ธฐ๋ณธ ํ๋ก์ ํธ๋ฅผ ์ค์ ํฉ๋๋ค. CMEK๋ก ๋ณดํธํ๋ ค๋ Cloud Tasks ๋ฆฌ์์ค๊ฐ ํฌํจ๋ ํ๋ก์ ํธ์ฌ์ผ ํฉ๋๋ค. Cloud KMS ๋ฆฌ์์ค๊ฐ ํฌํจ๋ ํ๋ก์ ํธ์ ๊ฐ์ ๋ค๋ฅธ ํ๋ก์ ํธ์์ ๋ช ๋ น์ด๋ฅผ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ, ์ด ํ์ด์ง์ gcloud CLI ๋ช ๋ น์ด์
--project
ํ๋๊ทธ๊ฐ ํฌํจ๋์ด ์๊ณ ์ง์ ํ ํ๋ก์ ํธ๋ฅผ ์๋ ค์ค๋๋ค.gcloud config set project PROJECT_ID
PROJECT_ID
๋ฅผ Cloud Tasks ๋ฆฌ์์ค๊ฐ ํฌํจ๋ ํ๋ก์ ํธ์ ID๋ก ๋ฐ๊ฟ๋๋ค.gcloud
๊ตฌ์ฑ์์๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.gcloud components update
์ํธํ ํค๋ฅผ ์ ์ฅํ ํ๋ก์ ํธ์ Cloud KMS ๋ฐ Cloud Tasks API๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
gcloud services enable cloudkms.googleapis.com cloudtasks.googleapis.com
--project=PROJECT_IDPROJECT_ID
๋ฅผ ์ํธํ ํค๋ฅผ ์ ์ฅํ ํ๋ก์ ํธ์ ID๋ก ๋ฐ๊ฟ๋๋ค. Cloud Tasks ๋ฆฌ์์ค์ ๋์ผํ ํ๋ก์ ํธ์ผ ์ ์์ง๋ง Cloud KMS ํค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ค๋ฉด ๋ณ๋์ ํ๋ก์ ํธ์์ Cloud KMS๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
-
Cloud KMS๋ ํค๋ฅผ ์ฌ์ฉ ์ค์ , ์ฌ์ฉ ์ค์ง ๋๋ Cloud Tasks ๋ฆฌ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ํธํ ๋ฐ ๋ณตํธํํ ๋ Cloud ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ์์ฑํฉ๋๋ค. ํ๋ก์ ํธ์ Cloud KMS API์ ๋ก๊น ์ด ์ฌ์ฉ ์ค์ ๋์ด ์๊ณ , ์ฌ์ฉ ์ฌ๋ก์ ์ ์ฉํ ๋ก๊น ๋ณ ๊ถํ ๋ฐ ์ญํ ์ด ๊ฒฐ์ ๋์๋์ง ํ์ธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Cloud KMS ๊ฐ์ฌ ๋ก๊น ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
Identity and Access Management ์ญํ ์ ๊ฐ์ ธ์ต๋๋ค.
Cloud Tasks์์ CMEK๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ํ์ํ ๊ถํ์ ์ป์ผ๋ ค๋ฉด ๊ด๋ฆฌ์์๊ฒ ํ๋ก์ ํธ์ ๋ํ ๋ค์ IAM ์ญํ ์ ๋ถ์ฌํด ๋ฌ๋ผ๊ณ ์์ฒญํ์ธ์.
-
CMEK ์ฌ์ฉ ์ค์ ๋๋ ์ฌ์ฉ ์ค์ง:
roles/cloudtasks.admin
-
์ฌ์ฉ ์ค์ธ ํค ๋ณด๊ธฐ:
roles/cloudtasks.viewer
์ญํ ๋ถ์ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ ํ๋ก์ ํธ, ํด๋, ์กฐ์ง์ ๋ํ ์ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ปค์คํ ์ญํ ์ด๋ ๋ค๋ฅธ ์ฌ์ ์ ์๋ ์ญํ ์ ํตํด ํ์ํ ๊ถํ์ ์ป์ ์๋ ์์ต๋๋ค.
-
CMEK ์ฌ์ฉ ์ค์ ๋๋ ์ฌ์ฉ ์ค์ง:
Cloud KMS ํค๋ง ๋ฐ ํค ๋ง๋ค๊ธฐ
Cloud Tasks ๋ฆฌ์์ค์ ๋์ผํ ๋ฆฌ์ ์ ํค๋ง์ด ์ด๋ฏธ ์๊ณ ์ด ํค์ ํค๋ง์ ์ฌ์ฉํ๋ ค๋ฉด ์ด ์น์ ์ ๊ฑด๋๋๋๋ค. ๊ทธ๋ ์ง ์๋ค๋ฉด ๋ค์ ์๋ด์ ๋ฐ๋ผ Cloud KMS ํค์ ํค๋ง์ ๋ง๋์ธ์.
-
ํค๋ง์ ๋ณดํธํ๋ ค๋ Cloud Tasks ๋ฆฌ์์ค๊ฐ ํฌํจ๋ ๋ฆฌ์ ์ ์์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Cloud KMS ์์น ๋ฐ Cloud Tasks ์์น๋ฅผ ์ฐธ์กฐํ์ธ์.
ํค๋ง๊ณผ CMEK๋ก ๋ณดํธ๋๋ Cloud Tasks ๋ฆฌ์์ค๋ ๋์ผํ ํ๋ก์ ํธ์ ์์ ์ ์์ง๋ง Cloud KMS ํค์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ํํ๋ ค๋ฉด ๋ณ๋์ ํ๋ก์ ํธ์์ Cloud KMS๋ฅผ ์ค์ ํ์ธ์.
Cloud KMS ํค์ ID ๊ฒ์
Cloud Tasks์ CMEK๋ฅผ ์ฌ์ฉ ์ค์ ํ ๋ Cloud KMS ํค์ ๋ฆฌ์์ค ID๊ฐ ํ์ํฉ๋๋ค.
์ฝ์
Google Cloud ์ฝ์์์ ํค ๊ด๋ฆฌ ํ์ด์ง๋ก ์ด๋ํ์ฌ ํค ์ธ๋ฒคํ ๋ฆฌ ํญ์ ์ ํํฉ๋๋ค.
๋ฆฌ์์ค ID๋ฅผ ๊ฒ์ํ ํค์ ๋ํ์ฌ more_vert ์์ ์ ํด๋ฆญํฉ๋๋ค.
๋ฆฌ์์ค ์ด๋ฆ ๋ณต์ฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํค์ ๋ฆฌ์์ค ID๊ฐ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌ๋ฉ๋๋ค. ํ์์ ๋ค์๊ณผ ๋น์ทํฉ๋๋ค.
projects/PROJECT_NAME/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
gcloud
์ง์ ๋ ํค๋ง์ ๋ชจ๋ ํค๋ฅผ ๋์ดํฉ๋๋ค.
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) ์ญํ ์ ๋ถ์ฌํด์ผ ํฉ๋๋ค.
์ฝ์
Google Cloud Console์์ Identity and Access Management ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
Google ์ ๊ณต ์ญํ ๋ถ์ฌ ํฌํจ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํฉ๋๋ค.
ํํฐ์
cloudtasks.iam.gserviceaccount.com
์ ์ ๋ ฅํ์ฌ Cloud Tasks ์๋น์ค ๊ณ์ ์ ์ฐพ์ต๋๋ค.Cloud Tasks ์๋น์ค ๊ณ์ ์ ํ์์
service-PROJECT_NUMBER@gcp-sa-cloudtasks.iam.gserviceaccount.com
์ ๋๋ค.์ฃผ ๊ตฌ์ฑ์ ์์ (์ฐํ ์์ด์ฝ)์ ํด๋ฆญํฉ๋๋ค.
ํจ๋์ด ์ด๋ฆฌ๋ฉด ๋ค๋ฅธ ์ญํ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
Cloud KMS CryptoKey ์ํธํ/๋ณตํธํ ์ญํ ์ ๊ฒ์ํ์ฌ ์ ํํฉ๋๋ค.
์ ์ฅ์ ํด๋ฆญํฉ๋๋ค.
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๋ก ๊ธฐ์กด ํ์คํฌ๋ฅผ ๋ณดํธํ๋ ค๋ฉด ๋ค์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์.
- CMEK๋ฅผ ์ฌ์ฉ ์ค์ ํฉ๋๋ค(CMEK ์ฌ์ฉ ์ค์ ์น์ ์ฐธ์กฐ).
๊ธฐ์กด ํ์คํฌ๋ฅผ ๋ฐ๊ฟ๋๋ค. ์ด ์์ ์ ์คํํ๋ ๋ ๊ฐ์ง ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ฐ์ฅ ์ ํฉํ ๋ฐฉ๋ฒ์ ๋ฌด์์ ์ค์ํ๊ฒ ์ฌ๊ธฐ๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ง์์ ์คํ: ์ง์์ ์คํ('์ต์ 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.cryptoKeyEncrypterDecrypter
IAM ์ญํ ์ ์ทจ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด CMEK๋ฅผ ์ฌ์ฉํ ์ํธํ๋ฅผ ์ง์ํ๋ Google Cloud ํ๋ก์ ํธ์ ๋ชจ๋ ํ์คํฌ์ ์ํฅ์ ์ค๋๋ค. CMEK ํตํฉ ํ์คํฌ๋ฅผ ์๋ก ๋ง๋ค๊ฑฐ๋ CMEK๋ก ์ํธํ๋ ๋ฆฌ์์ค๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์ด๋ฌํ ์์ ์ ์ฆ์ ์ก์ธ์ค ์ทจ์๋ฅผ ๋ณด์ฅํ์ง๋ ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก IAM ๋ณ๊ฒฝ ์ฌํญ์ ๋ ๋น ๋ฅด๊ฒ ์ ์ฉ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Cloud KMS ๋ฆฌ์์ค ์ผ๊ด์ฑ ๋ฐ ์ก์ธ์ค ๋ณ๊ฒฝ ์ ํ๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ฐ๊ฒฉ ์ฑ ์
์ด ํตํฉ์ Google Cloud ํ๋ก์ ํธ์ ๋น์ฉ์ด ์ฒญ๊ตฌ๋๋ ํค ์์ ์ด์ธ์ ์ถ๊ฐ ๋น์ฉ์ ๋ฐ์์ํค์ง ์์ต๋๋ค. ํ์ฌ ๊ฐ๊ฒฉ ์ฑ ์ ๊ด๋ จ ์ ๋ณด๋ Cloud KMS ๊ฐ๊ฒฉ ์ฑ ์ ์ ์ฐธ์กฐํ์ธ์.