VPC Service Controls - BigQuery Data Transfer Service の保護

1. はじめに

このラボでは、Cloud Storage から BigQuery データセットにデータを転送しながら、VPC Service Controls を使用して BigQuery Data Transfer Service を保護する方法について学習します。次に、Cloud Storage を保護し、プロセスを繰り返して Cloud Storage から BigQuery にデータを転送します。Cloud Storage の保護により VPC Service Controls の違反が発生します。転送を成功させるには、この違反を修正する必要があります。最後に、BigQuery を保護し、プロジェクト間でデータセットをコピーしようとします。これも修正が必要な違反を引き起こします。

このラボでは、上り(内向き)ルールと下り(外向き)ルールを使用して、上り(内向き)違反と下り(外向き)違反をそれぞれ修正する方法について説明します。また、アクセスレベルを使用して BigQuery Data Transfer の上り(内向き)違反を修正します。この Codelab の目標は次のとおりです。

  • さまざまなサービス(特に Cloud Storage、BigQuery、BigQuery Data Transfer Service)で、それぞれ上り(内向き)ルールと下り(外向き)ルールを使用して、上り(内向き)と下り(外向き)の違反を修正する方法について説明します。
  • 特定の違反が発生した理由を把握する。

2. リソースの設定と要件

始める前に

この Codelab では、次のことをすでに理解していることを前提としています。

セットアップ

初期設定は次のように設計されています。

Codelab の初期設定図

スコープ ポリシーと標準サービス境界を作成する

この Codelab では、project-2 を保護する標準サービス境界を使用します。

  • フォルダ codelab-folder レベルでスコープ設定されたスコープ アクセス ポリシーを作成します。この Codelab では、作成されたアクセス ポリシーの ID が 987654321 であると想定しています。
  • 標準境界を作成します(perimeter-2 とします)。プロジェクト project-2 を追加します。

境界 perimeter-2BigQuery Data Transfer API を制限します。

Data Transfer Service を保護する VPC SC 構成。

Cloud Storage バケットと BigQuery データセットの作成

この Codelab では、内容に関係なく、任意の CSV ファイルで十分です。主な制限は、次のことを強制するコロケーション要件に関連しています。

  • BigQuery データセットがマルチリージョンにある場合、転送するデータが含まれている Cloud Storage バケットは、同じマルチリージョンまたはマルチリージョンに含まれるロケーションに存在する必要があります。
  • データセットが特定のリージョンにある場合、Cloud Storage バケットは同じリージョンに存在する必要があります。

以降のこの Codelab では、Cloud Storage バケットと BigQuery データセットが同じリージョンまたはマルチリージョンにあることを確認します。

プロジェクト project-1 に新しい Cloud Storage バケットを作成する

新しい Cloud Storage バケットを作成するには、新しいバケットを作成するの手順に沿って操作します。

  • バケット名には、バケット名の要件を満たす名前を入力します。この Codelab では、バケットを codelab-bqtransfer-bucket と呼びます。
  • データの保存場所(バケットのロケーション)で、バケットデータを永続的に保存するロケーション タイプロケーションを選択します。この Codelab では、[us(米国の複数のリージョン)] を使用します。

Cloud Storage の作成構成。

CSV ファイルを作成する

ローカルマシンから、または Cloud Shell を使用して、次のコマンドで echo コマンドを使用してサンプル CSV ファイル codelab-test-file.csv を作成できます。

echo "name,age" > codelab-test-file.csv; \
echo "Alice,10" >> codelab-test-file.csv; \
echo "Bob,20" >> codelab-test-file.csv; \
echo "Carol,30" >> codelab-test-file.csv; \
echo "Dan,40" >> codelab-test-file.csv; \
echo "Eve,50" >> codelab-test-file.csv; \
echo "Frank,60" >> codelab-test-file.csv; \
echo "Grace,70" >> codelab-test-file.csv; \
echo "Heidi,80" >> codelab-test-file.csv;

CSV ファイルを Cloud Storage バケットにアップロードする

csv ファイルが作成されたら、次のコマンドを実行して作成したバケットにファイル オブジェクトをアップロードします。

gcloud storage cp codelab-test-file.csv gs://codelab-bqtransfer-bucket

cp コマンドを実行して、CSV ファイルを Cloud Storage にアップロードします。

バケット内のオブジェクトを一覧表示するか、次のコマンドを実行して、作成したバケットにファイルがアップロードされたことを確認できます。

gcloud storage ls --recursive gs://codelab-bqtransfer-bucket/**

project-2 で BigQuery データセットとテーブルを作成する

  1. こちらの手順に沿って、プロジェクト project-2 に BigQuery データセットを作成します。
    1. [データセット ID] に、データセットの一意の名前を入力します。この Codelab では、codelab_bqtransfer_dataset を使用します。
    2. [ロケーション タイプ] で、データセットの地理的なロケーションを選択します。この Codelab では、Cloud Storage バケットと同じロケーション(US(米国の複数のリージョン))を使用します。BigQuery データセットの作成。
  2. こちらの手順に沿って、作成したデータセット codelab_bqtransfer_dataset の下に BigQuery テーブルを作成します。
    1. [ソース] セクションの [テーブルの作成元] リストで [空のテーブル] を選択します。
    2. [テーブル] フィールドに、作成するテーブルの名前を入力します。この Codelab では、codelab-bqtransfer-table という名前を使用します。
    3. [テーブルタイプ] フィールドが [ネイティブ テーブル] に設定されていることを確認します。
    4. [スキーマ] セクションでスキーマ定義を入力します。[テキストとして編集] をクリックしてスキーマ情報を入力できます。作成した CSV ファイルの形式に準拠する次のスキーマを入力します。
    [{
    "name": "name",
    "type": "STRING",
    "mode": "NULLABLE",
    "description": "The name"
    },
    {
    "name": "age",
    "type": "INTEGER",
    "mode": "NULLABLE",
    "description": "The age"
    }]
    

費用

Cloud のリソースや API を使用するには、プロジェクト project-2project-1 で課金を有効にする必要があります。この Codelab の終了後に課金が発生しないように、使用したリソースをシャットダウンすることをおすすめします。

費用が発生するリソースは、BigQuery と Cloud Storage です。見積もり費用は、BigQuery 料金計算ツールCloud Storage 計算ツールで確認できます。

3. Cloud Storage オブジェクトから BigQuery テーブルへのデータ転送を構成する

ここでは、Cloud Storage(project-1 に配置)から BigQuery(project-2 に配置)に転送する Data Transfer Service(project-2 内)を作成し、project-2BigQuery Data Transfer Service を VPC Service Controls で保護します。BigQuery Data Transfer Service のみを保護する(BigQuery と Cloud Storage も保護しない)と、プリンシパルはデータ転送の作成と管理(データ転送の手動開始など)のみに制限されます。

Cloud Storage からのデータ転送を設定する

データ移転を作成する手順は次のとおりです。

  1. project-2Google Cloud コンソールの [BigQuery] ページに移動します。
  2. [データ転送] をクリックします。

Data Transfer Service ページの VPC SC 違反。

[データ転送] ページにアクセスする際の違反を調査する

Google Cloud コンソールで、VPC Service Controls の一意の識別子を確認できます。同じ識別子を使用してログをフィルタし、違反の詳細を特定します(OBSERVED_VPCSC_DENIAL_UNIQUE_ID は、観測された拒否 ID に置き換えます)。

protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.metadata.vpcServiceControlsUniqueId="OBSERVED_VPCSC_DENIAL_UNIQUE_ID"

検出された違反は NO_MATCHING_ACCESS_LEVEL です。これは、次のような詳細を含む上り(内向き)違反です。

ingressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
targetResource: "projects/[PROJECT2_NUMBER]"
}]
violationReason: "NO_MATCHING_ACCESS_LEVEL"
callerIp: "USER_PUBLIC_IP_ADDRESS"
resource: {
labels: {
method: "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferConfigs"
project_id: "project-2"
service: "bigquerydatatransfer.googleapis.com"
}
type: "audited_resource"
}

[データ転送] ページにアクセスすると、構成済みのデータ転送が一覧表示されるため、ListTransferConfigs メソッドの違反となります。

bigquerydatatransfer.googleapis.com サービスの違反を修正する

アクセスレベルまたは上り(内向き)ルールを使用して、上り(内向き)違反を修正できます。この Codelab では、拒否されたユーザー ID で構成された上り(内向き)ルールを使用して、bigquerydatatransfer.googleapis.com サービスとすべてのメソッドへのアクセスを許可します。

Data Transfer メソッドを許可する上り(内向き)ルール。

上り(内向き)ルールが設定されると、[データ転送] ページに問題なくアクセスできるようになります。

Cloud Storage からのデータ転送の設定を再開する

前の手順で [データ転送] ページ([データ転送] をクリックした後)に移動したら、次の手順に進みます。

  1. [+ 転送を作成] をクリックします。
  2. [ソースタイプ] セクションで、[ソース] として [Google Cloud Storage] を選択します。
  3. [転送構成名] セクションの [表示名] に、転送名(例: Codelab Transfer)を入力します。
  4. [スケジュール オプション] セクションで、次の操作を行います。
    1. [繰り返しの頻度] で、15 分などを選択します。
    2. [すぐに開始可能] を選択してください。選択しないと、構成した繰り返し頻度の後にのみデータ転送が開始されます。
  5. [転送先の設定] セクションの [宛先データセット] で、データを保存するために作成したデータセットを選択します。codelab_bqtransfer_dataset
  6. [データソースの詳細] セクションで、次の操作を行います。
    1. [Destination table] に宛先テーブルの名前を入力します。宛先テーブルは、テーブルの命名規則に従う必要があります。この Codelab では、先ほど作成したテーブル codelab-bqtransfer-table を使用します。
    2. [Cloud Storage URI] に Cloud Storage URI を入力します。この Codelab では、作成したバケットとファイル codelab-bqtransfer-bucket/codelab-test-file.csv を使用します。
    3. [書き込み設定] で、APPEND をそのままにするか、MIRROR を選択します。
    4. 転送後にファイルを削除するオプションは選択しないでください(同じファイルを複数回再利用するため)。ただし、複数のファイルを使用し、転送後にソースファイルを削除することはできます)
    5. [ファイル形式] で [CSV] を選択します。
    6. [転送オプション] の [CSV] で、[フィールド区切り文字] にカンマ(",")を入力します。
  7. [サービス アカウント] メニューで、Google Cloud プロジェクトに関連付けられたサービス アカウントからサービス アカウントを選択します。
    1. 選択したサービス アカウントには、ストレージ バケットをホストするプロジェクトの Cloud Storage に対する必要な権限(この Codelab では project-1)が付与されている必要があります。
    2. この Codelab では、project-2 で作成したサービス アカウントを codelab-sa@project-2.iam.gserviceaccount.com として使用します。
  8. [保存] をクリックします。

スケジュール オプションとして [今すぐ開始] を選択したため、[保存] を選択するとすぐに最初の転送が開始されます。

データ転送サービスのステータスを確認する

構成されたデータ移転のステータスを確認するには:

Data Transfer Service ジョブ。

[表示名] の下の Codelab Transfer をクリックすると、これまでに実行されたすべての実行のリストが表示されます。

Data Transfer Service の実行の詳細。

データ転送の実行は成功し、手動でトリガーされたデータ転送とスケジュールされたデータ転送の両方で VPC Service Controls の違反はありません。手動でトリガーされた転送でのみ、転送を手動で開始するプリンシパルへのアクセスを許可する上り(内向き)ルールが必要です。

4. 手動でトリガーされたデータ転送の IP アドレス制限

現在構成されている上り(内向き)ルールでは、構成された ID が任意の IP アドレスからデータ移転を手動でトリガーできます。

アクセスレベルを使用すると、VPC Service Controls は、特定の API リクエストの属性(特に次の属性)で許可されるアクセスを制限できます。

  • IP サブネットワーク: リクエストが特定の IP アドレスから送信されたものかどうかを確認します。
  • リージョン: リクエストが特定のリージョンから送信されたものかどうかを確認します。リージョンは IP アドレスの位置情報によって決まります。
  • プリンシパル: リクエストが特定のアカウントから送信されたものかどうかを確認します。
  • デバイス ポリシー: リクエストが特定の要件を満たすデバイスから送信されたものかどうかを確認します。

すでに構成されている上り(内向き)ルールとともにこれらの属性の検証を適用するには、目的の属性を許可するアクセスレベルを作成し、作成したアクセスレベルを上り(内向き)ルールのソースとして追加する必要があります。

ユーザーの IP アドレスによる VPC SC で保護されたアクセス この図は、3 つのシナリオで 2 つのプリンシパル(user@example.comuser2@example.com)によって開始されたアクセスを示しています。VPC Service Controls がソース(上り(内向き)アクセスレベル)と ID 属性を AND 条件として評価し、両方が一致する必要があることを示しています。

  1. ユーザー user@example.com は、アクセスレベルで許可されている IP アドレスからアクセスしようとすると、アクセスが許可されます。これは、IP アドレスとユーザー アカウントが上り(内向き)ルールの構成と一致するためです。
  2. ユーザー user@example.com は、アカウントが Ingress ルールで構成されているにもかかわらず、IP アドレスが許可された IP アドレスと一致しない場合、アクセスがブロックされます。
  3. ユーザー user2@example.com は、許可された IP アドレスからのアクセスを試みましたが、アカウントが上り(内向き)ルールで許可されていないため、アクセスがブロックされます。

アクセスレベルを作成する

IP アドレスでアクセスを制限するアクセスレベルを作成するには:

  1. Google Cloud コンソールで [Access Context Manager] ページを開きます。
    • プロンプトが表示されたら、フォルダ codelab-folder を選択します。
  2. [Access Context Manager] ページの上部にある [アクセスレベルを作成] をクリックします。
  3. [新しいアクセスレベル] ペインで、新しいアクセスレベルにタイトルを付けます。この Codelab では、これを project_2_al と呼びます。
  4. [条件] セクションで、[IP サブネットワーク] の前にある + をクリックします。
  5. [IP サブネットワーク] ボックスで、[パブリック IP] を選択します。

上り(内向き)ルールにアクセスレベルを追加する

上り(内向き)ルール内で、アクセスレベルは sources フィールドで参照されます。これは、上り(内向き)ルールのリファレンスに記載されているように、必須フィールドです。リソースへの上り(内向き)を許可するために、VPC Service Controls は sources 属性と identityType 属性を AND 条件として評価します。上り(内向き)ルールでは、データ移転構成で指定されたサービス アカウントではなく、データ移転を手動でトリガーするプリンシパルの ID が使用されます。

アクセスレベルで構成された上り(内向き)ルール。

IP アドレスでアクセスを制限する構成で転送を再実行する

適用された構成の有効性を評価するには、次のシナリオを使用して転送を再度トリガーします。

  • 上り(内向き)ルールで参照されるアクセスレベルで許可されている範囲の IP アドレスを使用する。
  • 構成で許可されていない IP アドレスを使用している

許可された IP アドレスからのアクセスは成功し、許可されていない IP アドレスからのアクセスは失敗して、VPC Service Controls の違反が発生します。

別の IP アドレスを使用してテストする簡単な方法の 1 つは、Google Cloud コンソールを使用している間に割り当てられた IP アドレスを許可し、Cloud Shell を使用している間にテストすることです。

Cloud Shell で次のコマンドを実行して、RUN_TIME と RESOURCE_NAME の両方を置き換えて、転送を手動でトリガーします。

bq mk \
  --transfer_run \
  --run_time='RUN_TIME' \
  RESOURCE_NAME

たとえば、次のサンプル コマンドは、プロジェクト 1234567890 の転送 12345678-90ab-cdef-ghij-klmnopqrstuv 構成をすぐに実行します。

NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ");
bq mk \
  --transfer_run \
  --run_time=$NOW \
  projects/1234567890/locations/us/transferConfigs/12345678-90ab-cdef-ghij-klmnopqrstuv

IP アドレスが許可されていないため、出力には VPC Service Controls の違反が示されています。

許可されていない IP アドレスからの VPC SC 違反。

違反が検出されたのは DataTransferService.StartManualTransferRuns メソッドです。

ingressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
targetResource: "projects/[PROJECT2_NUMBER]"
targetResourcePermissions: [0: "vpcsc.permissions.unavailable"]
}]
violationReason: "RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER"
resource: {
labels: {
method: "google.cloud.bigquery.datatransfer.v1.DataTransferService.StartManualTransferRuns"
project_id: "project-2"
service: "bigquerydatatransfer.googleapis.com"
}
type: "audited_resource"
}
severity: "ERROR"

5. Cloud Storage サービスを保護しながらデータ転送を開始する

Cloud Storage から BigQuery への転送を行うため、VPC Service Controls で保護されているサービスに Cloud Storage を追加し、転送が成功するかどうかを確認します。

perimeter-2 構成で、BigQuery Data Transfer API とともに、制限付きサービスの 1 つとして Cloud Storage API を追加します。

Cloud Storage を保護する VPC SC 構成。

Cloud Storage API を保護したら、次のスケジュールされたデータ移転を待つか、次の手順で移転を手動でトリガーします。

  1. Google Cloud Console の [BigQuery] ページに移動します。
  2. [データ転送] をクリックします。
  3. リストから転送を選択します。この Codelab では、Codelab Transfer 転送を使用します。
  4. [今すぐ転送を実行] をクリックします。
  5. [OK] をクリックします。

別の転送が開始されます。表示されない場合は、ページを更新してください。今回は、VPC Service Controls の違反により転送が失敗します。

BigQuery データセットのコピーに関する VPC SC 違反。

Cloud Storage の VPC Service Controls の違反を調査する

転送の概要に表示されている vpcServiceControlsUniqueIdentifier を使用して監査ログをフィルタします。

検出された違反は、次の詳細を含む RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER 下り(外向き)違反です。

  • プリンシパルは、Data Transfer Service で構成されたサービス アカウントです(手動でトリガーされた場合でも、スケジュールされたデータ転送を実行している場合でも、拒否されたプリンシパルは同じになります)。
  • 影響を受けるサービスは Cloud Storage です
  • リクエストの送信元は、Data Transfer Service が構成されているプロジェクトです。project-2
  • ターゲット プロジェクトは、Cloud Storage オブジェクトが配置されているプロジェクトです(project-1)。
principalEmail: "codelab-sa@project-2.iam.gserviceaccount.com"
egressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
source: "projects/[PROJECT2_NUMBER]"
sourceType: "Resource"
targetResource: "projects/[PROJECT1_NUMBER]"
targetResourcePermissions: [0: "storage.objects.get"]
}]
labels: {
method: "google.storage.objects.get"
project_id: "project-2"
service: "storage.googleapis.com"
}

Cloud Storage 下り(外向き)違反を修正する

下り(外向き)違反を修正するには、拒否されたサービス アカウントから Cloud Storage オブジェクトを含むプロジェクトへのトラフィックを許可する下り(外向き)ルールを使用する必要があります。

codelab サービス アカウントを許可する下り(外向き)ルール。

サービス境界 perimeter-2 を変更したら、プロセスを繰り返して転送を再度トリガーします。転送にエラーは表示されません。

下り(外向き)ルールを構成した後の Data Transfer 実行の詳細。

6. BigQuery データセットを project-2 から project-1 にコピーする

project-1 の Cloud Storage バケットから project-2 の BigQuery データセットにデータを転送できることを確認したら、project-2 から project-1BigQuery データセットをコピーします。このとき、BigQuery API は VPC Service Controls によって保護されています。

データセットを作成してコピーするには、bq ツールを使用する bq mk コマンドを使用します。

project-1 に宛先データセットを作成する

データセットをコピーする前に、コピー先データセットを作成する必要があります。宛先データセットを作成するには、次のコマンドを実行します。このコマンドは、ロケーション us を使用して、プロジェクト project-1copied_dataset という名前のデータセットを作成します。

bq mk \
  --dataset \
  --location=us \
  project-1:copied_dataset

VPC Service Controls で project-2 の BigQuery サービスを保護する

境界 perimeter-2 の構成を変更し、BigQuery Data Transfer サービスと Cloud Storage サービスとともに、保護されたサービスとして BigQuery API を追加します。

Cloud Storage API を保護するように構成された VPC SC。

データセットのコピーを開始する

データセットをコピーするには、次の bq mk コマンドを実行します。このコマンドは、プロジェクト project-2 のデータセット codelab_bqtransfer_datasetproject-1 のデータセット copied_dataset にコピーし、データセットの内容(存在する場合)を上書きします。

bq mk \
  --transfer_config \
  --project_id=project-1 \
  --target_dataset=copied_dataset \
  --data_source=cross_region_copy \
  --display_name='Dataset from project-2 to project-1' \
  --params='{
     "source_dataset_id":"codelab_bqtransfer_dataset",
     "source_project_id":"project-2",
     "overwrite_destination_table":"true"
     }'

コマンドは正常に実行されます。同時に、転送構成が正常に作成され、データセットのコピー オペレーションが開始されます。データセット自体のコピーは、VPC Service Controls の違反で失敗します。

対応する VPC Service Controls 違反の詳細を確認するには、次のログクエリを使用して project-2(ソース データセット プロジェクト)のログを確認します。ログクエリは、コピーされるデータセットの BigQuery サービスとリソース名(codelab_bqtransfer_dataset)でログをフィルタします。

resource.labels.service="bigquery.googleapis.com"
protoPayload.metadata.resourceNames:"datasets/codelab_bqtransfer_dataset"

検出された VPC Service Controls の違反は、project-2 から project-1 への下り(外向き)違反です。

egressViolations: [
  0: {
   servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
   source: "projects/[PROJECT-2-NUMBER]"
   sourceType: "Resource"
   targetResource: "projects/[PROJECT-1-NUMBER]"
   targetResourcePermissions: [
     0: "bigquery.transfers.update"
     1: "bigquery.transfers.get"
     2: "bigquery.jobs.create"
     ]
   }
]
method: "bigquery.tables.getData"
service: "bigquery.googleapis.com"

BigQuery の違反をすべて修正して、データセットのコピーを再度開始する

下り(外向き)違反を修正するには、拒否されたプリンシパルを許可する下り(外向き)ルールを作成する必要があります。拒否されたプリンシパルは、mk コマンドを実行しているプリンシパルです。

すべての BigQuery メソッドへのアクセスを許可する下り(外向き)ルール。

下り(外向き)ルールが設定されたら、境界 perimeter-2 で同じコマンドを実行してデータセットをコピーします。今回は、VPC Service Controls の違反なしでデータセットが正常にコピーされるはずです。

7. クリーンアップ

サービスが使用されていない場合、VPC Service Controls の使用に追加料金は発生しませんが、このラボで使用した設定をクリーンアップすることが効果的な手法です。VM インスタンスや Cloud プロジェクトを削除して、料金が発生しないようにすることもできます。Cloud プロジェクトを削除すると、そのプロジェクト内で使用されているすべてのリソースに対する課金が停止します。

  • Cloud Storage バケットを削除するには、次の手順を行います。
    • Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
    • 削除するバケットのチェックボックスをオンにして、[削除] をクリックします。
    • 上に重なったウィンドウで、バケットとそのコンテンツを削除することを確認します。Cloud Storage バケットの削除。
  • BigQuery データセットを削除するには、次の操作を行います。
    • Google Cloud コンソールで [BigQuery] ページに移動します。
    • [エクスプローラ] ペインでプロジェクトを開いて、データセットを選択します。
    • その他メニューを開き、[削除] をクリックします。
    • [データセットの削除] ダイアログで、フィールドに「delete」と入力してから、[削除] をクリックします。BigQuery データセットの削除。
  • サービス境界を削除するには、次の操作を行います。
    • Google Cloud コンソールで、アクセス ポリシーがスコープ設定されているレベル(この場合はフォルダレベル)で、[セキュリティ]、[VPC Service Controls] の順に選択します。
    • [VPC Service Controls] ページで、削除する境界に対応するテーブル行の Delete Icon を選択します。
  • アクセスレベルを削除するには、次の操作を行います。
    • Google Cloud コンソールで、フォルダ スコープの [Access Context Manager] ページを開きます。
    • グリッドで、削除するアクセスレベルの行を特定し、その他メニューを選択して、[削除] を選択します。
  • プロジェクトをシャットダウンするには、次の操作を行います。
    • Google Cloud コンソールで、削除するプロジェクトの [IAM と管理] の [設定] ページに移動します。
    • [IAM と管理の設定] ページで、[シャットダウン] を選択します。
    • プロジェクト ID を入力し、[このままシャットダウン] を選択します。

8. 完了

この Codelab では、VPC Service Controls の境界を作成し、適用して、トラブルシューティングを行いました。

その他の情報

次のシナリオも確認できます。

  • BigQuery、BigQuery Data Transfer Service、Cloud Storage も保護する別の境界に project-1 を追加します。
  • 他のサポートされているソースから BigQuery データ転送を実行します。
  • ユーザーのアクセスを、アクセス元の地域やデバイス ポリシーなどの他の属性で制限します。

ライセンス

この作業はクリエイティブ・コモンズの表示 2.0 汎用ライセンスにより使用許諾されています。