Google API 用の Private Service Connect

1. はじめに

Private Service Connect を使用すると、VPC ネットワーク内のグローバル内部 IP アドレスを使用してプライベート エンドポイントを作成し、Google API にアクセスできます。これらの内部 IP アドレスには、storage-pscendpoint.p.googleapis.com や bigtable-adsteam.p.googleapis.com などの意味のある名前で DNS 名を割り当てることができます。storage.googleapis.com などの公開サービス エンドポイントに API リクエストを送信する代わりに、VPC ネットワークの内部にある非公開の Private Service Connect エンドポイントにリクエストを送信できます。

これらの名前と IP アドレスは VPC ネットワークの内部用で、Cloud VPN トンネルまたは Cloud Interconnect アタッチメント(VLAN)経由で接続しているオンプレミス ネットワークでも使用できます。

エンドポイントに配信されるトラフィックを制御し、トラフィックを Google Cloud 内にとどめることができます。

学習内容

  • Private Service Connect のユースケース
  • ネットワークの要件
  • サポートされている API
  • Private Service Connect エンドポイントを作成する
  • Cloud Storage バケットを作成する
  • Cloud DNS プライベート ゾーンを作成して更新する
  • 公共の googleapis にアクセスするための NAT GW を作成する
  • BOTO 構成ファイルを作成して更新する
  • PSC サービス エンドポイントに対して解決された VM1 で gsutil list を実行する
  • パブリック googleapis.com に対して解決された VM2 で gsutil list を実行する
  • Tcpdump を使用して DNS 解決を検証する

必要なもの

  • DNS、nano または vi エディタに関する知識

2. Private Service Connect のユースケース

同じ VPC ネットワーク内に複数の Private Service Connect エンドポイントを作成できます。特定のエンドポイントに対する帯域幅に上限はありません。Private Service Connect エンドポイントはグローバル内部 IP アドレスを使用するため、VPC ネットワーク内のすべてのリソースで使用できます。

複数のエンドポイントが存在する場合、Cloud Router とファイアウォール ルールを使用して異なるネットワーク パスを指定できます。

  • Private Service Connect エンドポイント経由の Google API へのアクセスを一部の VM に許可し、残りの VM には許可しないように、ファイアウォール ルールを作成できます。
  • インターネットへのトラフィックを許可しないファイアウォール ルールを VM インスタンスに設定できます。この場合、Private Service Connect エンドポイントに送信されたトラフィックは Google に送信されます。
  • Cloud VPN トンネルまたは Cloud Interconnect アタッチメント(VLAN)を使用して VPC に接続されているオンプレミス ホストがある場合、一部のリクエストをトンネルまたは VLAN 経由で送信し、残りのリクエストをインターネット経由で送信できます。この構成を行うと、限定公開の Google アクセスでサポートされていないサービス(Google ブックスなど)でトンネルや VLAN を回避できます。この構成を作成するには、Private Service Connect エンドポイントを作成し、Cloud Router のカスタム ルート アドバタイズを使用して Private Service Connect エンドポイントの IP アドレスをアドバタイズします。さらに、Cloud DNS インバウンド転送ポリシーを有効にします。一部のリクエストは、Private Service Connect エンドポイントの名前を使用して Cloud VPN トンネルまたは Cloud Interconnect アタッチメント(VLAN)経由で送信され、残りのリクエストはデフォルトの DNS 名を使用してインターネット経由で送信されます。
  • 複数の Cloud Interconnect アタッチメント(VLAN)を使用して、オンプレミス ネットワークを VPC ネットワークに接続する場合、図 2 のように、オンプレミスからの一部のトラフィックを VLAN 経由で送信し、残りのトラフィックを VLAN 以外で送信できます。これにより、Google ではなく広域ネットワークを使用し、地理的要件に合わせてデータの移動を制御できます。この構成を作成するには、2 つの Private Service Connect エンドポイントを作成します。最初の VLAN を管理する Cloud Router の BGP セッションで、最初のエンドポイントにカスタムルート アドバタイズを作成します。2 番目の VLAN を管理する Cloud Router の BGP セッションで、2 番目のエンドポイントに別のカスタム ルート アドバタイズを作成します。Private Service Connect エンドポイント名を使用するように構成されたオンプレミス ホストは、対応する Cloud Interconnect アタッチメント(VLAN)経由でトラフィックを送信します。
  • アクティブ/アクティブ トポロジでは、複数の Cloud Interconnect アタッチメント(VLAN)を使用できます。VLAN を管理する Cloud Router の BGP セッションで、カスタムルート アドバタイズを使用して同じ Private Service Connect エンドポイントの IP アドレスをアドバタイズすると、オンプレミス システムからエンドポイントに送信されるパケットは、ECMP を使用して VLAN 間でルーティングされます。

5e142c2fbf6f010e.png

図 1. Private Service Connect、Cloud Router、オンプレミス ホストを構成することで、Google API へのトラフィックの送信に使用する Cloud Interconnect アタッチメント(VLAN)を制御できます。

3. ネットワークの要件

Private Service Connect を使用するには、外部 IP アドレスのない仮想マシン(VM)インスタンスのプライマリ インターフェースが、限定公開の Google アクセスが有効になっているサブネット内に存在する必要があります。

外部 IP アドレスを持つ VM は、そのサブネットで限定公開の Google アクセスが有効かどうかに関係なく、Private Service Connect エンドポイントを使用して Google API とサービスにアクセスできます。Private Service Connect エンドポイントへの接続は Google のネットワーク内にとどまります。

Private Service Connect エンドポイントは、ピアリングされた VPC ネットワークからアクセスできない。

サポートされている API

Private Service Connect エンドポイントを作成するときに、アクセスする API のバンドル(all-apis または vpc-sc)を選択します。

API バンドルを使用すると、限定公開の Google アクセス VIP で利用できるのと同じ API にアクセスできます。

  • all-apis バンドルを使用すると、private.googleapis.com と同じ API にアクセスできます。
  • vpc-sc バンドルを使用すると、restricted.googleapis.com と同じ API にアクセスできます。

4. コードラボのトポロジーとユースケース

2ac275eb86f26338.png

図 1 - Codelab トポロジ

Codelab のユースケース -

お客様は、クラウド ストレージのデータ転送にプライベート(相互接続)とパブリックの googleapis アクセスを組み合わせて使用する必要があります。お客様の要件を満たすため、一意の /32 アドレス、BOTO 構成、DNS レコードの更新で構成される Private Service Connect をデプロイします。仮想マシン 1 は PSC を使用して Cloud Storage バケットにアクセスしますが、VM2 は NAT GW を介してパブリック googleapis.com IP 範囲を使用します。

ラボのすべての側面は Google Cloud Platform 内にデプロイされますが、同じユースケースはトラフィック分離を必要とするハイブリッド クラウド デプロイにも適用できます。

5. 設定と要件

セルフペース型の環境設定

  1. Cloud コンソールにログインして、新しいプロジェクトを作成するか、既存のプロジェクトを再利用しますGmail アカウントも Google Workspace アカウントもまだお持ちでない場合は、アカウントを作成してください。

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

プロジェクト ID を忘れないようにしてください。プロジェクト ID はすべての Google Cloud プロジェクトを通じて一意の名前にする必要があります(上記の名前はすでに使用されているので使用できません)。以降、このコードラボでは PROJECT_ID と呼びます。

  1. 次に、Google Cloud リソースを使用するために、Cloud Console で課金を有効にする必要があります。

このコードラボを実行しても、費用はほとんどかからないはずです。このチュートリアル以外で請求が発生しないように、リソースのシャットダウン方法を説明する「クリーンアップ」セクションの手順に従うようにしてください。Google Cloud の新規ユーザーは、300 米ドル分の無料トライアル プログラムをご利用いただけます。

Cloud Shell の起動

Google Cloud はノートパソコンからリモートで操作できますが、この Codelab では、Google Cloud Shell(Cloud 上で動作するコマンドライン環境)を使用します。

GCP Console で右上のツールバーにある Cloud Shell アイコンをクリックします。

bce75f34b2c53987.png

プロビジョニングと環境への接続にはそれほど時間はかかりません。完了すると、次のように表示されます。

f6ef2b5f13479f3a.png

この仮想マシンには、必要な開発ツールがすべて用意されています。永続的なホーム ディレクトリが 5 GB 用意されており、Google Cloud で稼働します。そのため、ネットワークのパフォーマンスと認証機能が大幅に向上しています。このラボでの作業はすべて、ブラウザから実行できます。

6. 始める前に

API を有効にする

Cloud Shell で、プロジェクト ID が設定されていることを確認します。

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

必要なサービスをすべて有効にする

gcloud services enable compute.googleapis.com
gcloud services enable servicedirectory.googleapis.com
gcloud services enable dns.googleapis.com

7. VPC ネットワークを作成する

VPC ネットワーク

Cloud Shell から

gcloud compute networks create psc-lab --subnet-mode custom

サブネットの作成

Cloud Shell から

gcloud compute networks subnets create psclab-subnet \
--network psc-lab --range 10.0.0.0/24 --region us-central1 --enable-private-ip-google-access

ファイアウォール ルールを作成する

IAP に VM インスタンスへの接続を許可するには、次のファイアウォール ルールを作成します。

  • IAP を使用してアクセス可能にするすべての VM インスタンスに適用されます。
  • IP 範囲 35.235.240.0/20 からの上り(内向き)トラフィックを許可します。この範囲には、IAP が TCP 転送に使用するすべての IP アドレスが含まれています。

Cloud Shell から

gcloud compute firewall-rules create psclab-ssh \
    --network psc-lab --allow tcp:22 --source-ranges=35.235.240.0/20

Cloud NAT インスタンスを作成する

Cloud Router の作成

Cloud Shell から

gcloud compute routers create crnat \
    --network psc-lab \
    --asn 65000 \
    --region us-central1

Cloud NAT を作成する

Cloud Shell から

gcloud compute routers nats create cloudnat \
    --router=crnat \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-logging \
    --region us-central1

8. Private Service Connect エンドポイントを作成する

Private Service Connect エンドポイント IP <pscendpointip> を構成するときは、VPC で定義されていない一意の IP アドレスを指定する必要があります。

Cloud Shell から

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=192.168.255.250 \
    --network=psc-lab

ラボの期間中、pscendpointip を保存する

pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")

echo $pscendpointip

エンドポイントを Google API およびサービスに接続する転送ルールを作成します。

Cloud Shell から

gcloud compute forwarding-rules create pscendpoint \
    --global \
    --network=psc-lab \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

構成済みの Private Service Connect エンドポイントを一覧表示する

Cloud Shell から

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

構成済みの Private Service Connect エンドポイントの説明を取得する

Cloud Shell から

gcloud compute forwarding-rules describe \
    pscendpoint --global

9. バケットを作成する

Cloud Storage バケットを作成し、BUCKET_NAME をグローバルに一意な名前に置き換えます。

Cloud Shell から

gsutil mb  -l us-central1 -b on gs://BUCKET_NAME

ラボの期間中、BUCKET_NAME を保存する

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

10. DNS 構成

Private Service Connect エンドポイントを作成すると、Service Directory は、そのエンドポイントで利用可能な API とサービスの DNS レコードを生成します。

DNS レコードには、Private Service Connect エンドポイントの IP アドレスが SERVICE-ENDPOINT.p.googleapis.com の形式で指定されています。

これらの DNS 名を API リクエストで使用すると、リクエストを Private Service Connect エンドポイントに送信できます。これらの DNS 名は、リクエストの Host ヘッダーで使用することもできます。

Google API とサービスにアクセスするクライアントまたはアプリケーションで Private Service Connect エンドポイントを使用する場合は、p.googleapis.com DNS 名を使用するようにクライアントまたはアプリケーションを更新します。

詳細については、クライアントまたはクライアント ライブラリのドキュメントをご覧ください。次に例を示します。

例: gcloud config set api_endpoint_overrides/storage https://storage-xyz.p.googleapis.com/storage/v1/

別のエンドポイントを使用するようにクライアントまたはアプリケーションを構成できない場合は、デフォルトの DNS 名と一致する DNS レコードを作成します。たとえば、storage.googleapis.com などです。デフォルトの DNS 名を使用して DNS レコードを作成するをご覧ください。

DNS レコードを検証する

クラウド コンソールで、[ネットワーク サービス] → [Cloud DNS] にある生成された DNS エントリを検証します。生成された DNS 名「p.googleapis.com」をメモします。

11. 仮想マシンを作成する

Private Service Connect の検証に使用する仮想マシン(psc-instance-1)を作成する

Cloud Shell から

  gcloud compute instances create psc-instance-1 \
    --subnet psclab-subnet \
    --zone us-central1-a \
    --image=centos-7-v20210122 \
    --image-project=centos-cloud \
    --no-address \
    --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y 

VM インスタンス(psc-instance-1)にログインします。

Cloud Shell を介して VM に SSH 接続する

gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

[+](下のスクリーンショット)を 3 回クリックして、追加の Cloud Shell ターミナルを作成します。

69ea94e1527912bb.png

パブリック Googleapis の検証に使用される仮想マシン(psc-instance-2)を作成する

タブ 2 から

  gcloud compute instances create psc-instance-2 \
    --subnet psclab-subnet \
    --zone us-central1-a \
    --image=centos-7-v20210122 \
    --image-project=centos-cloud \
    --no-address \
    --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y 

タブ 2 から Cloud Shell を介して VM に SSH 接続する

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname


gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"

タブ 3 で、Cloud Shell を介して psc-instance-1 に SSH 接続します。

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname


gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

タブ 4 の Shell から Cloud Shell 経由で psc-instance-2 に SSH 接続する

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname


gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"

12. 既存の Gsutil の動作を確認する

タブ 4(psc-instance-2)から tcpdump を起動し、DNS トラフィックをモニタリングします。

sudo tcpdump -vv -i eth0 port 53

タブ 2(psc-instance-2)からストレージ バケットの DNS ルックアップを検査する

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME
gsutil -D ls gs://$BUCKET_NAME

gsutil デバッグを調べます。HOST storage.googleapis.com は DNS 解決に使用されます

<snip>
send: 'GET /storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nauthorization: Bearer ya29.c.KpkB7wfaMjfc_WXEKCeNF4Md0fEHnfDU7tqBf3cd0u43yEmYXqj8fX_X5wWdNdDVH6k1EkjeAeIJDzKGvyjPOkf1Io2kVeUqYX69sDv53huW1NslffjAHKchbZ0CP3Cg83TS3Pa55jLcuE0TLbYycVrgSbD3H90LaapUGbWD3kj4IsJLf9J8R98Bqobu8HZwwqk92hlZ4zVzRqOM\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>

タブ 4(psc-instance-2)で、ストレージ バケットにアクセスするときに GoogleAPI.com のパブリック DNS A レコードが使用されていることを確認します。

metadata.google.internal.domain > psc-instance-2.c.yourprojectname.internal.33973: [udp sum ok] 36442 q: A? storage.googleapis.com. 11/0/0 storage.googleapis.com. A 108.177.111.128, storage.googleapis.com. A 142.250.128.128, storage.googleapis.com. A 74.125.70.128, storage.googleapis.com. A 74.125.201.128, storage.googleapis.com. A 64.233.183.128, storage.googleapis.com. A 173.194.198.128, storage.googleapis.com. A 172.217.219.128, storage.googleapis.com. A 142.250.136.128, storage.googleapis.com. A 209.85.234.128, storage.googleapis.com. A 172.217.212.128, storage.googleapis.com. A 172.217.214.128

13. Gsutil の動作を変更する

前の手順で、PSC エンドポイントの IP アドレスにマッピングされた限定公開 DNS ゾーンと A レコードを作成しました。次のステップでは、psc-instance-1 の VM BOTO ファイルを更新して、gsutil の動作を制御します。

タブ 1(psc-instance-1)の VM インスタンス ターミナルからデフォルトの BOTO 構成を表示します。

[psc-instance ~]$ more  /etc/boto.cfg

出力(project_id は異なります)

[GSUtil]
default_project_id  = [your project number]
default_api_version = 2

[GoogleCompute]
service_account = default

nano または VI エディタを使用して BOTO 構成を更新します。すべてのエントリをコピーして貼り付けてください。

例: sudo nano /etc/boto.cfg

または

例: sudo vi /etc/boto.cfg

VM インスタンスのターミナル タブ 1(psc-instance-1)から

[Credentials]
gs_host = storage-pscendpoint.p.googleapis.com
gs_host_header = storage.googleapis.com
gs_json_host = storage-pscendpoint.p.googleapis.com
gs_json_host_header = www.googleapis.com

構成を検証する。[Credentials] の順序は DNS ルックアップで重要です

more /etc/boto.cfg
[Credentials]
gs_host = storage-pscendpoint.p.googleapis.com
gs_host_header = storage.googleapis.com
gs_json_host = storage-pscendpoint.p.googleapis.com
gs_json_host_header = www.googleapis.com

[GSUtil]
default_project_id  = [your project number
default_api_version = 2

[GoogleCompute]
service_account = default

14. 更新された gsutil のルックアップ動作を確認する

タブ 3(psc-instance-1)から tcpdump を起動し、DNS トラフィックをモニタリングします。

sudo tcpdump -vv -i eth0 port 53

タブ 1(psc-instance-1)からストレージ バケットの gsutil ルックアップを検査する

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

gsutil -D ls gs://$BUCKET_NAME

デバッグログで、Private Service Connect エンドポイント「pscendpoint」を介してストレージ バケットにアクセスできることを確認する

出力:

<snip>
INFO 0131 22:14:18.795986 base_api.py] Making http GET to https://storage-pscendpoint.p.googleapis.com/storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000
INFO 0131 22:14:18.796415 base_api.py] Headers: {u'Host': 'www.googleapis.com',
 'accept': 'application/json',
 'accept-encoding': 'gzip, deflate',
 'content-length': '0',
 'user-agent': 'apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0'}
INFO 0131 22:14:18.796502 base_api.py] Body: (none)
connect: (storage-pscendpoint.p.googleapis.com, 443)
send: 'GET /storage/v1/b/psc-bucket/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\ncontent-length: 0\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\nhost: www.googleapis.com\r\nauthorization: Bearer ya29.c.KpkB7wd3XWiYeRyTuth5_HPlNV-hPwc2Nn7RSIeMpzrpa_j4EsMPl2m_mDGKAcGHvYIgiC5bT2UVQirAPpSbbpToa6G6lkaBbH5SZwHwgNXYfisp5Ww1UjXe4rTa69a_Wp0WesafcwPNnYzDo3xf5VGh3iGhySA04kTXuyT--MgOU8U-XLII2LJQxUWlV8KEdrvyCuqRb-jsDdk_\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>

タブ 3(psc-instance-1)で、ストレージ バケットにアクセスする際に使用される DNS A レコードが PSC エンドポイントの IP アドレスであることを確認します。

@psc-instance-1 ~]$ sudo tcpdump -vv -i eth0 port 53
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
05:02:33.936256 IP (tos 0x0, ttl 64, id 55416, offset 0, flags [DF], proto UDP (17), length 82)
    psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0xcceb!] 34796+ A? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.936269 IP (tos 0x0, ttl 64, id 55417, offset 0, flags [DF], proto UDP (17), length 82)
    psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0x3ebd!] 5632+ AAAA? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.944018 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 98)
    metadata.google.internal.domain > psc-instance-1.c.yourprojectname.42296: [udp sum ok] 34796 q: A? storage-pscendpoint.p.googleapis.com. 1/0/0 storage-pscendpoint.p.googleapis.com. A 10.10.110.10 (70)
05:02:33.946005 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 175)

Private Service Connect エンドポイントの IP が DNS 解決に使用されていることを確認する

From tab1

nslookup storage-pscendpoint.p.googleapis.com

出力

@psc-instance ~]$ nslookup storage-pscendpoint.p.googleapis.com
Server:         169.254.169.254
Address:        169.254.169.254#53

Non-authoritative answer:
Name:   storage-pscendpoint.p.googleapis.com
Address: <pscip>

15. クリーンアップ手順

VM インスタンスを終了する(すべてのタブ)

exit

単一の Cloud Shell ターミナルからラボ コンポーネントを削除する

gcloud compute routers nats delete cloudnat --router=crnat --region=us-central1 --quiet

gcloud compute routers delete crnat --region=us-central1 --quiet

gcloud compute forwarding-rules delete pscendpoint --global --quiet

gcloud compute addresses delete psc-ip --global --quiet

gsutil rm -r gs://$BUCKET_NAME

gcloud compute instances delete psc-instance-1 --zone=us-central1-a --quiet

gcloud compute instances delete psc-instance-2 --zone=us-central1-a --quiet

gcloud compute firewall-rules delete psclab-ssh --quiet

gcloud compute networks subnets delete psclab-subnet --region us-central1 --quiet

gcloud compute networks delete psc-lab --quiet

コンソールで、正しいプロジェクトが表示されていることを確認し、[ネットワーキング サービス] → [Cloud DNS] を選択します。

16. 完了

以上で、この Codelab は完了です。

学習した内容

  • Private Service Connect のユースケース
  • ネットワークの要件
  • サポートされている API
  • Private Service Connect エンドポイントを作成した
  • Cloud Storage バケットを作成しました
  • BOTO 構成ファイルを更新した
  • NAT GW を作成しました
  • PSC サービス エンドポイントに対して解決される VM1 で gsutil list を実行する
  • パブリック googleapis.com に対して解決する VM2 で gsutil list を実行する
  • Tcpdump を使用して DNS 解決を検証する