런타임 영역과 제어 영역이 통신하려면 updateControlPlaneAccess API를 사용하여 동기화 도구 및 애널리틱스 게시자 액세스에 필요한 권한을 사용 설정해야 합니다.
승인 토큰 가져오기
이 주제의 뒷 부분에 설명된 Apigee API 호출을 수행하려면 Apigee 조직 관리자 역할이 있는 승인 토큰을 가져와야 합니다.
- 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"
예를 들면 다음과 같습니다.
gcloud projects get-iam-policy my-project \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:myusername@example.com"
출력에는
roles/apigee.admin
이 포함되어야 합니다. roles/apigee.admin
이 없으면 사용자 계정에 Apigee 조직 관리자 역할을 추가합니다. 다음 명령어를 사용하여 역할을 사용자 계정에 추가합니다.gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member user:your_account_email \ --role roles/apigee.admin
예를 들면 다음과 같습니다.
gcloud projects add-iam-policy-binding my-project \ --member user:myusername@example.com \ --role roles/apigee.admin
-
명령줄에서 다음 명령어를 사용하여
gcloud
인증 사용자 인증 정보를 가져옵니다.Linux/MacOS
export TOKEN=$(gcloud auth print-access-token)
토큰이 입력되었는지 확인하려면 다음 예시와 같이
echo
를 사용합니다.echo $TOKEN
그러면 토큰이 인코딩된 문자열로 표시됩니다.
Windows
for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a
토큰이 입력되었는지 확인하려면 다음 예시와 같이
echo
를 사용합니다.echo %TOKEN%
그러면 토큰이 인코딩된 문자열로 표시됩니다.
동기화 담당자 액세스 사용 설정
동기화 담당자 액세스를 사용 설정하려면 다음 안내를 따르세요.
- 동기화 담당자 액세스 권한을 부여할 서비스 계정에 대해 이메일 주소를 가져옵니다.
비프로덕션 환경(이 튜토리얼의 설명 참조)의 경우
apigee-non-prod
여야 합니다. 프로덕션 환경에서는apigee-synchronizer
여야 합니다. 다음 명령어를 사용하세요.gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"
- 다음 명령어를 사용하여 updateControlPlaneAccess API를 호출하여 동기화 담당자에 필요한 권한을 사용 설정합니다.
데이터 상주 없음
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \ -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
각 항목의 의미는 다음과 같습니다.
${ORG_NAME}
: 하이브리드 조직의 이름입니다.apigee-synchronizer${ORG_NAME}.iam.gserviceaccount.com
: 서비스 계정의 이메일 주소입니다.
데이터 상주
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess?update_mask=synchronizer_identities" \ -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com\"]}"
각 항목의 의미는 다음과 같습니다.
CONTROL_PLANE_LOCATION
: 하이브리드 설치에서 데이터 상주를 사용하는 경우 컨트롤 플레인 데이터의 위치입니다. 프록시 번들과 같은 고객 핵심 콘텐츠가 저장되는 위치입니다. 목록은 사용 가능한 Apigee API 컨트롤 플레인 리전을 참조하세요.${ORG_NAME}
: 하이브리드 조직의 이름입니다.apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com
: 서비스 계정의 이메일 주소입니다.
- 서비스 계정이 설정되었는지 확인하려면 다음 명령어로 API를 호출하여 서비스 계정 목록을 가져옵니다.
데이터 상주 없음
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
데이터 상주
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
출력은 다음과 비슷하게 표시됩니다.
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
분석 게시자 액세스 사용 설정
여러 Apigee Hybrid 런타임 구성요소는 보고 및 디버깅에 관한 정보를 제공하기 위해 애널리틱스 및 디버그 레코드를 게시합니다. 이 데이터 게시를 사용 설정하려면 이러한 Apigee 구성요소를 실행하여 데이터를 제어 플레인에 직접 게시하는 서비스 계정에 추가 권한을 부여해야 합니다.
애널리틱스 게시자 액세스를 사용 설정하려면 다음 단계를 따르세요.
- 다음 명령어를 사용하여 런타임 서비스 계정에 컨트롤 플레인에 데이터를 게시할 수 있는 권한을 설정합니다.
데이터 상주 없음
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-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-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
응답은 다음과 비슷하게 표시됩니다.
{ "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "IN_PROGRESS" } }
- 업데이트 응답의 이름 매개변수를 사용하여 작업 상태를 확인합니다.
데이터 상주 없음
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"
데이터 상주
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/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"
다음과 같은 응답이 표시됩니다.
{ "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "FINISHED" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess", "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess" } }
- 조직의 ControlPlaneAccess 구성을 확인합니다.
데이터 상주 없음
curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
데이터 상주
curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
다음과 같은 응답이 표시됩니다.
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
이제 Apigee Hybrid 런타임 및 관리 영역을 사용해서 통신할 수 있습니다. 다음으로, Apigee Hybrid가 인증서를 해석하고 관리할 수 있도록 cert-manager를 설치합니다.