Cloud Build 可让您定义组织政策 (constraints/cloudbuild.allowedIntegrations
),以控制哪些外部服务可以调用 build 触发器。例如,如果您的触发器监听 GitHub 代码库的更改,但组织政策中拒绝了 GitHub,则触发器将不会运行。您可以为组织或项目指定任意数量的允许或拒绝的值。
本页面介绍了如何使用 Google Cloud 控制台和 gcloud
命令行工具为集成设置组织政策 (constraints/cloudbuild.allowedIntegrations
)。
准备工作
-
Enable the Cloud Build and Organization Policy APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. 如需使用本指南中的命令行示例,请安装并配置 Google Cloud SDK。
如需设置、更改或删除组织政策,您必须拥有组织政策管理员 (
roles/orgpolicy.policyAdmin
) 角色。如需了解如何向账号添加该角色,请参阅添加组织政策管理员。
为允许的集成设置组织政策
本部分介绍了如何设置组织政策 (constraints/cloudbuild.allowedIntegrations
),以定义允许的集成所对应的 build。
控制台
在 Google Cloud 控制台中打开组织政策页面。
点击包含允许的集成 (Cloud Build) 政策的行。
您将看到政策详情页面。
如需修改政策,请点击修改。
您将看到修改政策页面。
在应用对象部分中,选择自定义以设置政策的定义。
在强制执行政策部分中,选择替换以定义您自己的政策规则。否则,请选择与父级合并,以确保父资源中的规则应用于您的设置。如需了解详情,请参阅了解层次结构评估。
在规则部分中,点击添加规则,为您的政策添加新规则。
在政策值下,选择全部允许以允许来自所有服务的 build,选择全部拒绝以拒绝来自所有服务的 build,或选择自定义以允许或拒绝来自特定服务的 build。
如果您选择自定义作为值,请完成以下步骤:
在政策类型部分中,选择允许或拒绝。
在自定义值部分中,输入您要允许或拒绝从中构建的实例或代码库的主机网址。例如,如需允许或拒绝来自 GitHub 的 build,请输入网址
github.com
或www.github.com
。您还可以输入多个网址,以空格分隔。例如,
github.com ghe.staging-test.com
。根据活动,您指定的主机网址应为以下网址之一:
- RepoSync 事件:主机为
source.developers.google.com
。 - GitHub 应用事件:主机派生自 JSON 载荷中的
repository.html_url
字段,该字段始终为github.com
。 - GitHub Enterprise 事件:主机派生自 JSON 载荷中的
repository.html_url
字段。例如ghe.staging-test.com
。 - Pub/Sub 事件:主机派生自触发器中指定的来源。如果触发器中未指定任何来源,则不会进行组织政策检查。
- Webhook 事件:主机来源于触发器中指定的来源。如果触发器中未指定来源,则会进行组织政策检查。
- RepoSync 事件:主机为
如需保存规则,请点击完成。
如需添加其他规则,请点击添加规则。否则,如需保存政策,请点击保存。
gcloud
打开一个终端窗口。
如果您想允许或拒绝来自所有服务的 build,请创建包含以下内容的 YAML 文件:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - ALLOW_OR_DENY: true
其中:
PROJECT_NUMBER
是您的项目编号。- 如果您希望政策规则沿用父级资源的政策,请将
INHERIT
设置为true
。否则,false
。 - 如果您想允许来自所有宿主网址的 build,
ALLOW_OR_DENY
为allowAll
。否则,为denyAll
。 HOST_URL
是您的主机网址。例如github.com
。您还可以在以下行中指定其他网址。
如果您想允许或拒绝来自所选服务的 build,请创建一个包含以下内容的 YAML 文件:
name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - values: ALLOW_OR_DENY: HOST_URL ...
其中:
PROJECT_NUMBER
是您的项目编号。- 如果您希望政策规则沿用父级资源的政策,请将
INHERIT
设置为true
。否则,false
。 - 如果您想指定允许构建的主机网址,则
ALLOW_OR_DENY
为allowedValues
。否则,deniedValues
。 HOST_URL
是您的主机网址。例如github.com
。您还可以在以下行中指定其他网址。
运行以下命令来设置组织政策,其中 FILE_NAME 是 YAML 文件的名称:
gcloud org-policies set-policy FILE_NAME
如需确认您的政策是否已设置,请运行以下命令,其中 PROJECT_ID 是您的项目 ID:
gcloud org-policies describe cloudbuild.allowedIntegrations --effective --project PROJECT_ID
测试允许的集成所对应的组织政策
本部分介绍了如何使用 build 触发器测试组织政策 (constraints/cloudbuild.allowedIntegrations
)。
创建构建触发器(如果您尚未这样做)。
向来源推送更改。
如果您的政策设置为允许从来源进行 build,您将能够在build 历史记录页面上查看触发器触发的 build 执行情况。否则,您的 build 将不会执行。如需查看因政策定义而受到限制的 build 的历史记录,请参阅 Logs Explorer 页面,了解 JSON 载荷原因和拒绝原因。
后续步骤
- 了解如何创建和管理构建触发器。
- 了解如何对构建设定批准门槛。
- 了解查看构建日志所需的权限。
- 了解 Cloud Build 创建的审核日志。