解決建立環境的相關問題

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

本頁面提供疑難排解資訊,協助您解決建立 Cloud Composer 環境時可能遇到的問題。

如要瞭解如何解決更新及升級環境相關問題,請參閱「解決環境更新與升級問題」。

建立 Cloud Composer 環境時,大部分的問題都是因為以下原因造成:

  • 服務帳戶權限問題。

  • 防火牆、DNS 或路由資訊不正確。

  • 網路相關問題。例如無效的 VPC 設定、IP 位址衝突或網路 IP 範圍過窄。

  • 配額相關問題。

  • 機構政策不相容。

權限不足,無法建立環境

如果 Cloud Composer 因帳戶權限不足而無法建立環境,系統會輸出以下錯誤訊息:

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: The caller
does not have permission

ERROR: (gcloud.composer.environments.create) PERMISSION_DENIED: User not
authorized to act as service account <service-account-name>.
The user must be granted iam.serviceAccounts.actAs permission, included in
Owner, Editor, Service Account User role. See https://cloud.google.com/iam/docs
/understanding-service-accounts for additional details.

解決方法:請按照「存取權控管」一節所述,同時為您的帳戶和環境的服務帳戶指派角色。

  • 在 Cloud Composer 2 中,請確認 Cloud Composer 服務代理人服務帳戶 (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com) 已指派 Cloud Composer v2 API 服務代理人擴充角色

  • 確認 Google API 服務代理人 (PROJECT_NUMBER@cloudservices.gserviceaccount.com) 已指派 編輯者角色。

  • 在共用虛擬私有雲設定中,請按照設定共用虛擬私有雲的操作說明操作。

環境的服務帳戶權限不足

建立 Cloud Composer 環境時,您必須指定執行環境 GKE 叢集節點的服務帳戶。如果這個服務帳戶的權限不足,無法執行要求的作業,Cloud Composer 會輸出以下錯誤:

Errors in: [Web server]; Error messages:
  Creation of airflow web server version failed. This may be an intermittent
  issue of the App Engine service. You may retry the operation later.
{"ResourceType":"appengine.v1.version","ResourceErrorCode":"504","ResourceError
Message":"Your deployment has failed to become healthy in the allotted time
and therefore was rolled back. If you believe this was an error, try adjusting
the 'app_start_timeout_sec' setting in the 'readiness_check' section."}

解決方法:請按照「存取權控管」一節所述,同時為您的帳戶和環境的服務帳戶指派角色。

服務帳戶中缺少 IAM 角色的警告

建立環境失敗時,Cloud Composer 會在發生錯誤後產生以下警告訊息:The issue may be caused by missing IAM roles in the following Service Accounts ...

這則警告訊息會強調錯誤的可能原因。Cloud Composer 會檢查專案中服務帳戶的必要角色,如果沒有這些角色,系統就會產生這則警告訊息。

解決方法:請確認警告訊息中提及的服務帳戶具有必要角色。如要進一步瞭解 Cloud Composer 中的角色和權限,請參閱「存取權控管」一文。

在某些情況下,您可以忽略這則警告。Cloud Composer 不會檢查指派給角色的個別權限。舉例來說,如果您使用自訂 IAM 角色,警告訊息中提及的服務帳戶可能已具備所有必要權限。在這種情況下,您可以忽略這則警告。

機構政策不相容

您必須適當設定下列政策,才能成功建立 Cloud Composer 環境。

機構政策 Cloud Composer 3 Cloud Composer 2 Cloud Composer 1
compute.disableSerialPortLogging 可輸入任何值 必須停用 1.13.0 以下版本已停用;否則為任何值
compute.requireOsLogin 可輸入任何值 可輸入任何值 必須停用
compute.vmCanIpForward 可輸入任何值 可輸入任何值 未設定 VPC 原生模式 (使用別名 IP) 時,必須允許 (Cloud Composer 擁有的 GKE 叢集必須允許)
compute.vmExternalIpAccess 可輸入任何值 必須允許使用公開 IP 環境 必須允許使用公開 IP 環境
compute.restrictVpcPeering 可強制執行 無法強制執行 無法強制執行
compute.disablePrivateServiceConnectCreationForConsumers 可輸入任何值 無法禁止私人和公開 IP 環境中的 SERVICE_PRODUCERS。不會影響現有環境,這些環境可以在啟用這項政策時運作。 無法禁止私人 IP 環境使用 SERVICE_PRODUCERS。不會影響現有環境,這些環境可以在啟用這項政策時運作。
compute.restrictPrivateServiceConnectProducer 啟用後,將 google.com 機構加入許可清單 啟用後,將 google.com 機構加入許可清單 可輸入任何值

主體存取邊界政策不相容

您可以在貴機構中設定主體存取邊界政策,以便封鎖部分環境作業或防止建立新環境。

如果是這種情況,您可能會在錯誤訊息中看到以下行:

Operations on resource are denied due to an IAM Principal Access Boundary Policy.

環境的元件位於用戶群和客戶專案中。租用戶專案由 Google 管理,不屬於環境所在的機構。環境的服務帳戶必須具備在租用戶專案中執行作業的權限。

解決方法

  • 請在政策繫結中新增條件運算式,將環境的服務帳戶從政策中排除。如要瞭解如何排除主體,使政策不套用至該主體,請參閱「Identity and Access Management」說明文件中的「主體存取邊界政策的條件式政策繫結」。

限制機構或專案內使用的服務

機構或專案管理員可以使用 gcp.restrictServiceUsage 組織政策限制,限制專案可使用的 Google 服務。

使用這項機構政策時,請務必允許 Cloud Composer 所需的所有服務

後續步驟