パブリック エンドポイントを介してリージョン Google API にアクセスする

リージョン エンドポイントとマルチリージョン エンドポイントには、インターネット経由で公開アクセスするか、Virtual Private Cloud 内からプライベート アクセスできます。このドキュメントでは、エンドポイントに公開でアクセスする方法について説明します。

公共のインターネットからリージョン エンドポイントにアクセスすると、トラフィックは Google Cloud スタンダード ティア ネットワーキング経由でルーティングされます。TLS 終端を含む接続は、宛先リージョン内で処理されます。

API への公共のインターネット アクセスを構成する

リージョン API エンドポイントへのパブリック インターネット アクセスを構成する手順は次のとおりです。

ロール

リージョン エンドポイントの作成に必要な権限を取得するには、VPC ネットワークに対する次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

始める前に

  1. Google Cloud CLI をインストールします。インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

    $ gcloud init

    外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  2. Compute Engine、Network Connectivity Center、Cloud DNS の各 API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を介してこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を介してこの権限を取得できます。ロールを付与する方法をご覧ください。

    API を有効にする

  3. エンドポイントを介してアクセスするターゲット サービスの API を有効にします。たとえば、spanner.me-central2.rep.googleapis.com にアクセスする場合は、Cloud Spanner API を有効にします。

  4. 下り(外向き)ファイアウォール ルールでエンドポイントへのトラフィックが許可されていることを確認します。VPC ネットワークのデフォルトのファイアウォール構成には暗黙の下り(外向き)許可ルールが含まれ、このトラフィックが許可されます。トラフィックをブロックする優先度の高い下り(外向き)ルールがないことを確認します。

エンドポイントを特定する

ワークロードに必要なサービスと特定のリージョンまたはマルチリージョンを特定します。

  • リージョン エンドポイントの形式は SERVICE.REGION.rep.googleapis.com です。

  • マルチリージョン エンドポイントの形式は SERVICE.MULTI_REGION.rep.googleapis.com です。

DNS 構成を変更する

ハイブリッド構成でよくあるように、環境が限定公開 DNS ゾーンを使用して googleapis.com のパブリック DNS をオーバーライドする場合は、次の手順を行います。

  • DNS 構成を更新して rep.googleapis.com を除外します。詳しくは、レコードの追加、更新、削除をご覧ください。

  • DNS ゾーンの設定を変更して、rep.googleapis.com サブドメインを除外します。これらのクエリをパブリック DNS リゾルバに転送します。詳細については、ゾーンの作成、変更、削除をご覧ください。

Google Cloud CLI を構成する

特定のサービスのデフォルトの API エンドポイントをオーバーライドするには、Google Cloud CLI を使用します。次の例では、gcloud config set コマンドを使用して、us-central1 の Cloud Storage のオーバーライドと europe-west1 の Compute Engine のオーバーライドを設定します。

# Set an override for Cloud Storage in us-central1.

gcloud config set api_endpoint_overrides/storage https://storage.us-central1.rep.googleapis.com/

# Set an override for Compute Engine in europe-west1.

gcloud config set api_endpoint_overrides/compute https://compute.europe-west1.rep.googleapis.com/compute/v1/

オーバーライドを設定すると、そのサービスの gcloud CLI コマンドはリージョン エンドポイントを使用します。デフォルトのグローバル エンドポイントの使用に戻すには、gcloud config unset コマンドを使用します。

gcloud config unset api_endpoint_overrides/SERVICE

クライアント SDK を更新する

ほとんどの Google Cloud クライアント ライブラリでは、クライアントの初期化時にカスタム エンドポイントを指定できます。

Python

api_endpointclient_options を使用します。

from google.cloud import SERVICE
from google.api_core.client_options import ClientOptions

options = ClientOptions(api_endpoint='https://SERVICE.REGION.rep.googleapis.com')
SERVICE_client = SERVICE.Client(client_options=options, project='PROJECT_ID')
# ... use SERVICE_client as usual

次のように置き換えます。

  • SERVICE: サービスの名前
  • REGION: エンドポイントのリージョン
  • PROJECT_ID: Google Cloudの ID

Go

クライアントの作成時に option.WithEndpoint を使用します。

client, err := SERVICE.NewClient(ctx, projID, 
option.WithEndpoint("https://SERVICE-my-endpoint.REGION.rep.googleapis.com"), // Override endpoint

次のように置き換えます。

  • SERVICE: サービスの名前
  • REGION: エンドポイントのリージョン

.NET

クライアント ビルダーで Endpoint を構成します。

Java

サービス設定ビルダーで setEndpoint を使用します。

次の例では、Java を使用して Cloud Vision API のエンドポイントに接続します。

ImageAnnotatorSettings settings = ImageAnnotatorSettings.newBuilder()
.setEndpoint("https://vision.REGION.rep.googleapis.com")
.build();
ImageAnnotatorClient client = ImageAnnotatorClient.create(settings);

リファレンス ドキュメント

次のステップ