第 7 步:启用同步程序访问权限

获取授权令牌

如需进行本主题稍后介绍的 Apigee API 调用,您需要获取具有 Apigee Organization Admin 角色的授权令牌。

  1. 如果您不是与 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"

    输出应如下所示:

    ROLE
    roles/apigee.admin
    roles/compute.admin
    roles/container.admin
    roles/gkehub.admin
    roles/iam.serviceAccountAdmin
    roles/iam.serviceAccountKeyAdmin
    roles/meshconfig.admin
    roles/owner
    roles/resourcemanager.projectIamAdmin
    roles/servicemanagement.admin
    roles/serviceusage.serviceUsageAdmin
  2. 如果您的角色没有 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
  3. 在命令行中,使用以下命令获取 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,请执行以下操作:

  1. 获取要授予同步器访问权限的服务账号的电子邮件地址。对于非生产环境(如本教程中所示),应采用 apigee-non-prod。对于生产环境,应采用 apigee-synchronizer。使用以下命令:

    非 prod

    gcloud iam service-accounts list --filter "apigee-non-prod"

    如果它与模式 apigee-non-prod@${ORG_NAME}.iam.gserviceaccount.com 匹配,您可以在下一步中使用该模式。

    Prod

    gcloud iam service-accounts list --filter "apigee-synchronizer"

    如果它与模式 apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com 匹配,您可以在下一步中使用该模式。

  2. 调用 setSyncAuthorization API 以使用以下命令为 Synchronizer 启用所需权限:

    非 prod

    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-non-prod@${ORG_NAME}.iam.gserviceaccount.com"'"]}'
    

    Prod

    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-non-prod${ORG_NAME}.iam.gserviceaccount.com
      apigee-synchronizer${ORG_NAME}.iam.gserviceaccount.com:服务账号的电子邮件地址。
  3. 要验证服务账号是否已设置,请使用以下命令调用 API 以获取服务账号列表:
    curl -X GET -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/${ORG_NAME}:getSyncAuthorization"
    

    输出类似于以下内容:

    非 prod

    {
       "identities":[
          "serviceAccount:apigee-non-prod@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }

    Prod

    {
       "identities":[
          "serviceAccount:apigee-synchronizer@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }

您的 Apigee Hybrid 运行时和管理平面现在可以进行通信。接下来,我们将配置应用于 Hybrid 运行时,并完成 Apigee Hybrid 安装。

1 2 3 4 5 6 7 (下一步)第 8 步:安装 Hybrid 运行时 9 10