このドキュメントでは、Private Service Connect エンドポイントを使用して、サポートされている Google API のリージョン エンドポイントとマルチリージョン エンドポイントに接続する方法について説明します。
他の Private Service Connect 構成については、Private Service Connect をご覧ください。
必要なロール
接続するサブネットと同じプロジェクトにエンドポイントを作成する場合は、プロジェクトに必要なロールをご覧ください。
共有 VPC を使用していて、サービス プロジェクトでエンドポイントを作成し、ホスト プロジェクトのサブネットに接続する場合は、次のロールが必要です。
- サービス プロジェクトに付与されたプロジェクトに必要なロール
- ホスト プロジェクトに付与された共有 VPC 構成に必要な追加のロール
プロジェクトに必要なロール
リージョン エンドポイントにアクセスする Private Service Connect エンドポイントの管理に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
エンドポイントを作成、表示、削除する: プロジェクトに対する Compute ネットワーク管理者 (
roles/compute.networkAdmin) -
エンドポイントの DNS エントリを構成する: プロジェクトに対する DNS 管理者 (
roles/dns.admin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
共有 VPC 構成に必要な追加のロール
ホスト プロジェクトのサブネットの IP アドレスを使用するサービス プロジェクトにエンドポイントを作成する場合は、プロジェクトのロール(サービス プロジェクト)に加えて、次の権限が必要です。
ユーザーとネットワーク接続サービス アカウントの両方に、ホスト プロジェクトに対する権限が必要です。
ユーザー アカウントに付与するロール
Google API のリージョン エンドポイントにアクセスする Private Service Connect エンドポイントの管理に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
ホスト プロジェクトの IP アドレスを使用するエンドポイントを作成、表示、削除する:
- サービス プロジェクトに対する Compute ネットワーク管理者 (
roles/compute.networkAdmin) - ホスト プロジェクトに対する Compute ネットワーク ユーザー (
roles/compute.networkUser)
- サービス プロジェクトに対する Compute ネットワーク管理者 (
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、Google API のリージョン エンドポイントにアクセスする Private Service Connect エンドポイントの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Google API のリージョン エンドポイントにアクセスする Private Service Connect エンドポイントを管理するには、次の権限が必要です。
-
ホスト プロジェクトの IP アドレスを使用するエンドポイントを作成、表示、削除する:
- ホスト プロジェクトに対する
compute.networks.use - ホスト プロジェクトに対する
compute.subnetworks.use
- ホスト プロジェクトに対する
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
ネットワーク接続サービス アカウントに付与するロール
service-PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com に、Google API のリージョン エンドポイントにアクセスする Private Service Connect エンドポイントを管理するために必要な権限があることを確認するには、service-PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com に次の IAM ロールを付与するよう管理者に依頼してください。
-
ホスト プロジェクトの IP アドレスを使用するエンドポイントを作成、表示、削除する: ホスト プロジェクトに対する Compute ネットワーク ユーザー (
roles/compute.networkUser)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには、Google API のリージョン エンドポイントにアクセスする Private Service Connect エンドポイントの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Google API のリージョン エンドポイントにアクセスする Private Service Connect エンドポイントを管理するには、次の権限が必要です。
-
ホスト プロジェクトの IP アドレスを使用するエンドポイントを作成、表示、削除する:
- ホスト プロジェクトに対する
compute.networks.get - ホスト プロジェクトに対する
compute.networks.use - ホスト プロジェクトに対する
compute.subnetworks.get - ホスト プロジェクトに対する
compute.subnetworks.use
- ホスト プロジェクトに対する
管理者は、カスタムロールや他の事前定義ロールを使用して、service-PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com にこれらの権限を付与することもできます。
始める前に
Google Cloud CLI をインストールします。インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
$ gcloud init
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
Compute Engine、Network Connectivity Center、Cloud DNS の各 API を有効にします。
API を有効にするために必要なロール
API を有効にするには、
serviceusage.services.enable権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。Private Service Connect エンドポイントを介してアクセスするターゲット サービスの API を有効にします。たとえば、
spanner.me-central2.rep.googleapis.comにアクセスする場合は、Cloud Spanner API を有効にします。Private Service Connect では、API は自動的に有効になりません。下り(外向き)ファイアウォール ルールでエンドポイントへのトラフィックが許可されていることを確認します。VPC ネットワークのデフォルトのファイアウォール構成には暗黙の下り(外向き)許可ルールが含まれ、このトラフィックが許可されます。トラフィックをブロックする優先度の高い下り(外向き)ルールがないことを確認します。
リージョン Private Service Connect エンドポイントを作成する
リージョン Private Service Connect エンドポイントを作成して、ターゲット Google API のリージョン エンドポイントまたはマルチリージョン エンドポイントにリクエストを送信できます。
サポートされているリージョン エンドポイントとマルチリージョン エンドポイントの一覧については、リージョン サービス エンドポイントをご覧ください。
コンソール
Google Cloud コンソールで、[Private Service Connect] ページに移動します。
[エンドポイントを接続] をクリックします。
[ターゲット] で [Google API] を選択します。
[範囲] リストで、[リージョン] を選択します。
[リージョン] リストで、使用するリージョンを選択します。
[ターゲット サービス] リストで、アクセスするサービスを選択します。
[エンドポイント名] にエンドポイントの名前を入力します。
[ネットワーク] で、ネットワークを選択します。
[サブネットワーク] で、サブネットワークを選択します。
[IP アドレス] で、次のいずれかを行い、IP アドレスを構成します。
- [自動割り当て] を選択して、新しい静的 IP アドレスを自動的に割り当てて予約します。
- リストから静的 IP アドレスを選択します。
- [IP アドレスを作成] をクリックして、新しい静的 IP アドレスを予約します。
省略可: VPC ネットワーク内のすべてのリージョンからエンドポイントを利用できるようにするには、[グローバル アクセスを有効にする] を選択します。
[エンドポイントを追加] をクリックします。
gcloud
gcloud network-connectivity regional-endpoints create コマンドを使用して、エンドポイントを作成します。
gcloud network-connectivity regional-endpoints create ENDPOINT_NAME \
--region=REGION \
--address=ADDRESS \
--network=projects/PROJECT_ID/global/networks/NETWORK_NAME \
--subnetwork=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
--target-google-api=REP_DNS_NAME
エンドポイントを他のリージョンのリソースで使用できるようにするには、--enable-global-access フラグを追加します。
次のように置き換えます。
ENDPOINT_NAME: エンドポイントの名前。REGION: エンドポイントを作成するリージョン。ADDRESS: エンドポイントに使用する IPv4 アドレスまたは/96IPv6 アドレス。省略すると、サブネットワークの IPv4 アドレスが割り振られます。次のいずれかの形式で指定してください。- IPv4 アドレス(例:
10.0.0.2)。 - IPv4 または IPv6 アドレス リソースの URI(例:
projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME)。
- IPv4 アドレス(例:
PROJECT_ID: エンドポイントを作成するプロジェクト。NETWORK_NAME: エンドポイントの VPC ネットワークの名前。SUBNET_NAME: エンドポイントを接続するサブネット。REP_DNS_NAME: 接続するリージョン サービス エンドポイントまたはマルチリージョン エンドポイントのホスト名。たとえば、spanner.me-central2.rep.googleapis.com(リージョン)またはstorage.us.rep.googleapis.com(マルチリージョン)。
API
projects.locations.regionalEndpoints.create メソッドを使用してエンドポイントを作成します。
HTTP メソッドと URL:
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints?regionalEndpointId=ENDPOINT_NAME
{
"accessType": "REGIONAL",
"address": "ADDRESS",
"network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
"targetGoogleApi": "REP_DNS_NAME"
}
次のように置き換えます。
PROJECT_ID: エンドポイントのプロジェクト ID。REGION: エンドポイントを作成するリージョン。ENDPOINT_NAME: エンドポイントの名前。ADDRESS: エンドポイントに使用する IPv4 アドレスまたは/96IPv6 アドレス。省略すると、サブネットワークの IPv4 アドレスが割り振られます。次のいずれかの形式で指定してください。- IPv4 アドレス(例:
10.0.0.2)。 - IPv4 または IPv6 アドレス リソースの URI(例:
projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME)。
- IPv4 アドレス(例:
NETWORK_NAME: エンドポイントの VPC ネットワークの名前。SUBNET_NAME: エンドポイントを接続するサブネットの名前。REP_DNS_NAME: 接続するリージョン サービス エンドポイントまたはマルチリージョン エンドポイントのホスト名。たとえば、spanner.me-central2.rep.googleapis.com(リージョン)またはstorage.us.rep.googleapis.com(マルチリージョン)。
共有 VPC サービス プロジェクトにリージョン Private Service Connect エンドポイントを作成する
共有 VPC を使用している場合は、ホスト プロジェクトのサブネットの IP アドレスを使用するサービス プロジェクトにエンドポイントを作成できます。 Google Cloud コンソールを使用してこの構成を作成することはできません。gcloud CLI または API を使用する必要があります。
gcloud
gcloud compute addresses createコマンドを使用して、リージョン エンドポイントで使用する静的 IP アドレスを予約します。静的 IP アドレスの使用は、IPv4 では省略可能ですが、IPv6 では必須です。サービス プロジェクトにアドレス リソースを作成し、ホスト プロジェクトのサブネットを指定します。
gcloud compute addresses create ADDRESS_NAME \ --region=REGION \ --subnet=projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET \ --ip-version=IP_VERSION \ --project=SERVICE_PROJECT次のように置き換えます。
ADDRESS_NAME: 予約済みの IP アドレスに割り当てる名前。REGION: エンドポイントの IP アドレスのリージョン。これは、サービス プロデューサーのサービス アタッチメントが含まれているのと同じリージョンに存在している必要があります。HOST_PROJECT: ホスト プロジェクトのプロジェクト ID。HOST_SUBNET: エンドポイント IP アドレスのサブネットの名前。IP_VERSION: IP アドレスの IP バージョン。IPV4またはIPV6のいずれかです。デフォルトはIPV4です。IPV6を指定するには、内部 IPv6 アドレス範囲を持つサブネットに IP アドレスが接続されている必要があります。SERVICE_PROJECT: サービス プロジェクトのプロジェクト ID
gcloud network-connectivity regional-endpoints createコマンドを使用して、サービス プロジェクトにリージョン エンドポイントを作成します。gcloud network-connectivity regional-endpoints create ENDPOINT_NAME \ --region=REGION \ --address=ADDRESS \ --network=projects/HOST_PROJECT/global/networks/HOST_NETWORK \ --subnetwork=projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET \ --target-google-api=REP_DNS_NAME \ --project=SERVICE_PROJECTエンドポイントを他のリージョンのリソースで使用できるようにするには、
--enable-global-accessフラグを追加します。次のように置き換えます。
ENDPOINT_NAME: エンドポイントの名前。REGION: エンドポイントを作成するリージョン。ADDRESS: エンドポイントに使用する IPv4 アドレスまたは/96IPv6 アドレス。省略すると、サブネットワークの IPv4 アドレスが割り振られます。次のいずれかの形式で指定してください。- IPv4 アドレス(例:
10.0.0.2)。 - IPv4 または IPv6 アドレス リソースの URI。アドレス リソースは、ホスト プロジェクトではなくサービス プロジェクトに作成する必要があります。例:
projects/SERVICE_PROJECT/regions/REGION/addresses/ADDRESS_NAME HOST_PROJECT: ホスト プロジェクトの ID。
- IPv4 アドレス(例:
HOST_NETWORK: ホスト プロジェクトの VPC ネットワークの名前。HOST_SUBNET: エンドポイントを接続するホスト プロジェクトのサブネット。REP_DNS_NAME: 接続するリージョン サービス エンドポイントまたはマルチリージョン エンドポイントのホスト名。たとえば、spanner.me-central2.rep.googleapis.com(リージョン)またはstorage.us.rep.googleapis.com(マルチリージョン)。SERVICE_PROJECT: サービス プロジェクトのプロジェクト ID
API
リージョン エンドポイントに使用する静的 IP アドレスを予約します。静的 IP アドレスの使用は、IPv4 では任意ですが、IPv6 では必須です。
サービス プロジェクトにアドレス リソースを作成し、ホスト プロジェクトのサブネットを指定します。
POST https://compute.googleapis.com/compute/v1/projects/SERVICE_PROJECT/regions/REGION/addresses
{ "name": "ADDRESS_NAME", "addressType": "INTERNAL", "subnetwork": "projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET", "ipVersion": "IP_VERSION" }次のように置き換えます。
SERVICE_PROJECT: サービス プロジェクトの ID。REGION: エンドポイントのリージョン。これは、接続するリージョン エンドポイントと同じリージョンにする必要があります。ADDRESS_NAME: 静的 IP アドレスに割り当てる名前。HOST_PROJECT: ホスト プロジェクトの ID。HOST_SUBNET: IP アドレスを予約する共有 VPC ネットワーク内のサブネット。IP_VERSION: IP アドレスの IP バージョン。IPV4またはIPV6のいずれかです。デフォルトはIPV4です。IPV6を指定するには、内部 IPv6 アドレス範囲を持つサブネットに IP アドレスが接続されている必要があります。
projects.locations.regionalEndpoints.createメソッドを使用して、Private Service Connect エンドポイントを作成します。HTTP メソッドと URL:
POST https://networkconnectivity.googleapis.com/v1/projects/SERVICE_PROJECT/locations/REGION/regionalEndpoints?regionalEndpointId=ENDPOINT_NAME
{ "accessType": "REGIONAL", "address": "ADDRESS", "network": "projects/HOST_PROJECT/global/networks/HOST_NETWORK", "subnetwork": "projects/HOST_PROJECT/regions/REGION/subnetworks/HOST_SUBNET", "targetGoogleApi": "REP_DNS_NAME" }次のように置き換えます。
SERVICE_PROJECT: サービス プロジェクトの ID。REGION: エンドポイントを作成するリージョン。ENDPOINT_NAME: エンドポイントの名前。ADDRESS: エンドポイントに使用する IPv4 アドレスまたは/96IPv6 アドレス。省略すると、サブネットワークの IPv4 アドレスが割り振られます。次のいずれかの形式で指定してください。- IPv4 アドレス(例:
10.0.0.2)。 - IPv4 または IPv6 アドレス リソースの URI(例:
projects/SERVICE_PROJECT/regions/REGION/addresses/ADDRESS_NAME)。
- IPv4 アドレス(例:
HOST_PROJECT: ホスト プロジェクトの ID。HOST_NETWORK: ホスト プロジェクト内のネットワークの名前。HOST_SUBNET: エンドポイントを接続するホスト プロジェクトのサブネットの名前。REP_DNS_NAME: 接続するリージョン サービス エンドポイントまたはマルチリージョン エンドポイントのホスト名。たとえば、spanner.me-central2.rep.googleapis.com(リージョン)またはstorage.us.rep.googleapis.com(マルチリージョン)などです。
エンドポイントの一覧を取得する
構成したエンドポイントの一覧を取得できます。
コンソール
Google Cloud コンソールで、[Private Service Connect] ページに移動します。
[接続エンドポイント] タブをクリックします。
リージョン エンドポイント ターゲットを含むすべてのエンドポイントが表示されます。
gcloud
gcloud network-connectivity regional-endpoints list コマンドを使用します。
gcloud network-connectivity regional-endpoints list \
--region=REGION
REGION は、一覧取得するエンドポイントのリージョンに置き換えます。
API
projects.locations.regionalEndpoints.list メソッドを使用します。
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints
次のように置き換えます。
PROJECT_ID: エンドポイントのプロジェクト ID。REGION: 一覧取得するエンドポイントのリージョン。
エンドポイントが機能していることを確認する
エンドポイントが構成されている VPC ネットワークとリージョンに仮想マシン(VM)インスタンスを作成します。VM で次のコマンドを実行して、Private Service Connect エンドポイントが機能していることを確認します。エンドポイントは ping(ICMP)リクエストに応答しません。
IPv4 エンドポイントを検証するには、次の操作を行います。
curl --connect-to REP_DNS_NAME:443:ADDRESS:443 \ 'https://REP_DNS_NAME/PATH'
IPv6 エンドポイントを確認するには、次の操作を行います。
curl -6 --connect-to REP_DNS_NAME:443:[ADDRESS]:443 \ 'https://REP_DNS_NAME/PATH'
次のように置き換えます。
REP_DNS_NAME: ターゲット リージョン エンドポイントまたはマルチリージョン エンドポイントの公開 DNS 名(例:spanner.me-central2.rep.googleapis.com、storage.us.rep.googleapis.com)。ADDRESS: エンドポイントの IP アドレス。PATH: このサービスによって提供されるリソースへのパス。たとえば、多くのサービスでは、パス$discovery/rest?version=v1のディスカバリ ドキュメントが提供されています。
次のリクエストの例では、IP アドレス 192.168.1.100 のエンドポイントが me-central2 のリージョン エンドポイントから Cloud Spanner API ディスカバリ ドキュメントをリクエストできるかどうかをテストします。
curl --connect-to spanner.me-central2.rep.googleapis.com:443:192.168.1.100:443 \ 'https://spanner.me-central2.rep.googleapis.com/$discovery/rest?version=v1'
エンドポイントの限定公開 DNS エントリを作成する
クライアントが Private Service Connect エンドポイントにリクエストを送信できるように、限定公開 DNS エントリを作成する必要があります。
ターゲットのリージョン エンドポイントまたはマルチリージョン エンドポイントと同じホスト名を使用する限定公開ゾーンを作成し、そのゾーンに apex レコードを作成することをおすすめします。
- Private Service Connect エンドポイントのターゲットが
spanner.me-central2.rep.googleapis.comの場合は、spanner.me-central2.rep.googleapis.comの apex レコードを含むspanner.me-central2.rep.googleapis.comの限定公開ゾーンを作成します。 - Private Service Connect エンドポイントのターゲットが
storage.us.rep.googleapis.comの場合は、storage.us.rep.googleapis.comの apex レコードを含むstorage.us.rep.googleapis.comの限定公開ゾーンを作成します。
ドメインの apex にレコードを作成すると、他のエンドポイントの一般公開ホスト名(logging.me-central2.rep.googleapis.com など)にアクセスできます。
以降のセクションでは、Cloud DNS を使用して限定公開ゾーンと apex DNS レコードを作成する方法について説明します。
限定公開ゾーンを作成する
コンソール
Google Cloud コンソールで、[DNS ゾーンの作成] ページに移動します。
[ゾーンのタイプ] で [限定公開] を選択します。
[ゾーン名] に名前を入力します。たとえば、Private Service Connect エンドポイントが
spanner.me-central2.rep.googleapis.comを指している場合は、「spanner-me-central2-rep-googleapis-com」と入力します。[DNS 名] に、ターゲット リージョン エンドポイントのホスト名を指定し、末尾にドットを付けます。例:
spanner.me-central2.rep.googleapis.com.(省略可)説明を追加します。
[オプション] で、[デフォルト(限定公開)] を選択します。
限定公開ゾーンを表示する VPC ネットワークを選択します。選択した VPC ネットワークのみが、ゾーン内のレコードを照会できます。
[作成] をクリックします。
gcloud
dns managed-zones
create コマンドを実行します。
gcloud dns managed-zones create ZONE_NAME \
--dns-name=REP_DNS_NAME. \
--networks=VPC_NETWORK_LIST \
--visibility=private \
--description="Private zone for REP_DNS_NAME"
次のように置き換えます。
ZONE_NAME: ゾーンの名前(例:spanner-me-central2-rep-googleapis.com)。DESCRIPTION: ゾーンの説明REP_DNS_NAME: ゾーンの DNS サフィックス。ターゲット リージョン エンドポイントのホスト名を使用します(例:spanner.me-central2.rep.googleapis.com)。VPC_NETWORK_LIST: ゾーンに対するクエリ実行が許可されている VPC ネットワークのカンマ区切りのリスト。
API
managedZones.create メソッドを使用して、POST リクエストを送信します。
HTTP メソッドと URL:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones
リクエストの本文(JSON):
{
"name": "ZONE_NAME",
"dnsName": "REP_DNS_NAME.",
"description": "DESCRIPTION",
"visibility": "private",
"privateVisibilityConfig": {
"kind": "dns#managedZonePrivateVisibilityConfig",
"networks": [
{
"kind": "dns#managedZonePrivateVisibilityConfigNetwork",
"networkUrl": "NETWORK_1_URL"
},
{
"kind": "dns#managedZonePrivateVisibilityConfigNetwork",
"networkUrl": "NETWORK_2_URL"
}
]
}
}
次のように置き換えます。
PROJECT_ID: DNS ゾーンのプロジェクト ID。ZONE_NAME: このリージョン エンドポイント用に作成した限定公開ゾーンの名前。REP_DNS_NAME: 作成するレコードの FQDN。ターゲットのリージョン エンドポイントのホスト名(例:spanner.me-central2.rep.googleapis.com)を使用します。DESCRIPTION: DNS ゾーンの説明。NETWORK_1_URLとNETWORK_2_URL: ゾーンに対するクエリ実行が許可されている VPC ネットワークの完全な URL(例:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME)。
ゾーンに DNS レコードを追加する
コンソール
Google Cloud コンソールで、Cloud DNS の [ゾーン] ページに移動します。
レコードを追加するマネージド ゾーンの名前をクリックします。
[ゾーンの詳細] ページで、[標準を追加] をクリックします。
[レコードセットの作成] ページの [DNS 名] フィールドは空白のままにします。このフィールドを空白のままにすると、ドメインの apex にリソース レコードが作成されます。
[リソース レコードのタイプ] で [
A] を選択します。[IPv4 アドレス] フィールドに、Private Service Connect エンドポイントの IP アドレスを入力または選択します。
[作成] をクリックします。
gcloud
リソース レコードセットを追加するには、gcloud dns record-sets create コマンドを使用します。
gcloud dns record-sets create REP_DNS_NAME \
--rrdatas=ADDRESS \
--type=RECORD_TYPE \
--ttl=TTL \
--zone=ZONE_NAME
次のように置き換えます。
REP_DNS_NAME: 作成するレコードの FQDN。ターゲットのリージョン エンドポイントのホスト名(例:spanner.me-central2.rep.googleapis.com)を使用します。ADDRESS: Private Service Connect エンドポイントの IP アドレス。RECORD_TYPE: DNS レコードのタイプ(たとえば、IPv4 レコードの場合はA、IPv6 レコードの場合はAAAA)。TTL: リゾルバがこのリソース レコードセットをキャッシュに保存する秒単位の TTL(例:300)ZONE_NAME: このリージョン エンドポイント用に作成した限定公開ゾーンの名前。
API
リソース レコードセットを作成するには、resourceRecordSets.create メソッドを使用します。
HTTP メソッドと URL:
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/ZONE_NAME/rrsets
リクエストの本文(JSON):
{
"name": "REP_DNS_NAME.",
"type": "RECORD_TYPE",
"ttl": TTL,
"rrdatas": [ "ADDRESS" ]
}
次のように置き換えます。
PROJECT_ID: DNS ゾーンのプロジェクト ID。ZONE_NAME: このリージョン エンドポイント用に作成した限定公開ゾーンの名前。REP_DNS_NAME: 作成するレコードの FQDN。ターゲットのリージョン エンドポイントのホスト名(例:spanner.me-central2.rep.googleapis.com)を使用します。RECORD_TYPE: DNS レコードのタイプ(たとえば、IPv4 レコードの場合はA、IPv6 レコードの場合はAAAA)。TTL: リゾルバがこのリソース レコードセットをキャッシュに保存する秒単位の TTL(例:300)ADDRESS: Private Service Connect エンドポイントの IP アドレス。
限定公開のエンドポイント名を使用するようにクライアントを構成する
公開 DNS 名ではなく限定公開 DNS 名を使用するようにクライアントを構成する必要があります。カスタム エンドポイントを使用するように構成する方法については、クライアントまたはクライアント ライブラリのドキュメントをご覧ください。次のページでは、一般的なクライアントの構成手順について説明します。
Python: クライアント オプションで
api_endpointを構成できます。Go: ClientOptions で
WithEndpointを構成できます。.NET: クライアントのビルダークラスで
Endpointを構成できます。Java: クライアントの設定クラスで
setEndpointを構成できます。gcloud: gcloud CLI で
api_endpoint_overridesを構成できます。
エンドポイントに関する詳細情報を取得する
エンドポイントの構成の詳細を表示できます。
gcloud
gcloud network-connectivity regional-endpoints describe コマンドを使用します。
gcloud network-connectivity regional-endpoints describe \
ENDPOINT_NAME --region=REGION
次のように置き換えます。
ENDPOINT_NAME: エンドポイントの名前。REGION: エンドポイントのリージョン。
API
projects.locations.regionalEndpoints.get コマンドを使用します。
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints/ENDPOINT_NAME
次のように置き換えます。
PROJECT_ID: エンドポイントのプロジェクト ID。REGION: 一覧取得するエンドポイントのリージョン。ENDPOINT_NAME: エンドポイントの名前。
グローバル アクセス構成を更新する
リージョン エンドポイントのターゲットを持つ Private Service Connect エンドポイントは更新できません。エンドポイントのグローバル アクセス設定を変更する必要がある場合は、エンドポイントを削除し、必要なグローバル アクセス設定を持つ新しいエンドポイントを作成します。
エンドポイントを削除する
エンドポイントを削除できます。
gcloud
gcloud network-connectivity regional-endpoints delete コマンドを使用します。
gcloud network-connectivity regional-endpoints delete \
ENDPOINT_NAME --region=REGION
次のように置き換えます。
ENDPOINT_NAME: エンドポイントの名前。REGION: エンドポイントのリージョン。
API
projects.location.regionalEndpoints.delete コマンドを使用します。
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/regionalEndpoints/ENDPOINT_NAME
次のように置き換えます。
PROJECT_ID: エンドポイントのプロジェクト ID。REGION: エンドポイントのリージョン。ENDPOINT_NAME: エンドポイントの名前。
ハイブリッド ネットワークからエンドポイントにアクセスする
Cloud Interconnect または Cloud VPN トンネル用の VLAN アタッチメントを使用して Google Cloud に接続しているネットワーク上のクライアントは、Private Service Connect エンドポイントにアクセスできます。VLAN アタッチメントまたは Cloud VPN トンネルは、エンドポイントと同じ VPC ネットワーク(または共有 VPC ネットワーク)で終端する必要があります。ピアリングされた VPC ネットワーク内のクライアントはエンドポイントに到達できません。
グローバル アクセスが構成されている場合、VLAN アタッチメントまたは Cloud VPN トンネルからのクライアント トラフィックは、別のリージョンのエンドポイントに到達できます。
VLAN アタッチメントでは、Dataplane v1 と Dataplane v2 の両方がサポートされています。Dataplane のバージョンの詳細については、Dataplane v2 をご覧ください。
相手側のネットワークのシステムを構成して、限定公開 DNS ゾーンにクエリを実行できるようにする必要があります。
Cloud DNS を使用して限定公開 DNS ゾーンを実装した場合は、次の手順を完了します。
他のネットワークが接続する VPC ネットワークにインバウンド サーバー ポリシーを作成します。
他のネットワークが接続する VPC ネットワークで、VLAN アタッチメントまたは Cloud VPN トンネルが配置されているリージョンのインバウンド フォワーダー エントリ ポイントを特定します。
VPC ネットワークに接続する VLAN アタッチメントまたは Cloud VPN トンネルと同じリージョン内のインバウンド フォワーダーのエントリ ポイントにエンドポイントの DNS 名を転送するように、他のネットワークのシステムと DNS ネームサーバーを構成します。