Integration Connectors の VPC Service Controls の設定

VPC Service Controls では、Integration Connectors の Google Cloud サービスの周囲にセキュリティ境界を定義できます。サービスのセキュリティ境界を使用すると、VPC Service Controls の境界内でデータを制限し、データ漏洩のリスクを軽減できます。VPC Service Controls に慣れていない場合は、次の情報を確認することをおすすめします。

このドキュメントでは、VPC Service Controls の境界を使用して、Integration Connectors サービス(connectors.googleapis.com)へのアクセスを制限する方法について説明します。境界を設定したら、他の Google Cloud サービスまたはユーザーが connectors.googleapis.com サービスにアクセスできるかどうかを決定するポリシーを構成できます。

考慮事項

  • 接続が Google Cloud リソースに接続する場合、そのリソースは VPC Service Controls の境界内からアクセスできる必要があります。
  • パブリック エンドポイントへの既存の接続がある場合は、VPC Service Controls の境界を設定する前に、この接続が、バックエンド システムへの接続に PSC(Private Service Connect)アタッチメントを使用していることを確認します。PSC アタッチメントを使用しない場合、VPC Service Controls の境界を設定した後、パブリック エンドポイントへの既存の接続に失敗します。
  • 接続が Google Cloud 以外のリソースに接続する場合、接続の宛先は PSC アタッチメントである必要があります。PSC 接続がない接続は失敗します。
  • Google Cloud プロジェクトに VPC Service Controls の境界を設定している場合、プロジェクトでイベント サブスクリプション機能を使用することはできません。

準備

VPC Service Controls の境界の構成に必要な権限があることを確認します。VPC Service Controls の構成に必要な IAM ロールの一覧を表示するには、VPC Service Controls のドキュメントの IAM を使用したアクセス制御をご覧ください。

VPC Service Controls の境界を作成する

VPC Service Controls 境界を作成するには、Google Cloud consolegcloud コマンド、または accessPolicies.servicePerimeters.create API のいずれかを使用します。詳細については、サービス境界を作成するをご覧ください。

次の手順は、gcloud コマンドを使用して、ユーザー アクセスが有効な VPC Service Controls の境界を作成する方法を示しています。

  1. 境界へのアクセスを許可するユーザーの詳細を含む access.yaml ファイルを作成します。次に例を示します。
    - members:
        - user:USER_EMAIL
  2. 組織のアクセス ポリシー ID を取得するには、次のコマンドを使用します。
  3. gcloud access-context-manager policies list --organization=ORGANIZATION_ID

    このコマンドは、組織のすべてのポリシーを一覧表示します。リストから、VPC Service Controls の境界を作成するポリシーを選択します。

    Google Cloud コンソールを使用して、組織のリソース ID を表示できます。詳細については、組織リソース ID の取得をご覧ください。

  4. ユーザーのアクセスレベルを作成します。
    gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
    --title "CUSTOM_TITLE" \
    --basic-level-spec access.yaml \
    --policy=POLICY_ID

    このコマンドの POLICY_ID は、前のステップで取得した値です。

  5. Google Cloud プロジェクトのグローバル設定で、vpcsc 属性の値を true に設定します。
    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"vpcsc": true}' \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings

    このコマンドは、オペレーション ID を返し、長時間実行オペレーション(LRO)を開始します。完了するまでに時間がかかることがあります。LRO が完了するまで待ちます。次のコマンドを使用して、オペレーションの進行状況を追跡できます。

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
  6. VPC Service Controls の境界を作成し、ユーザーにアクセス権を付与します。
    gcloud access-context-manager perimeters create PERIMETER_NAME \
    --title="PERIMETER_TITLE" \
    --resources=projects/PROJECT_ID \
    --restricted-services=connectors.googleapis.com \
    --access_levels=ACCESS_LEVEL_NAME

    このコマンドが完了するまでに時間がかかります。その間、新しいターミナルで他のタスクを実行できます。

    アクセスレベルを更新して、既存の境界に connectors.googleapis.com サービスを追加する場合は、次のコマンドを実行します。
    gcloud access-context-manager perimeters update PERIMETER_NAME \
    --add-restricted-services="connectors.googleapis.com" \
    --add-access-levels=ACCESS_LEVEL_NAME \
    --policy=POLICY_ID

境界を確認する

境界を確認するには、gcloud access-context-manager perimeters describe PERIMETER_NAME コマンドを使用します。次に例を示します。

gcloud access-context-manager perimeters describe PERIMETER_NAME

詳細については、サービス境界の管理をご覧ください。

VPC Service Controls の境界からプロジェクトを削除する

VPC Service Controls の境界から Google Cloud プロジェクトを削除するには、次の手順を行います。

  1. Google Cloud プロジェクトのグローバル設定で、vpcsc 属性の値を false に設定します。
    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"vpcsc": false}' \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/settings

    このコマンドは、オペレーション ID を返し、長時間実行オペレーション(LRO)を開始します。完了するまでに時間がかかることがあります。LRO が完了するまで待ちます。次のコマンドを使用して、オペレーションの進行状況を追跡できます。

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/operations/OPERATION_ID
  2. VPC Service Controls の境界からプロジェクトを削除します。
    gcloud access-context-manager perimeters update accessPolicies/POLICY_ID/servicePerimeters/PERIMETER_NAME

次のステップ

VPC Service Controls でデータをどのように保護するか確認する。