服务账号验证

Apigee Hybrid 提供验证功能,该功能可确保服务账号密钥的位置正确并且账号在 Google Cloud 项目中拥有适当的权限。此验证默认启用。

本部分介绍如何启用或停用服务账号验证。此外,该步骤可确保为 Google Cloud 项目启用正确的 API,以便验证功能正常运行。

启用服务账号权限验证

要启用权限验证,请执行以下操作

  1. 确保已为您的 Google Cloud 项目启用 Cloud Resource Manager API
    1. 打开 Google Cloud 控制台,然后使用您在第 1 步:创建 Google Cloud 账号中创建的账号进行登录。
    2. 选择您在第 2 步:创建 Google Cloud 项目中创建的项目。
    3. 选择 API 和服务 > 库
    4. 搜索“Cloud Resource Manager”。
    5. 找到 Cloud Resource Manager API 服务并点击它。
    6. 如果尚未启用,请点击启用

    您还可以使用 gcloud 启用 API:

    gcloud services enable cloudresourcemanager.googleapis.com --project GCP_PROJECT_ID
  2. 在替换文件中,添加 validateServiceAccounts 属性并将其设置为 true。例如:
    ...
    # Enables strict validation of service account permissions.
    validateServiceAccounts: true
    ...

启用验证后,每当您将 Apigee Hybrid 运行时组件的配置更改应用到集群时,Helm 图表都会验证覆盖文件中包含的服务账号密钥。

验证错误问题排查

如果验证失败,运行时部署会停止,并且 helm upgradehelm install 会退出。如需排查服务账号故障问题,了解验证检查权限的以下顺序会很有帮助:

  1. 项目 ID 的权限。
  2. (仅适用于 UDCA 和同步器)如果对项目的权限检查失败,验证会继续根据 Apigee 环境的 IAM 政策检查权限。这些 SA 的范围为环境,且环境支持更精细的权限。

    如需更新特定环境的 IAM 政策,请转到 Hybrid 界面。转到管理 > 环境 > 访问权限

例如,以下是一个失败的权限检查的错误消息:

Invalid Metrics Service Account. Service Account
"apigee-metrics@hybrid-project.iam.gserviceaccount.com" is missing 1 or more required
permissions [monitoring.metricDescriptors.create monitoring.metricDescriptors.get monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get monitoring.monitoredResourceDescriptors.list monitoring.timeSeries.create].
Visit Service accounts and roles used by
hybrid components for more details on setting up Apigee hybrid service account permissions.

如要解决此错误,请向服务账号添加所需的角色。如需了解如何创建和修改服务账号,请参阅创建服务账号。如需查看每个 Apigee Hybrid 组件所需的权限,请参阅 Hybrid 组件使用的服务账号和角色

停用权限验证

如需停用服务账号权限验证,请将替换文件中的 validationServiceAccounts 属性设置为 false,如以下示例所示:

...
# Enables strict validation of service account permissions.
validateServiceAccounts: false
...