create-service-account

create-serice-account ๊ฐœ์š”

create-serice-account๋Š” Apigee Hybrid์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋ช…๋ น์ค„ ๋„๊ตฌ๋กœ, ๊ฐœ๋ณ„ Apigee Hybrid ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์Šน์ธ๋œ API ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ด€๋ จ๋œ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์—ญํ• ์„ ๊ฐ€์ง„ Google Cloud ์„œ๋น„์Šค ๊ณ„์ •์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ์ด ๋ช…๋ น์–ด๋กœ ์ƒ์„ฑ๋œ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

create-service-account๋Š” ํ˜„์žฌ Google Cloud ํ”„๋กœ์ ํŠธ ๋˜๋Š” ์ง€์ •๋œ ํ”„๋กœ์ ํŠธ์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ค๊ณ , ์ด ์„œ๋น„์Šค ๊ณ„์ •์— ์˜ฌ๋ฐ”๋ฅธ IAM ์—ญํ• ์„ ํ• ๋‹นํ•˜๊ณ , ํ•ด๋‹น ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•ด ์ธ์ฆ์„œ ํŒŒ์ผ์„ ๋กœ์ปฌ ๋จธ์‹ ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ณ  ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๊ถŒ์žฅ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ „์ฒด ๋ชฉ๋ก์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Google Cloud ์ฝ˜์†”์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ • ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ด€๋ฆฌ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ ์š”๊ฑด

์—ญํ• 

create-service-account ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด gcloud CLI๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” Service Account Admin ์—ญํ• ์ด ๋ถ€์—ฌ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ

์„œ๋น„์Šค ๊ณ„์ •์€ ํŠน์ • Google Cloud ํ”„๋กœ์ ํŠธ์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค. create-service-account๋Š” ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ๋˜๋Š” ์ง€์ •๋œ ํ”„๋กœ์ ํŠธ์— ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ค๊ณ , ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์— IAM ์—ญํ• ์„ ๋ฐ”์ธ๋”ฉํ•ฉ๋‹ˆ๋‹ค. create-service-account๋Š” ๋˜ํ•œ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ ์ด๋ฉ”์ผ์˜ ์ผ๋ถ€๋กœ ํ”„๋กœ์ ํŠธ ID๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์ด my-hybrid-project์ด๋ฉด apigee-logger ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ ์ด๋ฆ„์ด my-hybrid-project-apigee-logger.json์ด ๋˜๊ณ  ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ๊ฐ€ apigee-logger@my-hybrid-project.iam.gserviceaccount.com์ด ๋ฉ๋‹ˆ๋‹ค.

PROJECT_ID ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ --project-id ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. create-service-account๋Š” PROJECT_ID ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ --project-id ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cloud ํ”„๋กœ์ ํŠธ ID๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ create-service-account๋Š” ํ˜„์žฌ gcloud ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ํ˜„์žฌ ์„ค์ •๋œ gcloud ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gcloud config list project

ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ID๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

gcloud config set project PROJECT_ID

์—ฌ๊ธฐ์„œ PROJECT_ID๋Š” ํ˜„์žฌ ํด๋ผ์šฐ๋“œ ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ์•ˆ๋‚ด๋Š” 2๋‹จ๊ณ„: Google Cloud ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํŒŒ์ผ ์œ„์น˜

๋‹ค์Œ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ create-service-account ๋„๊ตฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/

create-service-account ๋„๊ตฌ์˜ ์‹คํ–‰ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ํ™•์ธ

create-service-account๊ฐ€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Apigee Helm ์ฐจํŠธ๋ฅผ ๋ฐฉ๊ธˆ ๋‹ค์šด๋กœ๋“œํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ช…๋ น์ค„ ๋„๊ตฌ๊ฐ€ ์‹คํ–‰ ๋ชจ๋“œ๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. create-service-account๊ฐ€ ์„ค์น˜๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•˜๊ณ  --help๋กœ ์‹คํ–‰ํ•˜์—ฌ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

./create-service-account --help

์ถœ๋ ฅ์— permission denied๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด Linux, MacOS, UNIX ๋˜๋Š” Windows Explorer์—์„œ chmod๋ฅผ, Windows์—์„œ icacls ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

chmod +x ./create-service-account

create-service-account ์‚ฌ์šฉ

๋‹ค์Œ ์˜ˆ์‹œ๋Š” ์ผ๋ฐ˜์ ์ธ Apigee Hybrid ์„ค์ • ํƒœ์Šคํฌ์— create-service-account๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ์„œ๋น„์Šค ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

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

./tools/create-service-account --env prod

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ./tools/service-accounts ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‹ค์šด๋กœ๋“œ๋œ ์ธ์ฆ์„œ ํŒŒ์ผ๋กœ ๋‹ค์Œ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ • IAM ์—ญํ•  ์ด๋ฉ”์ผ ์ธ์ฆ์„œ ํŒŒ์ผ
apigee-cassandra roles/storage.objectAdmin apigee-cassandra@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-cassandra.json
apigee-logger roles/logging.logWriter apigee-logger@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-logger.json
apigee-mart roles/apigeeconnect.Agent apigee-mart@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-mart.json
apigee-metrics roles/monitoring.metricWriter apigee-metrics@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-metrics.json
apigee-runtime ํ• ๋‹น๋œ ์—ญํ•  ์—†์Œ apigee-runtime@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-runtime.json
apigee-synchronizer roles/apigee.synchronizerManager apigee-synchronizer@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-synchronizer.json
apigee-udca roles/apigee.analyticsAgent apigee-udca@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-udca.json
apigee-watcher roles/apigee.runtimeAgent apigee-watcher@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-watcher.json

๋น„ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ๋‹จ์ผ ์„œ๋น„์Šค ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

์‹คํ—˜ ๋˜๋Š” ๋ฐ๋ชจ ํ™˜๊ฒฝ๊ณผ ๊ฐ™์€ ๋น„ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” 'apigee-non-prod'๋ผ๋Š” ๋‹จ์ผ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค ๊ณ„์ •์€ ํ• ๋‹น๋œ ์ด์ „ ์˜ˆ์‹œ์˜ ๋ชจ๋“  IAM ์—ญํ• ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

./tools/create-service-account --env non-prod

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด apigee-non-prod๋ผ๋Š” ๋‹จ์ผ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ค๊ณ  ์ธ์ฆ์„œ ํŒŒ์ผ์„ ./tools/service-accounts ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ • IAM ์—ญํ•  ์ด๋ฉ”์ผ ์ธ์ฆ์„œ ํŒŒ์ผ
apigee-non-prod roles/apigee.analyticsAgent
roles/apigee.runtimeAgent
roles/apigee.synchronizerManager
roles/apigeeconnect.Agent
roles/logging.logWriter
roles/monitoring.metricWriter
roles/storage.objectAdmin
apigee-non-prod@PROJECT_ID.iam.gserviceaccount.com PROJECT_ID-apigee-non-prod.json

create-service-account syntax

create-service-account ๋„๊ตฌ๋Š” ๋‹ค์Œ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

create-service-account [flags] 

๋‹ค์Œ ํ‘œ์—๋Š” create-service-account ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋ž˜๊ทธ ๊ฐ’ ์„ค๋ช…
--dir
-d
๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ์ถœ๋ ฅ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด create-service-account๊ฐ€ ์ด๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ create-service-account๊ฐ€ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ƒ์„ฑํ•˜๋Š” ํ‚ค ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

์ถœ๋ ฅ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด create-service-account๊ฐ€ ์„œ๋น„์Šค ๊ณ„์ • ํŒŒ์ผ์„ create-service-account๊ฐ€ ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์˜ service-accounts/ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

--env
-e
prod
non-prod
์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“œ๋Š” ๋Œ€์ƒ ํ™˜๊ฒฝ์ด ํ”„๋กœ๋•์…˜(prod) ํ™˜๊ฒฝ ๋˜๋Š” ๋น„ํ”„๋กœ๋•์…˜(non-prod) ํ™˜๊ฒฝ์ธ์ง€ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • --env prod๋Š” ํ”„๋กœ๋•์…˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” ๊ฐ Apigee ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๋‹จ์ผ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋‘๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ๊ฐ ์—ญํ• ์€ ๋‹จ์ผ IAM ์—ญํ• ์ด ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

    create-service-account -env prod๋Š” --profile๋กœ ํŠน์ • ์„œ๋น„์Šค ๊ณ„์ •์„ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ Apigee Hybrid์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • --env non-prod๋Š” ๋ชจ๋“  IAM ์—ญํ• ์ด ๋ฐ”์ธ๋”ฉ๋œ ๋‹จ์ผ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ™˜๊ฒฝ ๋˜๋Š” ๋ฐ๋ชจ ์„ค์น˜์™€ ๊ฐ™์€ ๋น„ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์„œ๋น„์Šค ๊ณ„์ •์€ --name ํ”Œ๋ž˜๊ทธ๋กœ ์ด๋ฆ„์„ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ apigee-non-prod๋กœ ์ด๋ฆ„์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

--env ์—†์ด create-service-account๋ฅผ ์‹คํ–‰ํ•˜๋ฉด prod ๋˜๋Š” non-prod๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

--help
-h
์—†์Œ ๋„์›€๋ง ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
--name
-n
์„œ๋น„์Šค ๊ณ„์ • ์ด๋ฆ„ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. --name์€ --profile ๋˜๋Š” --env non-prod๋กœ ์ง€์ •๋œ ๋‹จ์ผ ์„œ๋น„์Šค ๊ณ„์ •์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ์ด๋ฆ„์€ ๋˜ํ•œ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ธ์ฆ์„œ ํŒŒ์ผ ์ด๋ฆ„ ๋ฐ ์ด๋ฉ”์ผ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด create-service-account --profile apigee-logger --name my-logger(์ด ์˜ˆ์‹œ์—์„œ๋Š” ํ˜„์žฌ ํด๋ผ์šฐ๋“œ ํ”„๋กœ์ ํŠธ๊ฐ€ my-hybrid-project๋ผ๊ณ  ๊ฐ€์ •)๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ create-service-account๊ฐ€ ๋‹ค์Œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ •์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • ์ด๋ฆ„: my-logger
  • ์ด๋ฉ”์ผ: my-logger@my-hybrid-project.iam.gserviceaccount.com
  • ์ธ์ฆ์„œ ํŒŒ์ผ: my-hybrid-project-my-logger.json

--name์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด create-service-account๊ฐ€ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฆ„์— ๋Œ€ํ•œ ํ”„๋กœํ•„ ๋˜๋Š” --env non-prod๋ฅผ ์ง€์ •ํ•œ ๊ฒฝ์šฐ 'apigee-non-prod'๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘profile
-p
apigeeโ€‘cassandra
apigeeโ€‘logger
apigeeโ€‘mart
apigeeโ€‘metrics
apigeeโ€‘runtime
apigeeโ€‘synchronizer
apigeeโ€‘udca
apigeeโ€‘watcher
ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ์—๋งŒ ๋งŒ๋“ค ๋‹จ์ผ ์„œ๋น„์Šค ๊ณ„์ •์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--name ํ”Œ๋ž˜๊ทธ๋กœ ์„œ๋น„์Šค ๊ณ„์ •์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--env prod๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘projectโ€‘id
-i
project id ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ค๋ ค๋Š” Google Cloud ํ”„๋กœ์ ํŠธ์˜ ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค.

create-service-account๋Š” PROJECT_ID ํ™˜๊ฒฝ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ฝ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ --project-id ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ID๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ create-service-account๋Š” ํ˜„์žฌ gcloud ๊ตฌ์„ฑ์—์„œ ํ”„๋กœ์ ํŠธ์˜ ID๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Apigee Hybrid์— ์‚ฌ์šฉ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„œ๋น„์Šค ๊ณ„์ • ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Google Cloud ์ฝ˜์†”์—์„œ ์„œ๋น„์Šค ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ • ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ด€๋ฆฌ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.