環境作成のトラブルシューティング

Managed Airflow(第 3 世代) | Managed Airflow(第 2 世代) | Managed Airflow(レガシー第 1 世代)

このページでは、Managed Airflow 環境の作成中に発生する可能性のある問題のトラブルシューティングについて説明します。

環境の更新とアップグレードに関するトラブルシューティングの情報については、 環境の更新とアップグレードのトラブルシューティングをご覧ください。

マネージド Airflow 環境が作成される際、ほとんどの問題が以下の理由で発生します。

  • サービス アカウントの権限の問題

  • ファイアウォール、DNS、ルーティング情報の誤り

  • ネットワーク関連の問題。例: 無効な VPC 構成、IP アドレスの競合、ネットワーク IP 範囲が狭すぎる

  • 割り当てに関する問題。

  • 互換性のない組織のポリシー

環境を作成するための十分な権限がありません

アカウントに十分な権限がないために Managed Airflow で環境を作成できない場合は、次のエラー メッセージが出力されます。

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.

ソリューション: アクセス制御での説明に沿って、アカウントと環境のサービス アカウントの両方にロールを割り当てます。

  • マネージド Airflow(第 2 世代)で、Cloud Composer サービス エージェント サービス アカウント (service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com) に Cloud Composer v2 API サービス エージェント拡張機能 のロールが割り当てられていることを確認します。

  • Google API サービス エージェント (PROJECT_NUMBER@cloudservices.gserviceaccount.com) に編集者のロールが割り当てられていることを確認します。

  • 共有 VPC 構成で、共有 VPC の構成手順に従います。

環境のサービス アカウントに十分な権限がありません

Managed Airflow 環境を作成するときに、その環境の GKE クラスタノードを実行するサービス アカウントを指定します。このサービス アカウントに、リクエストされたオペレーションに対する十分な権限がない場合、Managed Airflow は次のエラーを出力します。

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 ロールの不足に関する警告

環境の作成に失敗すると、Managed Airflow は、エラー発生後に 次の警告メッセージを生成します: The issue may be caused by missing IAM roles in the following Service Accounts ...

この警告メッセージは、エラーの原因として考えられるものを強調するものです。Managed Airflow は、プロジェクトのサービス アカウントに必要なロールを確認し、これらのロールが存在しない場合は、この警告メッセージを生成します。

解決策: 警告メッセージに記載されているサービス アカウントに必要なロールがあることを確認します。Managed Airflow のロールと権限の詳細については、アクセス制御をご覧ください。

場合によっては、この警告を無視できます。Managed Airflow は、ロールに割り当てられた個々の権限を確認しません。たとえば、カスタム IAM ロールを使用している場合、警告メッセージに記載されているサービス アカウントに必要なすべての権限がすでに存在する可能性があります。その場合は、この警告を無視してください。

互換性のない組織のポリシー

マネージド Airflow 環境を正常に作成するには、次のポリシーを適切に構成する必要があります。

組織ポリシー マネージド Airflow(第 3 世代) マネージド Airflow(第 2 世代) Managed Airflow(レガシー第 1 世代)
compute.disableSerialPortLogging (任意の値が許可されます) 無効にする必要があります 1.13.0 より前のバージョンでは無効、それ以外の場合は任意の値
compute.requireOsLogin (任意の値が許可されます) (任意の値が許可されます) 無効にする必要があります
compute.vmCanIpForward (任意の値が許可されます) (任意の値が許可されます) VPC ネイティブ モード(エイリアス IP を使用)が構成されていない場合に許可(マネージド Airflow 所有の GKE クラスタに必要)する必要があります
compute.vmExternalIpAccess (任意の値が許可されます) パブリック IP 環境に対して許可する必要があります パブリック IP 環境に対して許可する必要があります
compute.restrictVpcPeering 適用可能 適用不可 適用不可
compute.disablePrivateServiceConnectCreationForConsumers (任意の値が許可されます) プライベート IP 環境とパブリック 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 が管理しており、環境が配置されている組織に属していません。環境の サービス アカウントには、テナント プロジェクトでオペレーションを実行する 権限が必要です。

ソリューション:

組織またはプロジェクト内で使用するサービスの制限

組織管理者またはプロジェクト管理者は、プロジェクトで使用できる Google サービスを 制限できます。これには、 gcp.restrictServiceUsage 組織のポリシーの制約を使用します。

この組織のポリシーを使用する場合は、Managed Airflow で必要なすべてのサービスを 許可することが重要です。

次のステップ