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 |
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 ๊ฐ ๋๋ ํฐ๋ฆฌ์์ ์์ฑํ๋ ํค ํ์ผ๊ณผ ๋์ผํ ์ด๋ฆ์ ํ์ผ์ ๋ฎ์ด์๋๋ค.
์ถ๋ ฅ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด |
--env -e |
prod non-prod |
์๋น์ค ๊ณ์ ์ ๋ง๋๋ ๋์ ํ๊ฒฝ์ด ํ๋ก๋์
(prod ) ํ๊ฒฝ ๋๋ ๋นํ๋ก๋์
(non-prod ) ํ๊ฒฝ์ธ์ง ์ง์ ํฉ๋๋ค.
|
--help -h |
์์ | ๋์๋ง ํ ์คํธ๋ฅผ ํ์ํฉ๋๋ค. |
--name -n |
์๋น์ค ๊ณ์ ์ด๋ฆ | ์๋น์ค ๊ณ์ ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. --name ์ --profile ๋๋ --env non-prod ๋ก ์ง์ ๋ ๋จ์ผ ์๋น์ค ๊ณ์ ์๋ง ์ ์ฉ๋ฉ๋๋ค.
์ด ์ด๋ฆ์ ๋ํ ์๋น์ค ๊ณ์ ์ ์ธ์ฆ์ ํ์ผ ์ด๋ฆ ๋ฐ ์ด๋ฉ์ผ์ ์ผ๋ถ์
๋๋ค. ์๋ฅผ ๋ค์ด
|
โโprofile -p |
apigeeโcassandra apigeeโlogger apigeeโmart apigeeโmetrics apigeeโruntime apigeeโsynchronizer apigeeโudca apigeeโwatcher |
ํ๋ก๋์
ํ๊ฒฝ์ ๊ฒฝ์ฐ์๋ง ๋ง๋ค ๋จ์ผ ์๋น์ค ๊ณ์ ์ ์ง์ ํฉ๋๋ค.
|
โโprojectโid -i |
project id | ์๋น์ค ๊ณ์ ์ ๋ง๋ค๋ ค๋ Google Cloud ํ๋ก์ ํธ์ ํ๋ก์ ํธ ID์
๋๋ค.
ํ๋ก์ ํธ ID๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ |
Apigee Hybrid์ ์ฌ์ฉ๋๋ ์๋น์ค ๊ณ์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋น์ค ๊ณ์ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์.
Google Cloud ์ฝ์์์ ์๋น์ค ๊ณ์ ์ ๋ง๋ค ์๋ ์์ต๋๋ค. ์๋น์ค ๊ณ์ ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌ๋ ์ฐธ์กฐํ์ธ์.