エンドポイント使用の制限

このページでは、企業管理者が Google Cloud リソース階層内で使用できる Google Cloud API エンドポイントを制御するための、エンドポイントの使用を制限する 組織のポリシーの制約の概要を説明します。

管理者は、この制約を使用して、グローバル エンドポイント、ロケーション エンドポイント、リージョン エンドポイントなど、許可された Google Cloud API エンドポイントに階層的な制限を定義できます。たとえば、グローバル bigquery.googleapis.com エンドポイントへのリクエストを拒否するが、ロケーション LOCATION-bigquery.googleapis.com エンドポイントへのリクエストは許可するようにプロジェクトを構成できます。グローバル API エンドポイントの使用を制限して、許可されたロケーション エンドポイントまたはリージョン エンドポイントのみが使用されるようにすることで、コンプライアンス要件を満たすことができます。

エンドポイントの使用を制限する制約は拒否リストを使用して設定されます。明示的に拒否されていないサポート対象のサービスの API エンドポイントへのリクエストは許可されます。

この制約は、すべての対象リソースへのランタイム アクセスを制御します。この制約を含む組織のポリシーが更新されると、ポリシーのスコープ内のすべてのリソースに結果整合性が保たれた状態で適用されます。

管理者は、この制約を含む組織のポリシーの更新を慎重に管理することをおすすめします。たとえば、ポリシーの変更が適用される前に、既存のワークフローにどのような影響を与えるかをモニタリングするために、ドライラン モードでポリシーを設定することを検討する必要があります。

API エンドポイント タイプ

API エンドポイント(またはサービス エンドポイント)は、 Google Cloud API サービスのネットワーク アドレス(bigquery.googleapis.com など)を指定する URL です。Google Cloud サービスでは、グローバル エンドポイント、ロケーション エンドポイント、リージョン エンドポイントなど、さまざまな種類の API エンドポイントを使用してリソースにアクセスできます。各タイプのサポートはサービスによって異なります。

グローバル API エンドポイント

グローバル API エンドポイントは、URL ホスト名でロケーションを指定しません。これらのグローバル スコープのエンドポイントは、可能な限りクライアントに近い場所で TLS セッションを終端する高可用性サービス エンドポイントを提供します。これにより、分散したクライアント群からのインターネット経由での API 呼び出しを処理する際のレイテンシを最小限に抑えることができます。ただし、これらのエンドポイントは、リージョン分離やデータ所在地コンプライアンスを提供しません。

グローバル依存関係を処理でき、Google のグローバル ネットワークから高速なパフォーマンスを必要とするアプリケーションには、グローバル エンドポイントを使用できます。

グローバル エンドポイントの形式は次のとおりです。

SERVICE.googleapis.com

ここで、SERVICE は Google Cloud サービスの名前(storagecomputebigquery など)です。

ロケーション API エンドポイント

リージョン API エンドポイントは、ロケーション エンドポイントに代わるものです。ロケーション エンドポイントは、特定のロケーションのデータにアクセスするために使用できるリージョンまたはマルチリージョン サービス ホスト名です。

ただし、ロケーション エンドポイントは次の機能をサポートしていません。

  • インターネット経由のオンプレミスからのデータ所在地コンプライアンスを満たす接続
  • 障害ドメインの分離

ロケーション エンドポイントは、URL ホスト名でロケーションを指定します。形式は次のとおりです。

LOCATION-SERVICE.googleapis.com

  • LOCATION: Google Cloud リージョン名(us-central1europe-west1us など)。
  • SERVICE: Google Cloud サービスの名前(storagecomputebigquery など)。

リージョン API エンドポイント

リージョン API エンドポイントは、単一の Google Cloud リージョンにスコープ設定された API エンドポイントを介して Google Cloud サービスへのアクセスを提供します。リージョン エンドポイントに送信されたトラフィックは、指定されたリージョン内で完全に処理され、TLS が終端されます。

ほとんどの Google Cloud サービスでは、リージョン エンドポイントを使用して、指定されたリージョン内のリージョン リソースを操作できます。通常、リージョン エンドポイントからグローバル リソース、マルチリージョン リソース、リージョン外のリージョン リソースに対するオペレーションはサポートされていません。

リージョン API エンドポイントは、ロケーションをサブドメインとして指定します。パブリック リージョン エンドポイントの形式は次のとおりです。

SERVICE.REGION.rep.googleapis.com

  • SERVICE: Google Cloud サービスの名前(storagecomputebigquery など)。
  • REGION: Google Cloud リージョン名(us-central1europe-west1 など)。

プライベート リージョン API エンドポイントの形式は次のとおりです。

SERVICE.REGION.p.rep.googleapis.com

  • SERVICE: Google Cloud サービスの名前(storagecomputebigquery など)。
  • REGION: Google Cloud リージョン名(us-central1europe-west1 など)。
  • .p.: Private Service Connect 接続用のプライベート ターゲットを示します。

制限事項

エンドポイントの使用を制限する制約は、特定の API エンドポイントを使用してリソースにアクセスする機能を制御します。以下のような、その他の類似の制約と混同しないようにしてください。

稼働中の既存のインフラストラクチャの破損を防ぐには、本番環境以外のプロジェクトとフォルダで新しい組織のポリシーをテストしてから、組織内で段階的にポリシーを適用してください。

この制約は、プロダクトとリソースタイプの特定のサブセットに適用されます。サポートされているサービスと各サービスの動作の詳細については、サポートされている API エンドポイントのセクションをご覧ください。

データ保存コミットメントについては、Google Cloud 利用規約サービス固有の規約をご覧ください。エンドポイントの使用を制限する制約を含む組織のポリシーは、データ所在地のコミットメントではありません。

組織のポリシーの設定

組織ポリシーの設定、変更、削除を行うには、組織ポリシー管理者のロールが必要です。

組織のポリシーの制約は、組織レベル、フォルダレベル、プロジェクト レベルで設定できます。各ポリシーは、対応するリソース階層内のすべてのリソースに適用されますが、リソース階層の下位レベルでオーバーライドできます。

ポリシー評価の詳細については、階層評価を理解するをご覧ください。

エンドポイントの使用を制限する制約は、リスト型制約の一種です。制約の denied_values リストでエンドポイントを追加または削除できます。

コンソール

  1. Google Cloud コンソールの [組織のポリシー] ページに移動します。

    [組織のポリシー] に移動

  2. プロジェクト選択ツールから、組織のポリシーを設定する組織、フォルダ、またはプロジェクトを選択します。

  3. 組織のポリシーのテーブルで、[エンドポイントの使用を制限する] を選択して [ポリシーの詳細] ページを開きます。

  4. [ポリシーを管理] をクリックします。

  5. [対象] で、[カスタマイズ] を選択します。

  6. [ポリシーの適用] で、このポリシーに継承を適用する方法を選択します。

    1. 親リソースの組織のポリシーを継承してこれと結合する場合は、[親と結合する] を選択します。

    2. 既存の組織のポリシーをオーバーライドする場合は、[置換] を選択します。

  7. [ルールの追加] をクリックします。

  8. [ポリシーの値] で [カスタム] を選択します。

  9. [ポリシーの種類] で [拒否] を選択し、拒否されるエンドポイントのリストを作成します。

  10. [カスタム値] で、ブロックする API エンドポイントのホスト名をリストに追加します。

    1. たとえば、BigQuery のグローバル API エンドポイントをブロックするには、「bigquery.googleapis.com」と入力します。

    2. 他のエンドポイントを追加するには、[値を追加] をクリックします。

  11. ポリシーを適用するには、[保存] をクリックします。

gcloud

組織のポリシーは、gcloud resource-manager org-policies set-policy コマンドで設定できます。エンドポイントの使用を制限する制約を含む組織のポリシーを適用するには、まず更新するポリシーを含む YAML ファイルを作成します。

constraint: constraints/gcp.restrictEndpointUsage
listPolicy:
    deniedValues:
    - storage.googleapis.com
    - content-bigqueryreservation.googleapis.com
    - bigquerystorage.mtls.googleapis.com
    - logging.googleapis.com

コマンドを実行する前に、次のプレースホルダ値を独自の値に置き換えます。

  • RESOURCE_TYPE: リソースのタイプ(プロジェクトまたはフォルダ)。例: project
  • RESOURCE_ID: プロジェクトまたはフォルダのリソース ID。例: 8767234
gcloud resource-manager org-policies set-policy \
--RESOURCE_TYPE='RESOURCE_ID' /tmp/policy.yaml

レスポンスには、新しく設定された組織のポリシーが含まれます。

constraint: constraints/gcp.restrictEndpointUsage
etag: CKCRl6oGEPjG-tMB
listPolicy:
  deniedValues:
  - storage.googleapis.com
  - content-bigqueryreservation.googleapis.com
  - bigquerystorage.mtls.googleapis.com
  - logging.googleapis.com
updateTime: '2023-11-04T04:29:20.444507Z'

拒否された API エンドポイントへのリクエストがリソースにアクセスしようとすると、リクエストは失敗し、失敗の理由を説明するエラーが返されます。

ドライラン モードで組織のポリシーを作成する

ドライラン モードの組織のポリシーは、ポリシーの違反が監査ログに記録されながら違反アクションは拒否されないタイプの組織のポリシーです。エンドポイントの使用を制限する制約を使用して、ドライラン モードで組織のポリシーを作成して、それが組織にどう影響するかを、ライブのポリシーを適用する前にモニタリングできます。詳細については、ドライラン モードで組織のポリシーを作成するをご覧ください。

エラー メッセージ

エンドポイントを拒否するように組織のポリシーを設定すると、リソース階層内でそのエンドポイントを使用するオペレーションは失敗します。失敗の理由を説明するエラーが返されます。また、詳細なモニタリング、アラート、デバッグ用に監査ログエントリが生成されます。

エラー メッセージの例

次の例では、API エンドポイント storage.googleapis.com を使用した curl リクエストが、ポリシーの適用が原因で失敗します。

curl -X