【アップデート】Cloud SQL Admin APIの地域別エンドポイント(Regional Endpoints)がPreviewとして利用可能になりました

【アップデート】Cloud SQL Admin APIの地域別エンドポイント(Regional Endpoints)がPreviewとして利用可能になりました

2026.05.13

はじめに

こんにちは。
クラウド事業本部コンサルティング部の渡邉です。

金融機関・医療機関・官公庁向けのシステムをGoogle Cloudで構築する際、考慮するべき要件が データレジデンシー(データ所在地制御) です。「データを特定リージョン外に出したくない」「API通信もリージョン内で完結させたい」といった要件に対し、Cloud SQLではデータの保存場所や暗号化鍵の制御はすでに対応していましたが、管理API(Cloud SQL Admin API)の通信については、これまでグローバルエンドポイントのみ提供されていました。

2026年5月11日、Cloud SQL の MySQL・PostgreSQL・SQL Serverの全エンジンで、Cloud SQL Admin APIの地域別エンドポイント(Regional Endpoints)がPreviewとして利用可能になりました。今回はこの機能の概要と、実際に試してみた結果をお伝えします。

https://cloud.google.com/sql/docs/release-notes

https://docs.cloud.google.com/sql/docs/postgres/admin-api/rep

Cloud SQLのデータレジデンシー

まず前提として、Cloud SQLがデータレジデンシー要件にどう応えているかを整理しておきます。データレジデンシーは「データの保存」「暗号化」「アクセス」の3軸で考えるのが公式の整理です。

Cloud SQLの対応
保存(Store) インスタンス作成時のリージョン指定。Org Policy(constraints/gcp.resourceLocations)で強制可能
暗号化(Encrypt) CMEK(Customer-Managed Encryption Keys)でCloud KMS/HSM/EKMと連携
アクセス(Access) VPC Service Controls、Access Approval、Access Transparency

今回追加された管理APIの地域別エンドポイントは「アクセス」軸の強化、特にAPIリクエスト(データ転送中)のリージョン制御に相当します。

https://docs.cloud.google.com/sql/docs/postgres/data-residency-overview?hl=ja

地域別エンドポイントとは

Google Cloudの地域別エンドポイント(Regional Endpoints)は、APIリクエストのネットワーク経路を指定リージョン内に閉じ込める仕組みです。

通常のグローバルエンドポイント(例:sqladmin.googleapis.com)では、TLSセッションがクライアントに最も近いGoogle Front End(GFE)で終端されます。そのため、リクエストが意図しないリージョンのインフラを経由する可能性があります。

地域別エンドポイントを使うと、TLSセッションが指定したリージョン内で必ず終端されます。

# グローバルエンドポイント(従来)
https://sqladmin.googleapis.com/v1/projects/...
  → GFEで最寄りリージョン終端(制御不可)

# 地域別エンドポイント(今回のPreview)
https://sqladmin.REGION.rep.googleapis.com/v1/projects/...
  → 指定REGIONで必ずTLS終端(制御可能)

地域別エンドポイントのメリット

  • データ転送中のレジデンシー確保: TLSセッションが常に指定リージョン内で終端
  • リージョン分離: 他リージョン障害への依存を排除
  • コンプライアンス証跡: 特定リージョンでのAPI処理を監査証跡として提示可能

https://cloud.google.com/docs/security/compliance/about-regional-endpoints

Cloud SQL Admin API 地域別エンドポイント

エンドポイント形式

他のGoogle Cloudサービス(BigQuery、Cloud Storage等)と同じ命名規則に従います。

https://sqladmin.REGION.rep.googleapis.com

REGION には us-central1asia-northeast1 などのリージョン名を指定します。現時点ではパブリック接続(インターネット経由)のみ対応しており、VPC やプライベート接続は非対応です。

サポートリージョン

Preview 時点で日本リージョンを含む主要リージョンに対応しています(抜粋)。

リージョン エンドポイント
asia-northeast1(東京) sqladmin.asia-northeast1.rep.googleapis.com
asia-northeast2(大阪) sqladmin.asia-northeast2.rep.googleapis.com
asia-northeast3(ソウル) sqladmin.asia-northeast3.rep.googleapis.com
us-central1 sqladmin.us-central1.rep.googleapis.com
us-east1 sqladmin.us-east1.rep.googleapis.com
europe-west1 sqladmin.europe-west1.rep.googleapis.com
europe-west2 sqladmin.europe-west2.rep.googleapis.com

完全なリージョン一覧は公式ドキュメントを参照してください。

対応エンジン

以下のエンジンで対応しています。

エンジン ステータス
Cloud SQL for MySQL Preview
Cloud SQL for PostgreSQL Preview
Cloud SQL for SQL Server Preview

実際に試してみる

前提条件

  • Google Cloud プロジェクトが準備済み
  • gcloud CLIが認証済み
  • Cloud SQL インスタンスが作成済み(asia-northeast1 リージョン)

作成済みのインスタンス
作成済みのインスタンス

グローバルエンドポイントとの比較

まず従来のグローバルエンドポイントでインスタンス一覧を取得します。

# グローバルエンドポイント(従来)
ACCESS_TOKEN=$(gcloud auth print-access-token)
PROJECT_ID=YOUR_PROJECT_ID  # ご自身のプロジェクトIDに変更してください

curl -s \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  "https://sqladmin.googleapis.com/v1/projects/${PROJECT_ID}/instances" \
  | jq '.items[]? | {name, databaseVersion, region, state}'

{
  "name": "test-instance",
  "databaseVersion": "POSTGRES_18",
  "region": "asia-northeast1",
  "state": "RUNNABLE"
}

次に、地域別エンドポイントを使って同じリクエストを投げてみます。asia-northeast1(東京)リージョンの場合

# 地域別エンドポイント(Preview)
curl -s \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  "https://sqladmin.asia-northeast1.rep.googleapis.com/v1/projects/${PROJECT_ID}/instances" \
  | jq '.items[]? | {name, databaseVersion, region, state}'

{
  "name": "test-instance",
  "databaseVersion": "POSTGRES_18",
  "region": "asia-northeast1",
  "state": "RUNNABLE"
}

gcloud CLI での使用

api_endpoint_overrides を設定すると、通常の gcloud コマンドが地域別エンドポイント経由で実行されます。

# asia-northeast1 リージョンの地域別エンドポイントを設定
gcloud config set api_endpoint_overrides/sql https://sqladmin.asia-northeast1.rep.googleapis.com/

Updated property [api_endpoint_overrides/sql].

# 設定後は通常の gcloud コマンドが地域別エンドポイント経由で動作する
gcloud sql instances list --project=YOUR_PROJECT_ID

NAME           DATABASE_VERSION  LOCATION           TIER              PRIMARY_ADDRESS  PRIVATE_ADDRESS  STATUS
test-instance  POSTGRES_18       asia-northeast1-b  db-custom-1-3840  34.xxx.xxx.xxx   -                RUNNABLE

# 設定を元に戻す場合
gcloud config unset api_endpoint_overrides/sql

Unset property [api_endpoint_overrides/sql].

Terraform での使用

環境変数 GOOGLE_SQL_CUSTOM_ENDPOINT でエンドポイントを上書きできます。

# 末尾の /sql が必要
export GOOGLE_SQL_CUSTOM_ENDPOINT="https://sqladmin.asia-northeast1.rep.googleapis.com/sql"

Python(requests)での使用

import requests
import google.auth
import google.auth.transport.requests

# Application Default Credentials を取得してリフレッシュ
credentials, _ = google.auth.default(
    scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
credentials.refresh(google.auth.transport.requests.Request())

PROJECT_ID = "YOUR_PROJECT_ID"  # ご自身のプロジェクトIDに変更してください

# 地域別エンドポイントを指定してリクエスト
url = f"https://sqladmin.asia-northeast1.rep.googleapis.com/v1/projects/{PROJECT_ID}/instances"
response = requests.get(url, headers={"Authorization": f"Bearer {credentials.token}"})
response.raise_for_status()

for instance in response.json().get("items", []):
    print(instance["name"])
test-instance

組織ポリシーとの組み合わせで完全なデータレジデンシーを実現

地域別エンドポイントを設定しただけでは、グローバルエンドポイントへのアクセスが引き続き可能です。完全にグローバルエンドポイントをブロックするには、Restrict Endpoint Usage 組織ポリシーを組み合わせます。

まずポリシーファイルを作成します。

cat <<EOF > /tmp/sqladmin-endpoint-policy.yaml
constraint: constraints/gcp.restrictEndpointUsage
listPolicy:
  deniedValues:
  - sqladmin.googleapis.com
EOF

dry-run モードで影響確認した後、本番適用します。

gcloud resource-manager org-policies set-policy \
  --project=YOUR_PROJECT_ID /tmp/sqladmin-endpoint-policy.yaml

注意点・制限事項

地域別エンドポイントを利用する際は以下の点に注意してください。

1. プライベート接続は非対応(パブリック接続のみ)

VPC や Private Service Connect(PSC)などのプライベートネットワーク経由のアクセスはサポートされていません。地域別エンドポイントへの接続はパブリックネットワーク(インターネット)経由のみ対応しています。

2. リージョンをまたぐ操作は非対応(4xx エラー)

地域別エンドポイントは厳格なリージョン境界を強制します。エンドポイントのリージョンとリクエスト対象リソースのリージョンが一致しない場合、リクエストは 4xx エラーで拒否されます。たとえば sqladmin.asia-northeast1.rep.googleapis.com からは us-central1 のインスタンスへアクセスできません。

3. バックアップ操作はグローバルエンドポイントを推奨

バックアップはクロスリージョンリストアを保証するためグローバルリソースとして扱われます。バックアップ操作(取得・復元)にはグローバルエンドポイント(sqladmin.googleapis.com)の使用を推奨します。

4. Cloud SQL MCP サーバーとの併用不可

リモートの Cloud SQL MCP サーバー(https://sqladmin.googleapis.com/mcp)には地域別エンドポイントを使用できません。MCP 接続はグローバルエンドポイントを使用してください。

5. グローバルエンドポイントよりレイテンシが高い場合がある

TLSセッションを特定リージョンで終端するため、クライアントがそのリージョンから遠い場合はレイテンシが増加する可能性があります。

まとめ

Cloud SQL Admin API の地域別エンドポイント(Preview)により、これまで「保存」と「暗号化」の制御に留まっていたCloud SQLのデータレジデンシーが、 API通信(データ転送中) まで拡張されました。

制御レイヤー 対象 使用する機能
データ保存場所 データ at rest constraints/gcp.resourceLocations
データ転送経路 データ in transit(管理API) 地域別エンドポイント + constraints/gcp.restrictEndpointUsage
API境界制御 データエクスポート防止 VPC Service Controls
暗号化鍵の所在 鍵管理 CMEK (Cloud KMS / Cloud HSM)

この4層を組み合わせることで、包括的なデータレジデンシー対策が実現できます。

金融・医療・官公庁など、データの所在地に厳格な要件を持つ組織にとって、この機能追加は大きな前進かと思います。constraints/gcp.restrictEndpointUsage 組織ポリシーや VPC Service Controls との組み合わせで、より強固なコンプライアンス環境を構築できます。

まだ Preview 段階ですが、コンプライアンス要件が厳しい環境での採用検討に向けて、今のうちに動作を確認しておくことをお勧めします。

この記事が誰かの助けになれば幸いです。

以上、クラウド事業本部コンサルティング部の渡邉でした!

この記事をシェアする

関連記事