개요
이 단계에서는 Apigee Hybrid가 작동하는 데 필요한 Google Cloud 서비스 계정을 만들고 적절한 IAM 역할을 할당하는 방법을 설명합니다.
이 절차에서는 2단계: Apigee Helm 차트 다운로드에 정의된 두 가지 환경 변수를 사용합니다. 이러한 변수는 선택사항입니다. 아직 정의하지 않은 경우 코드 샘플에서 각 변수에 대해 적절한 디렉터리 경로를 대체합니다.
$APIGEE_HELM_CHARTS_HOME
: 2단계: Apigee Helm 차트 다운로드에 정의된 Apigee Helm 차트를 다운로드한 디렉터리입니다.$PROJECT_ID
: 1부: 프로젝트 및 조직 설정 -- 1단계: API 사용 설정에 정의된 Google Cloud 프로젝트 ID입니다.
프로덕션 환경 및 비프로덕션 환경 비교
이 가이드에서는 프로덕션('프로덕션') 및 비프로덕션('비프로덕션') 설치를 참조합니다. 프로덕션 설치는 사용 용량, 스토리지, 확장성을 높이도록 조정됩니다. 비프로덕션 설치는 리소스를 적게 사용하며 주로 학습 및 데모용으로 사용됩니다.
Apigee Hybrid용 서비스 계정을 만들고 구성할 때 타겟팅하는 설치 유형을 알고 있어야 합니다.
프로덕션 설치의 경우 Apigee Hybrid 구성요소마다 별도의 서비스 계정을 만드는 것이 좋습니다. 예를 들어 runtime, mart, metrics, mint, udca 등의 각 구성요소에는 전용 서비스 계정이 있습니다.
비프로덕션 설치의 경우 모든 구성요소에 적용되는 단일 서비스 계정을 만들 수 있습니다.
Apigee에서 사용하는 서비스 계정과 할당된 역할에 대한 자세한 내용은 Hybrid 구성요소에서 사용하는 서비스 계정 및 역할을 참조하세요.
서비스 계정 인증
Apigee Hybrid는 Google 서비스 계정을 인증하는 다음 방법을 지원합니다.
- Kubernetes 보안 비밀
- 서비스 계정 JSON 키 파일(다음 섹션의 선택 탭에서 'JSON 파일')
- Vault
- GKE용 워크로드 아이덴티티 제휴(다음 섹션의 선택 탭에서 'GKE용 WIF').
- 다른 플랫폼의 워크로드 아이덴티티 제휴(다음 섹션의 선택 탭에서 '다른 플랫폼의 WIF')
다음 섹션에서 사용할 인증 유형에 해당하는 절차를 선택합니다.
서비스 계정 만들기
Apigee Hybrid는 다음 서비스 계정을 사용합니다.
프로덕션
서비스 계정 | IAM 역할 | Apigee Helm 차트 |
---|---|---|
apigee-cassandra |
스토리지 객체 관리자 | apigee-datastore |
apigee-logger |
로그 작성자 | apigee-telemetry |
apigee-mart |
Apigee Connect 에이전트 | apigee-org |
apigee-metrics |
모니터링 측정항목 작성자 | apigee-telemetry |
apigee-mint-task-scheduler (Apigee Hybrid용 수익 창출을 사용하는 경우에만 필요) |
역할 필요 없음 | apigee-org |
apigee-runtime |
역할 필요 없음 | apigee-env |
apigee-synchronizer |
Apigee 동기화 관리자 스토리지 객체 관리자 |
apigee-env |
apigee-udca |
Apigee 애널리틱스 에이전트 | apigee-org apigee-env |
apigee-watcher |
Apigee 런타임 에이전트 | apigee-org |
비프로덕션
서비스 계정 | IAM 역할 | Apigee Helm 차트 |
---|---|---|
apigee-non-prod |
스토리지 객체 관리자 로그 작성자 Apigee Connect 에이전트 모니터링 측정항목 작성자 Apigee 동기화 담당자 관리자 Apigee 애널리틱스 에이전트 Apigee 런타임 에이전트 |
apigee-datastore apigee-telemetry apigee-org apigee-env |
create-service-account
도구
Apigee는 apigee-operator/etc/tools
디렉터리에 create-service-account
도구를 제공합니다.
$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
이 도구는 서비스 계정을 만들고 각 계정에 IAM 역할을 할당하며 각 계정에 JSON 형식의 인증서 파일을 다운로드합니다.
create-service-account
가 실행 가능한지 확인합니다. 차트를 방금 다운로드한 경우에는 create-service-account
파일이 실행 모드가 아닐 수 있습니다. APIGEE_HELM_CHARTS_HOME 디렉터리에서 다음 명령어를 실행합니다.
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
출력에 permission denied
가 표시되면 Linux, MacOS, UNIX 또는 Windows Explorer에서 chmod
를, Windows에서 icacls
명령어를 사용하여 파일을 실행 가능하게 만들어야 합니다. 예를 들면 다음과 같습니다.
chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
서비스 계정 만들기
설치에서 사용할 서비스 계정 인증 방법의 절차를 선택합니다. 자세한 내용은 Apigee Hybrid의 서비스 계정 인증 방법을 참고하세요.
Kubernetes 보안 비밀
Kubernetes 보안 비밀에 저장할 서비스 계정 키 파일을 준비하려면 create-service-account
도구를 사용하여 --dir
플래그로 키 파일의 디렉터리를 만드는 서비스 계정 키 파일을 만드세요.
프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 각 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
service-accounts
디렉터리의 내용을 확인하여 서비스 계정 파일이 생성되었는지 확인합니다. 출력은 다음과 같이 표시됩니다.ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-cassandra.json my-project-apigee-runtime.json my-project-apigee-logger.json my-project-apigee-synchronizer.json my-project-apigee-mart.json my-project-apigee-udca.json my-project-apigee-metrics.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json
비프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
service-accounts
디렉터리의 내용을 확인하여 서비스 계정 파일이 생성되었는지 확인합니다. 출력은 다음과 같이 표시됩니다.ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
JSON 파일
Helm은 차트 디렉터리 외부의 파일 참조를 지원하지 않으므로 차트 디렉터리에 해당 하이브리드 구성요소의 각 서비스 계정 인증서 파일을 만듭니다.
다음 단계에서는 프로덕션 또는 비프로덕션 설치를 구성하는지 여부를 선택합니다.
프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 각 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-cassandra \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-logger \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mart \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-metrics \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-runtime \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-synchronizer \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-udca \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-udca \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-watcher \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
Apigee Hybrid 수익 창출(Apigee Hybrid v1.15.1 이상)을 사용 설정하는 경우:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mint-task-scheduler \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
apigee-udca
JSON 파일을apigee-env
차트 디렉터리에 복사합니다. 조직 범위 및 환경 범위 작업에 모두 필요합니다.cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
- 각 차트 디렉터리의 내용을 확인하여 서비스 계정 파일이 올바른 디렉터리에 생성되었는지 확인합니다. 출력은 다음과 같이 표시됩니다.
ls ./apigee-datastore
Chart.yaml my-project-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml my-project-apigee-metrics.json values.yaml my-project-apigee-logger.json templatesls ./apigee-org
Chart.yaml my-project-apigee-udca.json my-project-apigee-mart.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json values.yamlls ./apigee-env
Chart.yaml my-project-apigee-synchronizer.json templates my-project-apigee-runtime.json my-project-apigee-udca.json values.yaml
비프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 각 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
apigee-datastore
디렉터리에 생성된 서비스 계정 파일의 이름을 확인합니다.ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
Chart.yaml PROJECT_ID-apigee-non-prod.json templates values.yaml
- 서비스 계정 파일을 해당 파일을 참조해야 하는 다른 차트 디렉터리에 복사합니다.
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/
Vault
Vault에 저장할 서비스 계정 키 파일을 준비하려면 create-service-account
도구를 사용하여 --dir
플래그로 키 파일 디렉터리를 만들어 서비스 계정 키 파일을 만드세요.
프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 각 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
service-accounts
디렉터리의 내용을 확인하여 서비스 계정 파일이 생성되었는지 확인합니다. 출력은 다음과 같이 표시됩니다.ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-cassandra.json my-project-apigee-runtime.json my-project-apigee-logger.json my-project-apigee-synchronizer.json my-project-apigee-mart.json my-project-apigee-udca.json my-project-apigee-metrics.json my-project-apigee-watcher.json my-project-apigee-mint-task-scheduler.json
비프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
service-accounts
디렉터리의 내용을 확인하여 서비스 계정 파일이 생성되었는지 확인합니다. 출력은 다음과 같이 표시됩니다.ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
my-project-apigee-non-prod.json
GKE용 WIF
다음 명령어를 사용하여 설치를 위한 서비스 계정을 만듭니다.
프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 각 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
다음 명령어를 사용하여 Google 서비스 계정 생성을 확인합니다.
gcloud iam service-accounts list --project $PROJECT_ID
출력은 다음과 비슷하게 표시됩니다.
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
비프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
다음 명령어를 사용하여 Google 서비스 계정 생성을 확인합니다.
gcloud iam service-accounts list --project $PROJECT_ID
출력은 다음과 비슷하게 표시됩니다.
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
선택사항: GKE용 워크로드 아이덴티티 제휴에는 서비스 계정 키 파일이 필요하지 않습니다. 작업이 완료되면 service-accounts
디렉터리를 삭제해도 됩니다.
기타 플랫폼의 WIF
다음 명령어를 사용하여 설치를 위한 서비스 계정을 만듭니다.
프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 각 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
다음 명령어를 사용하여 Google 서비스 계정 생성을 확인합니다.
gcloud iam service-accounts list --project $PROJECT_ID
출력은 다음과 비슷하게 표시됩니다.
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
비프로덕션
PROJECT_ID
환경 변수가 정의되었는지 확인합니다.echo $PROJECT_ID
create-service-account tool uses the value of the
정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나PROJECT_ID
environment variablecreate-service-account
명령어에--project-id PROJECT_ID
플래그를 추가합니다.-
다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서
$APIGEE_HELM_CHARTS_HOME
은 Apigee Helm 차트를 다운로드한 경로입니다. 서비스 계정을 만들라는 메시지가 표시될 수 있습니다.y
로 응답합니다.$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --env non-prod \ --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
-
다음 명령어를 사용하여 Google 서비스 계정 생성을 확인합니다.
gcloud iam service-accounts list --project $PROJECT_ID
출력은 다음과 비슷하게 표시됩니다.
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
선택사항: GKE용 워크로드 아이덴티티 제휴에는 서비스 계정 키 파일이 필요하지 않습니다. 작업이 완료되면 service-accounts
디렉터리를 삭제해도 됩니다.
서비스 계정 및 create-service-account
도구에 대한 자세한 내용은 다음을 참조하세요.
이제 서비스 계정을 만들고 Apigee Hybrid 구성요소에 필요한 역할을 할당했습니다. 다음으로 하이브리드 인그레스 게이트웨이에서 필요한 TLS 인증서를 만듭니다.