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-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 프로젝트 만들기를 참조하세요.
파일 위치
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 |
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 Console에서 서비스 계정을 만들 수도 있습니다. 서비스 계정 만들기 및 관리도 참조하세요.