Apigee Hybrid 提供验证功能,该功能可确保服务账号密钥的位置正确并且账号在 GCP 项目中拥有适当的权限。此验证默认启用。
本部分介绍如何启用或停用服务账号验证。此外,该步骤可确保为 GCP 项目启用正确的 API,以便验证功能正常运行。
启用服务账号权限验证
要启用权限验证,请执行以下操作:
- 确保已为 GCP 项目启用 Cloud Resource Manager API:
- 打开 Google Cloud 控制台,然后使用您在第 1 步:创建 Google Cloud 账号中创建的账号进行登录。
- 选择您在第 2 步:创建 Google Cloud 项目中创建的项目。
- 选择 API 和服务 > 库。
- 搜索“Cloud Resource Manager”。
- 找到 Cloud Resource Manager API 服务并点击它。
- 如果尚未启用,请点击启用。
您还可以使用 gcloud 启用 API:
gcloud services enable cloudresourcemanager.googleapis.com --project GCP_project_ID
- 在替换文件中,添加
validateServiceAccounts
属性并将其设置为true
。例如:... # Enables strict validation of service account permissions. validateServiceAccounts: true ...
启用验证后,每当 apigeectl 将 Apigee Hybrid 运行时组件应用于您的集群时,它都会验证包含在替换文件中的服务账号密钥。
验证错误问题排查
如果验证失败,运行时部署会停止并且 apigeectl
会退出。如需排查服务账号故障问题,了解验证检查权限的以下顺序会很有帮助:
- 项目 ID 的权限。
- (仅适用于 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 ...