VPC Service Controls を構成する

Cloud Composer 1 | Cloud Composer 2

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 リソースにアクセスするリスクの軽減。

サービス境界の作成

サービス境界を作成して構成する方法を確認するには、サービス境界の作成をご覧ください。境界内で保護されるサービスの 1 つとして Cloud Composer を確実に選択してください。

境界内の環境の作成

境界内に Cloud Composer をデプロイするには、追加の手順を行う必要があります。Cloud Composer 環境を作成する場合:

  1. プロジェクトに対して Access Context Manager APICloud Composer API を有効にします。参考として、API の有効化をご覧ください。

  2. 環境の保護を最大限に保護するために、Cloud SQL、Pub/Sub、Monitoring、Cloud Storage、GKE、Container Registry、Artifact Registry、Compute Engine のサービスを追加します。

  3. バージョン composer-1.10.4 以降を使用します。

  4. プライベート IP を有効にして、新しい Cloud Composer 環境を作成します。 環境の作成時に、この設定を構成する必要があります

VPC Service Controls による既存の環境の構成

次の場合は、環境を含むプロジェクトを境界に追加できます。

PyPI パッケージのインストール

デフォルトの VPC Service Controls 構成では、Cloud Composer は、VPC ネットワークのプライベート IP アドレス空間から到達可能なプライベート リポジトリからの PyPI パッケージのインストールのみをサポートしています。このプロセスの推奨構成では、プライベート PyPI リポジトリを設定し、組織で使用する信頼できるパッケージを導入してから、プライベート リポジトリから Python 依存関係をインストールするように Cloud Composer を構成します。

プライベート IP 空間外のリポジトリから PyPI パッケージをインストールすることもできます。手順は次のとおりです。

  1. プライベート IP 空間で実行中の Composer が外部の PyPI リポジトリと接続できるように Cloud NAT を構成します。
  2. Composer クラスタからリポジトリへの送信側の接続を許可するようにファイアウォール ルールを構成します。

この設定の使用時は、外部リポジトリを使用するリスクを理解しておいてください。外部リポジトリのコンテンツと整合性が信頼できることを確認してください。これらの接続は、抜き取りベクターとして使用される可能性があります。

ネットワーク構成のチェックリスト

境界内で Cloud Composer 環境を作成するように VPC ネットワークが適切に構成されている必要があります。確実に以下の構成要件に従ってください。

ファイアウォール ルール

Cloud Console で [VPC ネットワーク] -> [ファイアウォール] セクションに移動し、次のファイアウォール ルールが構成されていることを確認します。

  • Cloud DNS に対する VPC Service Controls のサポートの説明に従って、VPC で DNS サービスを構成します。代わりに、GKE ノードの IP 範囲からポート 53 の任意の場所への外向き(下り)トラフィックを許可できます。

  • GKE ノード IP 範囲から GKE ノード IP 範囲への外向き(下り)を許可する、すべてのポート

  • GKE ノード IP 範囲から GKE Pod IP 範囲への外向き(下り)を許可する、すべてのポート

  • GKE ノード IP 範囲から GKE マスター IP 範囲への外向き(下り)を許可する、すべてのポート

  • GKE ノードの IP 範囲から 199.36.153.4/30、ポート 443(restricted.googleapis.com)への下り(外向き)を許可。

  • GCP ヘルスチェック 130.211.0.0/22,35.191.0.0/16 からノード IP 範囲への内向き(上り)を許可する、TCP ポート 80 と 443

  • ノード IP 範囲から GCP ヘルスチェックへの外向き(下り)を許可します。TCP ポート 80 と 443

  • GKE ノードの IP 範囲から Cloud Composer ネットワーク IP 範囲、TCP ポート 3306 および 3307 への下り(外向き)を許可します。

VPC ネットワークのルールを確認、追加、更新する方法を学ぶには、ファイアウォール ルールの使用をご覧ください。

restricted.googleapis.com エンドポイントへの接続

restricted.googleapis.com エンドポイントへの接続を構成します。

  • *.googleapis.com から restricted.googleapis.com への DNS マッピングが存在していることを確認します。

  • DNS *.gcr.iogoogleapis.com エンドポイントと同様に 199.36.153.4/30 に解決されます。これを行うために、新しいゾーンを CNAME *.gcr.io -> gcr.io. A gcr.io. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7 として作成します。

  • DNS *.pkg.devgoogleapis.com エンドポイントと同様に 199.36.153.4/30 に解決されます。これを行うために、新しいゾーンを CNAME *.pkg.dev -> pkg.dev. A pkg.dev. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7 として作成します。

  • DNS *.composer.cloud.google.comgoogleapis.com エンドポイントと同様に 199.36.153.4/30 に解決されます。これを行うために、新しいゾーンを CNAME *.composer.cloud.google.com -> composer.cloud.google.com. A composer.cloud.google.com. -> 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7 として作成します。

詳細については、Google API およびサービスへのプライベート接続を設定するをご覧ください。

制限事項