如要讓執行階段層和控制層通訊,您必須使用 updateControlPlaneAccess API 啟用 Synchronizer 和 Analytics 發布者存取權的必要權限。
取得授權權杖
如要發出本主題稍後說明的 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-synchronizer
。非正式環境應為apigee-non-prod
。使用下列指令:正式環境
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"
非正式環境
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
- 呼叫 updateControlPlaneAccess API,使用下列指令為 Synchronizer 啟用必要權限:
沒有資料落地設定
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
:如果混合式安裝作業使用資料落地,則為控制平面資料的位置。這是儲存客戶核心內容 (例如 Proxy 套件) 的位置。如需清單,請參閱「可用的 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 元件的服務帳戶其他權限,以便直接將資料發布至控制平面。
如要啟用數據分析發布商存取權,請按照下列步驟操作:
- 取得您要授予數據分析發布者存取權的服務帳戶電子郵件地址。
在正式版環境中,這些值應為
apigee-runtime
、apigee-mart
和apigee-mint-task-scheduler
(如果您要啟用 Apigee Hybrid 的營利功能)。非正式環境應為apigee-non-prod
。正式環境
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-runtime OR apigee-mart OR apigee-mint-task-scheduler"
非正式環境
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
- 為執行階段、MART 和代幣工作排程器 (如果您在 v1.15.1 以上版本啟用 Apigee Hybrid 營利功能) 元件的服務帳戶設定權限,以便使用下列指令將資料發布至控制層:
沒有資料落地設定
呼叫
updateControlPlaneAccess
API,為執行階段和 MART 服務帳戶啟用權限: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-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
如要為 Apigee Hybrid 啟用營利功能,請為 Mint 工作排程器服務帳戶設定權限:
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-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$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
資料落地
呼叫
updateControlPlaneAccess
API,為執行階段和 MART 服務帳戶啟用權限: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-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
如要為 Apigee Hybrid 啟用營利功能,請為 Mint 工作排程器服務帳戶設定權限:
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-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
其中:
- 如果混合式安裝使用資料落地,
CONTROL_PLANE_LOCATION
是控制平面資料的位置。這是儲存客戶核心內容 (例如 Proxy 套件) 的位置。如需清單,請參閱「可用的 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
回應內容應如下所示:
{ "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" } }
- 使用更新回應 name 欄位中的 ID 驗證作業狀態:
沒有資料落地設定
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/$OPERATION_ID"
資料落地
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/$OPERATION_ID"
回應內容應如下所示:
{ "name": "organizations/YOUR_ORG_NAME/operations/$OPERATION_ID", "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-mart@YOUR_ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-mint-task-scheduler@YOUR_ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
您現在已啟用 Apigee Hybrid 執行階段和管理層的通訊功能。接著安裝 cert-manager,讓 Apigee Hybrid 解讀及管理憑證。