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 テーブルへのデータ転送を構成する

次に、project-2 の VPC Service Controls で BigQuery Data Transfer Service を保護しながら、Cloud Storage(project-1 にある)から BigQuery(project-2 にある)に転送する Data Transfer Service(project-2 にある)を作成します。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 の一意の識別子を確認できます。同じ ID を使用してログをフィルタし、違反の詳細を特定します(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 サービスとすべてのメソッドへのアクセスを許可します。

データ転送方法を許可する上り(内向き)ルール。

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

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. [Transfer Options] の [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. アカウントが Ingress ルールで構成されているにもかかわらず、ユーザー user@example.com の IP アドレスが許可された IP アドレスと一致しない場合、アクセスがブロックされます。
  3. ユーザー user2@example.com は、許可された IP アドレスからアクセスしようとしたにもかかわらず、そのアカウントが上り(内向き)ルールで許可されていないため、アクセスがブロックされます。

アクセスレベルを作成

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

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

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

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

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

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

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

  • Ingress ルールで参照されるアクセスレベルで許可されている範囲内の 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 Service を保護しながらデータ転送を開始する

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 データセットにデータを転送できることを確認したら、BigQuery API が VPC Service Controls によって保護されている間に、project-2 から project-1BigQuery データセットをコピーします。

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

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

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

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 汎用ライセンスにより使用許諾されています。