create-service-account

create-serice-account 개요

create-serice-account는 Apigee Hybrid와 함께 제공되는 명령줄 도구로, 개별 Apigee Hybrid 구성 요소가 승인된 API 호출을 수행하고 관련된 서비스 계정 키 파일을 다운로드할 수 있는 역할을 가진 Google Cloud 서비스 계정을 생성합니다. 구성 재정의 파일에서 이 명령어로 생성된 서비스 계정 키 파일을 사용할 수 있습니다.

create-service-account는 현재 Google Cloud 프로젝트 또는 지정된 프로젝트에 하나 이상의 서비스 계정을 만들고, 이 서비스 계정에 올바른 IAM 역할을 할당하고, 해당 서비스 계정에 대해 인증서 파일을 로컬 머신의 디렉터리에 다운로드합니다.

서비스 계정에 대해 자세히 알아보고 프로덕션 환경에 권장되는 서비스 계정의 전체 목록을 확인하려면 다음을 참조하세요.

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

기본 요건

역할

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-accountPROJECT_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 프로젝트 만들기를 참조하세요.

파일 위치

Apigee Hybrid 설치 및 관리에 사용하는 도구에 따라 다음 디렉터리에서 create-service-account를 찾을 수 있습니다.

  • Helm 차트: $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/
  • apigeectl: $APIGEECTL_HOME/apigeectl/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-accountPROJECT_ID 환경 변수의 값을 읽습니다. 이 도구가 없는 경우 --project-id 플래그를 사용할 수 있습니다.

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

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

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