4단계: 서비스 계정 만들기

개요

이 단계에서는 Apigee Hybrid가 작동하는 데 필요한 Google Cloud 서비스 계정을 만들고 적절한 IAM 역할을 할당하는 방법을 설명합니다.

이 절차에서는 2단계: Apigee Helm 차트 다운로드에 정의된 두 가지 환경 변수를 사용합니다. 이러한 변수는 선택사항입니다. 아직 정의하지 않은 경우 코드 샘플에서 각 변수에 대해 적절한 디렉터리 경로를 대체합니다.

프로덕션 환경 및 비프로덕션 환경 비교

이 가이드에서는 프로덕션('프로덕션') 및 비프로덕션('비프로덕션') 설치를 참조합니다. 프로덕션 설치는 사용 용량, 스토리지, 확장성을 높이도록 조정됩니다. 비프로덕션 설치는 리소스를 적게 사용하며 주로 학습 및 데모용으로 사용됩니다.

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은 차트 디렉터리 외부의 파일 참조를 지원하지 않으므로 차트 디렉터리에 해당 하이브리드 구성요소의 각 서비스 계정 인증서 파일을 만듭니다.

다음 단계에서는 프로덕션 또는 비프로덕션 설치를 구성하는지 여부를 선택합니다.

프로덕션

  1. PROJECT_ID 환경 변수가 정의되었는지 확인합니다.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable 정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나 create-service-account 명령어에 --project-id PROJECT_ID 플래그를 추가합니다.

  2. 다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서 $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
  3. apigee-udca JSON 파일을 apigee-env 차트 디렉터리에 복사합니다. 조직 범위 및 환경 범위 작업에 모두 필요합니다.
    cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
  4. 각 차트 디렉터리의 내용을 확인하여 서비스 계정 파일이 올바른 디렉터리에 생성되었는지 확인합니다. 출력은 다음과 같이 표시됩니다.
    ls ./apigee-datastore
    Chart.yaml  PROJECT_ID-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml  PROJECT_ID-apigee-logger.json  PROJECT_ID-apigee-metrics.json  templates  values.yaml
    
    ls ./apigee-org
    Chart.yaml                      PROJECT_ID-apigee-udca.json     templates
    PROJECT_ID-apigee-mart.json  PROJECT_ID-apigee-watcher.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml  PROJECT_ID-apigee-runtime.json  PROJECT_ID-apigee-synchronizer.json my_project_id-apigee-udca.json  templates  values.yaml
    

비프로덕션

  1. PROJECT_ID 환경 변수가 정의되었는지 확인합니다.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable 정의되지 않았으면 Google Cloud 프로젝트 ID로 정의하거나 create-service-account 명령어에 --project-id PROJECT_ID 플래그를 추가합니다.

  2. 다음 명령어를 사용하여 서비스 계정을 만듭니다. 여기서 $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
  3. apigee-datastore 디렉터리에 생성된 서비스 계정 파일의 이름을 확인합니다.
    ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    Chart.yaml  PROJECT_ID-apigee-non-prod.json  templates  values.yaml
  4. 서비스 계정 파일을 해당 파일을 참조해야 하는 다른 차트 디렉터리에 복사합니다.
    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 인증서를 만듭니다.

다음 단계

1 2 3 4 (다음) 5단계: TLS 인증서 만들기 6 7 8 9 10 11