获取授权令牌
如需进行本主题稍后介绍的 Apigee API 调用,您需要获取具有 Apigee Organization Admin 角色的授权令牌。
- 如果您不是与 Apigee Hybrid 组织关联的 Google Cloud 项目的所有者,请确保您的 Google Cloud 用户账号具有 roles/apigee.admin (Apigee Organization Admin) 角色。您可以使用以下命令检查分配给您的角色:
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 Organization Admin 角色添加到您的用户账号。使用以下命令将角色添加到您的用户账号: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%
这应该会以编码字符串的形式显示令牌。
启用同步器访问权限
要启用 Syncer Access,请执行以下操作:
- 获取要授予同步器访问权限的服务账号的电子邮件地址。对于非生产环境(如本教程中所示),应采用
apigee-non-prod
。对于生产环境,应采用apigee-synchronizer
。使用以下命令:gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"
- 调用 setSyncAuthorization API 以使用以下命令为 Synchronizer 启用所需权限:
无数据驻留
curl -X POST -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com"'"]}'
其中:
${ORG_NAME}
:您的混合组织的名称。apigee-synchronizer${ORG_NAME}.iam.gserviceaccount.com
:服务账号的电子邮件地址。
数据驻留
curl -X POST -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}:setSyncAuthorization" \ -d '{"identities":["'"serviceAccount:apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com"'"]}'
其中:
CONTROL_PLANE_LOCATION
:如果 Hybrid 安装使用数据驻留,则为控制平面数据的位置。这是存储代理软件包等客户核心内容的位置。如需查看列表,请参阅可用的 Apigee API 控制平面区域。${ORG_NAME}
:您的 Hybrid 组织的名称。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}:getSyncAuthorization"
数据驻留
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}:getSyncAuthorization"
输出类似于以下内容:
{ "identities":[ "serviceAccount:apigee-synchronizer@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
您现在已启用 Apigee Hybrid 运行时和管理平面进行通信。接下来,安装 cert-manager 以使 Apigee Hybrid 解读和管理证书。