您可以透過 Cloud Build 定義機構政策 (constraints/cloudbuild.allowedIntegrations),控管哪些外部服務可以叫用建構觸發條件。舉例來說,如果觸發條件會監聽 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.enablepermission. Learn how to grant roles.
- 如要使用本指南提供的指令列範例,請安裝及設定 Google Cloud SDK。 
- 如要設定、變更或刪除機構政策,您必須具有機構政策管理員 ( - roles/orgpolicy.policyAdmin) 角色。如要瞭解如何將角色新增至帳戶,請參閱「新增機構政策管理員」。
設定允許的整合服務機構政策
本節說明如何設定機構政策 (constraints/cloudbuild.allowedIntegrations),為允許的整合定義建構作業。
主控台
- 在 Google Cloud 控制台中開啟「Organization policies」(機構政策) 頁面。 
- 按一下包含「允許的整合 (Cloud Build)」政策的資料列。 - 畫面會顯示「Policy details」(政策詳細資料) 頁面。 
- 如要編輯政策,請按一下「編輯」。 - 畫面會顯示「編輯政策」頁面。 
- 在「套用對象」部分中,選取「自訂」,設定政策定義。 
- 在「政策強制執行」部分,選取「取代」,為政策定義專屬規則。否則,請選取「與上層合併」,確保上層資源的規則會套用至您的設定。詳情請參閱「瞭解階層評估」。 
- 在「規則」部分,按一下「新增規則」,為政策新增規則。 
- 在「Policy values」(政策值) 下,選取「Allow all」(允許所有),允許來自所有服務的建構作業;選取「Deny all」(拒絕所有),拒絕來自所有服務的建構作業;選取「Custom」(自訂),允許或拒絕來自特定服務的建構作業。 - 如果選取「自訂」做為值,請完成下列步驟: - 在「政策類型」部分,選取「允許」或「拒絕」。 
- 在「自訂值」部分,輸入要允許或拒絕建構作業的執行個體或存放區主機網址。舉例來說,如要允許或拒絕來自 GitHub 的建構作業,請輸入 - 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
- 開啟終端機視窗。 
- 如要允許或拒絕所有服務的建構作業,請建立含有下列內容的 YAML 檔案: - name: projects/PROJECT_NUMBER/policies/cloudbuild.allowedIntegrations spec: inheritFromParent: INHERIT rules: - ALLOW_OR_DENY: true- 其中: - PROJECT_NUMBER是您的專案號碼。
- INHERIT,則政策規則會從父項資源繼承。- true否則為- false。
- 如要允許來自所有主機網址的建構作業,請使用 allowAll。否則請使用denyAll。ALLOW_OR_DENY
- HOST_URL是主機網址。例如:- github.com。您也可以在下列幾行中指定其他網址。
 - 如要允許或拒絕來自所選服務的建構作業,請建立含有下列內容的 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
測試機構政策是否允許整合
本節說明如何使用建構觸發條件測試組織政策 (constraints/cloudbuild.allowedIntegrations)。
- 如果尚未建立建構觸發程序,請先建立。 
- 將變更推送至來源。 
- 如果政策允許從來源建構,您就能在「建構記錄」頁面,查看觸發程序執行的建構作業。否則建構作業不會執行。如要查看因政策定義而受限的建構版本記錄,請前往「記錄探索工具」頁面,查看 JSON 酬載原因和拒絕原因。 
後續步驟
- 瞭解如何建立及管理自動建構觸發條件。
- 瞭解如何運用核准機制控管建構作業。
- 瞭解查看建構記錄所需的權限。
- 瞭解 Cloud Build 建立的稽核記錄。