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)へのアクセスを制限する方法について説明します。境界を設定したら、connectors.googleapis.com サービスにアクセスできる他の Google Cloud サービスまたはユーザーを決定するポリシーを構成できます。

考慮事項

  • 接続を 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 の境界を作成するポリシーを選択します。

    組織のリソース ID は、Google Cloud コンソールを使用して確認できます。詳細については、組織リソース 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 は完了するまでに時間がかかることがあります。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 は完了するまでに時間がかかることがあります。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 でデータをどのように保護するか確認する。