查找需要“运行身份”服务账号的集成
本页面可帮助您在授权变更生效之前,找到需要运行身份服务账号的集成。
确定集成是否需要“运行身份”服务账号
只有在整个运行过程中无法使用用户凭据时,您才需要运行身份服务账号。这会在以下情况下发生:
| 执行类型 | 用户凭证是否可用? | 是否需要“运行身份”服务账号? |
|---|---|---|
| 同步 - 用户触发集成并等待结果。 | 是,在整个执行过程中。 | 否 |
| 异步 - 集成会排队,稍后完成。 | 可以,但仅在触发时。 | 是 |
| 无人值守 - 时间表或事件会触发集成。 | 否,用户始终不在场。 | 是 |
确定受影响的集成
如果满足以下任一条件,集成将在没有用户身份的情况下运行:
- 它具有 API 或专用触发器以外的任何触发器,例如时间表、Cloud Scheduler、Cloud Pub/Sub、Salesforce、Integration Connectors 事件或 Eventarc 触发器。
- 它通过 API 使用
scheduleIntegrations进行调度。 - 另一个集成使用调用集成任务将其作为异步子集成进行调用。即使调用集成具有自己的运行身份服务账号,子集成也需要自己的运行身份服务账号。
- 它使用暂停或审批任务,其中运行可以等待,然后自行过期。
检查运行身份服务账号状态
如需列出某个区域中所有已发布的版本及其运行身份服务账号,请运行以下命令:
curl -s -G -H "Authorization: Bearer $(gcloud auth print-access-token)" \
--data-urlencode "filter=state=ACTIVE" \
--data-urlencode "pageSize=1000" \
"https://REGION-integrations.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/integrations/-/versions" \
| jq -r '.integrationVersions[]
| [ .name, (.runAsServiceAccount // "NONE") ]
| @tsv'
替换以下内容:
REGION:集成所在的区域。如需查看受支持的区域的列表,请参阅位置。PROJECT_ID:您的 Google Cloud 项目的 ID
如果输出显示集成的 NONE,则只有在集成满足前面列出的任何条件时,您才需要采取行动。
如需手动检查集成,请在集成编辑器中打开该集成,然后点击编辑器工具栏中的 集成设置。服务账号字段会显示运行身份服务账号。如果未分配服务账号,则此字段为空。
后续步骤
- 在您已使用的运行身份服务账号上授予 Service Account User 角色。
- 在您找到的每个集成上设置运行身份服务账号。