개별 Apigee Hybrid 구성요소가 승인된 API 호출을 수행하고 연결된 서비스 계정 키 파일을 다운로드할 수 있는 역할이 할당된 Google Cloud 서비스 계정을 만듭니다. 구성 재정의 파일에서 이 명령어로 생성된 서비스 계정 키 파일을 사용할 수 있습니다.
create-service-account
는 현재 Google Cloud 프로젝트 또는 지정된 프로젝트에 하나 이상의 서비스 계정을 만들고, 이 서비스 계정에 올바른 IAM 역할을 할당하고, 해당 서비스 계정에 대해 인증서 파일을 로컬 머신의 디렉터리에 다운로드합니다.
create-service-account
도구는 HYBRID_ROOT_DIR/tools
디렉터리에 있습니다.
서비스 계정에 대해 자세히 알아보고 프로덕션 환경에 권장되는 서비스 계정의 전체 목록을 확인하려면 다음을 참조하세요.
Google Cloud Console에서 서비스 계정을 만들 수도 있습니다. 서비스 계정 만들기 및 관리도 참조하세요.
기본 요건
역할
create-service-account
도구를 사용하려면 gcloud
CLI가 설치되어 있어야 합니다. 유틸리티를 호출하는 사용자에게는 Service Account Admin
역할이 부여되어야 합니다.
프로젝트
서비스 계정은 특정 Google Cloud 프로젝트에 바인딩됩니다. create-service-account
는 현재 프로젝트 또는 지정된 프로젝트에 서비스 계정을 만들고, 해당 프로젝트 내에서 서비스 계정에 IAM 역할을 binding합니다. 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
플래그로 프로젝트를 지정할 수 있습니다.
명령어로 클라우드 프로젝트 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 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-distributed-trace |
roles/cloudtrace.agent |
apigee-distributed-trace@PROJECT_ID.iam.gserviceaccount.com |
PROJECT_ID-apigee-distributed-trace.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-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-logger apigee-metrics apigee-cassandra apigee-udca apigee-synchronizer apigee-mart apigee-watcher apigee-distributed-trace |
프로덕션 환경의 경우에만 만들 단일 서비스 계정을 지정합니다.
|
‑‑project‑id -i |
project id | 서비스 계정을 만들려는 Google Cloud 프로젝트의 프로젝트 ID입니다.
프로젝트 ID를 지정하는 경우 |
Apigee Hybrid에 사용되는 서비스 계정에 대한 자세한 내용은 서비스 계정 정보를 참조하세요.
Google Cloud Console에서 서비스 계정을 만들 수도 있습니다. 서비스 계정 만들기 및 관리도 참조하세요.