create-service-account

개별 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
roles/apigee.runtimeAgent
roles/apigee.synchronizerManager
roles/apigeeconnect.Agent
roles/cloudtrace.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-logger
apigee-metrics
apigee-cassandra
apigee-udca
apigee-synchronizer
apigee-mart
apigee-watcher
apigee-distributed-trace
프로덕션 환경의 경우에만 만들 단일 서비스 계정을 지정합니다.

--name 플래그로 서비스 계정의 이름을 지정할 수 있습니다.

--env prod가 필요합니다.

‑‑project‑id
-i
project id 서비스 계정을 만들려는 Google Cloud 프로젝트의 프로젝트 ID입니다.

프로젝트 ID를 지정하는 경우 create-service-account는 현재 gcloud 구성에서 프로젝트의 ID를 사용합니다.

Apigee Hybrid에 사용되는 서비스 계정에 대한 자세한 내용은 서비스 계정 정보를 참조하세요.

Google Cloud Console에서 서비스 계정을 만들 수도 있습니다. 서비스 계정 만들기 및 관리도 참조하세요.