API ์•ก์„ธ์Šค

๊ณ ์„ฑ๋Šฅ Google API ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด Cloud Key Management Service์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Cloud KMS gRPC API์— ์—ฐ๊ฒฐ๋˜๋Š” ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ธ๊ธฐ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

REST API๋ฅผ ํ†ตํ•ด Cloud KMS์— ์•ก์„ธ์Šคํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ HTTP ์š”์ฒญ ์ „์†ก์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด๋Š” API์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋Š” ๋”์šฑ ๊ด€์šฉ์ ์ธ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค ๊ด€๋ฆฌ ์ž‘์—…์„ ํ—ˆ์šฉํ•˜๋Š” Google Cloud Console์˜ Cloud KMS์šฉ ์›น ๊ธฐ๋ฐ˜ ์ธํ„ฐํŽ˜์ด์Šค๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธํ™” ๋ฐ ๋ณตํ˜ธํ™” ์ž‘์—…์€ ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Google์€ ๋ชจ๋“  ์–ธ์–ด์™€ ํ”Œ๋žซํผ์—์„œ ํŽธ๋ฆฌํ•˜๊ฒŒ Cloud KMS์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅ์„ ์ง€์†ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ์„ ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

ํ”Œ๋žซํผ

ํด๋ผ์ด์–ธํŠธ์—์„œ API์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ํ”Œ๋žซํผ์— ๋”ฐ๋ผ, ํŠนํžˆ ์ธ์ฆ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์†Œ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Google ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋Š” ์ด๋Ÿฌํ•œ ์ฐจ์ด์  ๋Œ€๋ถ€๋ถ„์„ ๋ฌด์‹œํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์œ ์˜ํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ธ์ฆ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Compute Engine ๋ฐ Google Kubernetes Engine

Google Kubernetes Engine ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ Compute Engine์—์„œ ์‹คํ–‰๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ์— ์ž๋™์œผ๋กœ ํ”„๋กœ๋น„์ €๋‹๋˜๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋กœ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค. Cloud KMS์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ https://www.googleapis.com/auth/cloudkms(์ตœ์†Œ ๊ถŒํ•œ์˜ ์›์น™์— ๋”ฐ๋ฅด๋ฏ€๋กœ ์„ ํ˜ธ) ๋˜๋Š” https://www.googleapis.com/auth/cloud-platform OAuth ๋ฒ”์œ„์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

gcloud compute instances create "instance-1" \
    --zone "us-east1-b" \
    --scopes "https://www.googleapis.com/auth/cloudkms"

์ž์„ธํ•œ ๋‚ด์šฉ์€ Compute Engine ๋ฌธ์„œ ๋˜๋Š” GKE ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

App Engine

App Engine์—์„œ Cloud KMS๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. App Engine ์„œ๋น„์Šค ๊ณ„์ •(PROJECT_ID@appspot.gserviceaccount.com)์— ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ID ๋ฐ ์•ก์„ธ์Šค ๊ด€๋ฆฌ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.
  2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  https://www.googleapis.com/auth/cloudkms ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. https://www.googleapis.com/auth/cloud-platform ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ Cloud KMS๋ณด๋‹ค ๋” ๋„“์€ ๋ฒ”์œ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ App Engine ๋ฌธ์„œ์˜ API ์•ก์„ธ์Šค ๋ฐ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ์ง์ ‘ ์ธ์ฆํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ํš๋“ ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.