查找需要以服务账号身份运行的集成
本页是为即将到来的授权变更做好准备的一部分。它可帮助您在更改生效之前找到需要运行身份服务账号的集成。
确定集成是否需要
只有在整个运行过程中都没有可用的凭据时,您才需要运行身份服务账号。这种情况只会在以下两种情况下发生:
| 集成运行方式 | 是否有人的凭据可用? | 需要以服务账号身份运行? |
|---|---|---|
| 同步 - 某人启动了该操作,并等待结果 | 是,整个跑步过程 | 否 |
| 异步 - 任务会排队,稍后完成 | 仅在触发时 | 是 |
| 无人值守 - 由时间表或事件启动 | 否,从来没有真人 | 是 |
确定受影响的集成
首先,它是否会在无人时运行?如果存在以下任一情况,则会:
- 它具有 API 或专用触发器以外的任何触发器,例如时间表、Cloud Scheduler、Cloud Pub/Sub、Salesforce、Integration Connectors 事件或 Eventarc 触发器。
- 通过 API 使用
scheduleIntegrations安排了该任务。 - 另一个集成使用调用集成任务将其作为异步子集成进行调用。即使调用集成有自己的以服务账号身份运行的账号,子集成也需要自己的以服务账号身份运行的账号。
- 它使用 Suspend 或 Approval 任务,其中运行可以等待,然后自行过期。
其次,其 run-as 服务账号是否为空?如需列出某个区域中的每个已发布版本及其以运行身份运行的服务账号,请运行以下命令:
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的行也符合前半部分条件,则需要采取行动。 - 如需改为检查单个集成,请在集成编辑器中打开该集成,然后点击编辑器工具栏中的 (集成设置)。服务账号字段显示的是以服务账号身份运行,如果集成没有服务账号,则该字段为空。