VPC Service Controls を構成する

VPC Service Controls は、データの引き出しを防ぐ境界を設定できる Google Cloud 機能 です。 このガイドでは、Dataform で VPC Service Controls を使用して、サービスのセキュリティを高める方法について説明します。

VPC Service Controls を使用することで、Identity and Access Management(IAM)によって提供される保護とは独立した、Google Cloud サービスに対する防御が強化されます。

VPC Service Controls の詳細については、VPC Service Controls の概要をご覧ください。

制限事項

Dataform は、次の制限付きで VPC Service Controls をサポートしています。

セキュリティ上の考慮事項

Dataform の VPC Service Controls 境界を設定する場合は、カスタム サービス アカウントに付与された権限を確認して、セキュリティ アーキテクチャと一致していることを確認してください。

カスタム サービス アカウントに付与する権限によっては、VPC Service Controls に関係なく、このサービス アカウントがサービス アカウントが属するプロジェクトの BigQuery または Secret Manager のデータにアクセスできる可能性があります。このような場合、VPC Service Controls 境界で Dataform を制限しても、BigQuery または Secret Manager との通信はブロックされません。

Dataform リポジトリから発生するワークフロー呼び出しを実行する必要がない場合は、BigQuery との通信をブロックする必要があります。BigQuery との通信のブロックの詳細については、 BigQuery との通信をブロックするをご覧ください。

Dataform リポジトリがサードパーティの Git リポジトリに接続されていない場合は、Secret Manager との通信をブロックする必要があります。 Secret Manager との通信のブロックの詳細については、 Secret Manager との通信をブロックするをご覧ください。

始める前に

Dataform の VPC Service Controls サービス境界を構成する前に、 リモート リポジトリを制限する ガイドに沿って dataform.restrictGitRemotes 組織のポリシーを設定します。

dataform.restrictGitRemotes 組織のポリシーは、Dataform の使用時に VPC Service Controls のチェックが適用され、Dataform Git リポジトリへのサードパーティのアクセスが制限されるようにするために必要です。

必要なロール

VPC Service Controls サービス境界の構成に必要な権限を取得するには、プロジェクトに対するAccess Context Manager 編集者 roles/accesscontextmanager.policyEditor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

VPC Service Controls の権限の詳細については、 IAM によるアクセス制御をご覧ください。

VPC Service Controls を構成する

VPC Service Controls サービス境界を使用して、次の方法で Dataform を制限できます。

  • BigQuery を制限する既存のサービス境界に Dataform を追加します。
  • Dataform と BigQuery の両方を制限するサービス境界を作成します。

BigQuery を制限するサービス境界に Dataform を追加するには、VPC Service Controls ドキュメントの サービス境界を更新する ガイドに沿って操作します。

Dataform と BigQuery の両方を制限する新しいサービス境界を作成するには、VPC Service Controls ドキュメントの サービス境界を作成する ガイドに沿って操作します。

省略可: BigQuery との通信をブロックする

カスタム サービス アカウントは、次の権限とロールを使用して BigQuery と通信します。

  • カスタム サービス アカウントに付与された bigquery.jobs.create 権限。
  • カスタム サービス アカウントに関してデフォルトの Dataform サービス エージェントに付与されている サービス アカウント トークン作成者ロールroles/iam.serviceAccountTokenCreator)。

カスタム サービス アカウントと BigQuery 間の通信は、次のいずれかの方法でブロックできます。

省略可: Secret Manager との通信をブロックする

Dataform は、secretmanager.versions.access 権限を使用して、個々の Secret Manager シークレットにアクセスします。Dataform リポジトリをサードパーティ リポジトリに接続するときに、選択した Secret Manager シークレットに対してデフォルトの Dataform サービス エージェントにこの権限を付与します。

Dataform と Secret Manager 間の通信をブロックするには、デフォルトの Dataform サービス エージェントからすべてのシークレットへのアクセスを取り消す必要があります。

デフォルトの Dataform サービス エージェントから Secret Manager シークレットへのアクセスを取り消すには、Secret Manager ドキュメントの シークレットへのアクセスを管理する ガイドに沿って操作します。選択したシークレットに関してデフォルトの Dataform サービス エージェントに付与されている secretmanager.versions.access 権限を含むすべての事前定義ロールとカスタムロールを取り消す必要があります。

secretmanager.versions.access 権限は、次の 事前定義された Secret Manager IAM ロールに含まれています。

次のステップ