Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
VPC Service Controls を使用すると、組織で Google Cloud リソースの周囲に境界を定義して、データ漏洩のリスクを軽減できます。
Cloud Composer 環境はサービス境界内にデプロイできます。VPC Service Controls を使用して環境を構成することにより、機密データを非公開にしたまま、Cloud Composer のフルマネージド ワークフロー オーケストレーション機能を活用できます。
VPC Service Controls による Cloud Composer のサポートは次のことを意味します。
- Cloud Composer を VPC Service Controls の境界内の安全なサービスとして選択できるようになりました。
- Cloud Composer で使用されるすべての基盤となるリソースは、VPC Service Controls アーキテクチャをサポートし、そのルールに従うように構成されます。
VPC Service Controls で Cloud Composer 環境をデプロイすると、次のメリットが得られます。
- データ漏洩のリスクの低減。
- アクセス制御の構成ミスによるデータ漏洩に対する保護。
- 悪意のあるユーザーが未承認の Google Cloud リソースにデータをコピーする、または外部の攻撃者がインターネットから Google Cloud リソースにアクセスするリスクの軽減。
Cloud Composer の VPC Service Controls について
- すべての VPC Service Controls ネットワークの制約が Cloud Composer 環境にも適用されます。詳細については、VPC Service Controls のドキュメントをご覧ください。
Cloud Composer 環境が境界で保護されている場合、一般公開 PyPI リポジトリへのアクセスは制限されます。詳細については、VPC Service Controls に PyPI パッケージをインストールするをご覧ください。
環境でプライベート IP ネットワーキングを使用している場合、限定公開の Google アクセスを介してプライベート IP 環境で使用できる Google API、サービス、ドメインへのトラフィックを除き、すべての内部トラフィックが VPC ネットワークにルーティングされます。
VPC ネットワークの構成方法によっては、プライベート IP 環境が VPC ネットワーク経由でインターネットにアクセスできる場合があります。
VPC Service Controls モードでは、ウェブサーバーへのアクセスは境界で保護され、境界外からのアクセスはブロックされます。サービス境界外からのアクセスを許可するには、必要に応じてアクセスレベルまたは上り(内向き)と下り(外向き)のルールを構成します。また、ウェブサーバーへのアクセスを特定の IP 範囲に制限することもできます。
VPC Service Controls での Google API とサービスへの接続について
Cloud Composer 3 は、restricted.googleapis.com
を介して Google サービスにトラフィックを転送します。これにより、この範囲でサポートされている Google API、サービス、ドメインにアクセスできます。
詳細と、restricted.googleapis.com
で使用可能なサービスとドメインのリストについては、Virtual Private Cloud ドキュメントのネットワーク構成をご覧ください。
Cloud Composer 3 は、必要な API とサービスのリストにない Google API、サービス、ドメインへの呼び出しをブロックします。DAG から API を呼び出す場合は、次の点に注意してください。
- サービスを制限付きサービスに追加する
- VPC のアクセス可能なサービスにサービスを追加する
たとえば、VertexAI Operator を使用する場合は、制限付きサービスと VPC でアクセス可能なサービスの両方に aiplatform.googleapis.com
を追加します。
詳細については、VPC Service Controls のドキュメントでサービス境界を管理するをご覧ください。
サービス境界を作成する
サービス境界を作成して構成する方法を確認するには、サービス境界の作成をご覧ください。境界内で保護されるサービスの 1 つとして Cloud Composer を確実に選択してください。
境界内に環境を作成する
境界内に Cloud Composer をデプロイするには、次の手順が必要です。
プロジェクトに対して Access Context Manager API と Cloud Composer API を有効にします。参考として、API の有効化をご覧ください。
サービス境界に次の VPC のアクセス可能な Google サービスがあることを確認します。ない場合、環境の作成に失敗する可能性があります。
- Cloud Composer API (composer.googleapis.com)
- Artifact Registry API (artifactregistry.googleapis.com)
- Compute Engine API(compute.googleapis.com)
- Kubernetes Engine API (container.googleapis.com)
- Container File System API(containerfilesystem.googleapis.com)
- Cloud DNS API(dns.googleapis.com)
- Service Account Credentials API(iamcredentials.googleapis.com)
- Cloud Logging API (logging.googleapis.com)
- Cloud Monitoring API (monitoring.googleapis.com)
- Cloud Pub/Sub API (pubsub.googleapis.com)
- Cloud SQL Admin API(sqladmin.googleapis.com)
- Cloud Storage API(storage.googleapis.com)
新しい Cloud Composer 環境を作成します。
- Google Cloud CLI を使用して環境を作成します。
--enable-private-environment
引数を使用してプライベート IP を有効にします。--web-server-allow-all
、--web-server-allow-ip
、または--web-server-deny-all
引数を使用して、ウェブサーバーのアクセス パラメータを指定します。これらの引数の使用方法については、環境を作成するをご覧ください。保護を強化するには、特定の IP 範囲からのウェブサーバーへのアクセスのみを許可します。--enable-private-builds-only
引数を使用して、公共のインターネット リポジトリからのパッケージのインストールを禁止します。例:
gcloud composer environments create example-environment \ --location us-central1 \ --enable-private-environment \ --web-server-allow-all \ --enable-private-builds-only
デフォルトでは、Airflow UI と API へのアクセスはセキュリティ境界内からのみ許可されます。セキュリティ境界外で使用できるようにするには、アクセスレベルまたは上り(内向き)ルールと下り(外向き)ルールを構成します。
既存の環境を境界に追加する
環境がプライベート IP を使用していて、パブリック リポジトリからの PyPI パッケージのインストールが無効になっている場合は、環境を含むプロジェクトを境界に追加できます。
既存の Cloud Composer 3 環境をこの構成に更新するには:
- 前のセクションの説明に従って、境界をすでに作成または構成していることを確認します。
- Google Cloud CLI を使用して環境を更新します。
--enable-private-environment
引数を使用してプライベート IP を有効にします。--enable-private-builds-only
引数を使用して、公共のインターネット リポジトリからのパッケージのインストールを禁止します。- 必要に応じて、Airflow ウェブサーバーへのアクセスを構成します。保護を強化するには、特定の IP 範囲からのウェブサーバーへのアクセスのみを許可します。
例:
gcloud composer environments update example-environment \
--location us-central1 \
--enable-private-environment \
--enable-private-builds-only
VPC Service Controls に PyPI パッケージをインストールする
デフォルトの VPC Service Controls 構成では、Cloud Composer は、VPC ネットワークの内部 IP アドレス空間から到達可能なプライベート リポジトリからの PyPI パッケージのインストールのみをサポートしています。
VPC Service Controls 境界内のすべての Cloud Composer 環境は、デフォルトで一般公開 PyPI リポジトリにアクセスできません。
プライベート リポジトリからインストールする
推奨の手順は、プライベート PyPI リポジトリを設定し、組織で使用する信頼できるパッケージを導入してから、プライベート リポジトリから Python 依存関係をインストールするように Cloud Composer を構成することです。
パブリック リポジトリからインストールする
外部リポジトリから PyPI パッケージをインストールするには:
- Artifact Registry リモート リポジトリを作成します。
- このリポジトリにアップストリーム ソースへのアクセス権を付与します。
- Artifact Registry リポジトリからパッケージをインストールするように Airflow を構成します。
環境のサービス アカウントには、次の IAM ロールが必要です。
- Composer ワーカー(
composer.worker
) - サービス アカウント ユーザー(
iam.serviceAccountUser
)
VPC Service Controls のログ
環境作成に関する問題のトラブルシューティングを行うときに、VPC Service Controls によって生成された監査ログを分析できます。
他のログメッセージに加えて、環境のコンポーネントを構成する cloud-airflow-prod@system.gserviceaccount.com
および service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
サービス アカウントに関する情報のログを確認できます。
Cloud Composer サービスは、cloud-airflow-prod@system.gserviceaccount.com
サービス アカウントを使用して、環境のテナント プロジェクト コンポーネントを管理します。
service-PROJECT_ID@cloudcomposer-accounts.iam.gserviceaccount.com
サービス アカウント(Composer サービス エージェント サービス アカウント)は、サービス プロジェクトとホスト プロジェクトの環境コンポーネントを管理します。