개요
이 단계에서는 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, udca 등에 각각 자체 서비스 계정을 가져옵니다.
비프로덕션 설치의 경우 모든 구성요소에 적용되는 단일 서비스 계정을 만들 수 있습니다.
Apigee에서 사용하는 서비스 계정과 할당된 역할에 대한 자세한 내용은 Hybrid 구성요소에서 사용하는 서비스 계정 및 역할을 참조하세요.
서비스 계정 인증
Apigee Hybrid는 Google 서비스 계정을 인증하는 세 가지 방법을 지원합니다.
AKS, EKS 또는 GKE의 워크로드 아이덴티티
GKE 기반의 Apigee Hybrid 설치에서는 Google Cloud가 Hybrid 런타임 구성요소를 인증하기 위해 워크로드 아이덴티티라는 옵션을 제공합니다. 이 옵션은 서비스 계정을 인증하기 위해 다운로드한 인증서 파일을 사용하지 않고, 대신 이 단계에서 만드는 Google Cloud 서비스 계정을 Kubernetes 클러스터의 Kubernetes 서비스 계정과 연결합니다. GKE에서 워크로드 아이덴티티 사용 설정 또는 AKS 및 EKS에서 워크로드 아이덴티티 제휴 사용 설정을 참조하세요.
서비스 계정 만들기
Apigee Hybrid는 다음 서비스 계정을 사용합니다.
프로덕션
서비스 계정 | IAM 역할 | Apigee Helm 차트 |
---|---|---|
apigee-cassandra |
스토리지 객체 관리자 | apigee-datastore |
apigee-logger |
로그 작성자 | apigee-telemetry |
apigee-mart |
Apigee Connect 에이전트 | apigee-org |
apigee-metrics |
모니터링 측정항목 작성자 | apigee-telemetry |
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
서비스 계정 만들기
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-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 PROJECT_ID-apigee-cassandra.json templates values.yamlls ./apigee-telemetry
Chart.yaml PROJECT_ID-apigee-logger.json PROJECT_ID-apigee-metrics.json templates values.yamlls ./apigee-org
Chart.yaml PROJECT_ID-apigee-udca.json templates PROJECT_ID-apigee-mart.json PROJECT_ID-apigee-watcher.json values.yamlls ./apigee-env
Chart.yaml PROJECT_ID-apigee-runtime.json PROJECT_ID-apigee-synchronizer.json my_project_id-apigee-udca.json templates 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.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
서비스 계정 및 create-service-account
도구에 대한 자세한 내용은 다음을 참조하세요.
이제 서비스 계정을 만들고 Apigee Hybrid 구성요소에 필요한 역할을 할당했습니다. 다음으로 하이브리드 인그레스 게이트웨이에서 필요한 TLS 인증서를 만듭니다.