개요
이 문서에서는 하이브리드 조직에서 Apigee의 수익 창출 기능에 대해 반복, 충전, 설정 수수료를 사용 설정하는 절차를 설명합니다.
기본 요건
- Apigee Hybrid 버전 1.14.3 이상 업그레이드 안내는 Apigee Hybrid 업그레이드를 참고하세요.
- Apigee Hybrid 프로젝트에 수익 창출이 사용 설정되어 있어야 합니다. Apigee 수익 창출 사용 설정을 참고하세요.
절차
Apigee Hybrid 수익 창출의 반복, 충전, 설정 수수료를 사용 설정하려면 apigee-mint-task-scheduler
Google 서비스 계정을 만들고 설정한 후 Pub/Sub 데이터 파이프라인에 대한 액세스 권한을 부여해야 합니다.
- Helm 차트 버전 1.14.3을 아직 다운로드하지 않은 경우 다음 명령어로 Helm 차트를 가져옵니다.
$APIGEE_HELM_CHARTS_HOME 디렉터리에서
pull
명령어를 사용하여 모든 Apigee Hybrid Helm 차트를 로컬 스토리지에 복사합니다.export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
export CHART_VERSION=1.14.3
helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
apigee-mint-task-scheduler
서비스 계정을 만듭니다.아직
apigee-mint-task-scheduler
서비스 계정을 만들지 않았다면 지금create-service-account
도구를 사용하여 만드세요. 새 Hybrid 설치의 일부로 서비스 계정을 만드는 방법에 대한 자세한 내용은 4단계: 서비스 계정 만들기를 참고하세요.-
$APIGEE_HELM_CHARTS_HOME 디렉터리에서
create-service-account
도구를 찾습니다.$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
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-mint-task-scheduler
서비스 계정을 만들고 다운로드한 인증서 파일을apigee-org
차트 디렉터리에 저장합니다.$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_HELM_CHARTS_HOME 디렉터리에서
apigee-mart
및apigee-mint-task-scheduler
서비스 계정에 대한 컨트롤 플레인 액세스를 사용 설정합니다.apigee-mart
및apigee-mint-task-scheduler
서비스 계정에 대한 컨트롤 플레인 액세스를 아직 사용 설정하지 않았다면 다음 단계에 따라 지금 사용 설정하세요. 새 하이브리드 설치의 일부로 컨트롤 플레인 액세스를 사용 설정하는 방법에 관한 자세한 내용은 7단계: 컨트롤 플레인 액세스 사용 설정을 참고하세요.- Apigee Hybrid 조직과 연관된 Google Cloud 프로젝트의 소유자가 아닌 경우 Google Cloud 사용자 계정에 roles/apigee.admin(Apigee 조직 관리자) 역할이 있는지 확인합니다. 다음 명령어로 할당된 역할을 확인할 수 있습니다.
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"
출력에 roles/apigee.admin이 포함되지 않은 경우 7단계: 컨트롤 플레인 액세스 사용 설정에서 역할을 추가하거나 역할이 있는 사용자가 이 단계를 수행하도록 하는 방법을 확인하세요.
- 다음 명령어를 사용하여 updateControlPlaneAccess API를 호출하여 필요한 권한을 사용 설정합니다.
데이터 상주 없음
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
여기서 다음은 서비스 계정의 이메일 주소입니다.
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
데이터 상주
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
각 항목의 의미는 다음과 같습니다.
CONTROL_PLANE_LOCATION
은 하이브리드 설치에서 데이터 상주를 사용하는 경우 컨트롤 플레인 데이터의 위치입니다. 프록시 번들과 같은 고객 핵심 콘텐츠가 저장되는 위치입니다. 목록은 사용 가능한 Apigee API 컨트롤 플레인 리전을 참조하세요.- 서비스 계정의 이메일 주소는 다음과 같습니다.
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
-
apigee-mart
및apigee-mint-task-scheduler
서비스 계정의 컨트롤 플레인 액세스를 확인합니다.데이터 상주 없음
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"
데이터 상주
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"
출력에는 다음과 유사한
apigee-mart
,apigee-mint-task-scheduler
,apigee-runtime
서비스 계정이 포함되어야 합니다.{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com" ] }
- Apigee Hybrid 조직과 연관된 Google Cloud 프로젝트의 소유자가 아닌 경우 Google Cloud 사용자 계정에 roles/apigee.admin(Apigee 조직 관리자) 역할이 있는지 확인합니다. 다음 명령어로 할당된 역할을 확인할 수 있습니다.
overrides.yaml
파일에 수익 창출 관련 스탠자를 추가합니다.overrides.yaml
파일에 다음 콘텐츠를 추가합니다.runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.14.3" #must be 1.14.3 or higher. mintTaskScheduler: # if using stored SA cert files: serviceAccountPath: MINT_TASK_SCHEDULER_SA_CERT_FILE.json # if using stored Kubernetes secrets: serviceAccountRef: MINT_TASK_SCHEDULER_SA_K8S_SECRET # if using Workload Identity on GKE: gsa: "apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com" # or if using Vault: serviceAccountSecretProviderClass: apigee-orgsakeys-spc
Kubernetes 보안 비밀을 사용하는 경우 Kubernetes 보안 비밀에 데이터 저장을 참고하세요.
Vault를 사용하는 경우 Hashicorp Vault에 서비스 계정 키 저장을 참고하세요.
Vault를 사용하는 경우 조직별 보안 비밀 제공자 클래스에
mint
를 추가했는지 확인하세요.SecretProviderClass
객체 만들기를 참고하세요.-
apigee-operator
,apigee-org
,apigee-env
차트에 변경사항을 적용합니다.$ORG_NAME 및 APIGEE_NAMESPACE 환경 변수를 설정한 경우 다음 명령어에서 사용할 수 있습니다.
- 연산자를 설치합니다.
테스트 실행을 수행합니다.
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
차트를 설치합니다.
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Apigee 조직을 설치합니다.
테스트 실행을 수행합니다.
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
차트를 설치합니다.
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- 환경을 설치합니다. 환경마다 이 단계를 반복합니다.
한 번에 환경 하나만 설치해야 합니다.
--set env=
ENV_NAME으로 환경을 지정합니다. 셸에서 $ENV_NAME 환경 변수를 설정한 경우 이를 다음 명령어에 사용할 수 있습니다.테스트 실행을 수행합니다.
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME은
apigee-env
차트 설치 및 업그레이드를 추적하는 데 사용되는 이름입니다. 이 이름은 설치 내 다른 Helm 출시 이름과 다르게 고유해야 합니다. 일반적으로ENV_NAME
과 동일합니다. 그러나 환경 이름이 환경 그룹 이름과 같으면 환경과 환경 그룹에 서로 다른 출시 이름(예:dev-env-release
및dev-envgroup-release
)을 사용해야 합니다. Helm의 출시 버전에 대한 자세한 내용은 Helm 문서의 세 가지 주요 개념을 참조하세요.차트를 설치합니다.
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
- 연산자를 설치합니다.
- GKE의 워크로드 아이덴티티만 해당:
apigee-mint-task-scheduler
서비스 계정에 워크로드 아이덴티티를 구성합니다.새로 설치하는 경우 11단계(선택사항): 워크로드 아이덴티티 구성의 단계와 함께 이 단계를 수행합니다.
apigee-org
차트에--dry-run
플래그를 사용하여 Helm 업그레이드를 실행하면 올바른 Google 서비스 계정 및 Kubernetes 서비스 계정 이름으로 워크로드 아이덴티티를 구성하는 데 필요한 명령어가 출력에 포함됩니다.apigee-org
에 대해 워크로드 아이덴티티를 설정하는 명령어를 가져오고 출력에서NOTES:
아래에 있는 명령어를 실행합니다.helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run=server
출력에는
NOTES:
아래에 다음과 유사한 안내가 포함되어야 합니다.NOTES: ... For organization GKE Workload Identity, please make sure to add the below membership to the IAM policy binding using the respective Kubernetes SA (KSA). gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[APIGEE_NAMESPACE/apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID-sa]" \ --project PROJECT_ID
Kubernetes 서비스 계정 이름은
apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID
형식입니다.apigee-mint-task-scheduler
에 워크로드 아이덴티티를 설정하는 명령어를 실행합니다.
추가 정보
- Apigee의 수익 창출에 대한 자세한 내용은 Apigee 수익 창출 사용 설정을 참고하세요.
mintTaskScheduler.serviceAccountPath
:apigee-mint-task-scheduler
서비스 계정의 서비스 계정 키 파일 경로를 설정합니다.mintTaskScheduler.serviceAccountRef
:apigee-mint-task-scheduler
서비스 계정의 서비스 계정 키가 포함된 Kubernetes 보안 비밀을 설정합니다.mintTaskScheduler.gsa
:apigee-mint-task-scheduler
서비스 계정의 Google 서비스 계정을 설정합니다. 서비스 계정 이메일 주소여야 합니다.