ITAR 準拠のためのロケーション エンドポイント

このページでは、ロケーション エンドポイントを使用して Cloud Storage にアクセスする方法について説明します。ロケーション エンドポイントを使用すると、国際武器取引規則(ITAR)に準拠する方法でワークロードを実行できます。

ITAR に準拠した方法で Cloud Storage を使用する際の制限については、ITAR の制限事項をご覧ください。

概要

ロケーション エンドポイントは、影響を受けるリソースがエンドポイントで指定されたロケーションに存在する場合にのみ、リクエストの続行を許可するリクエスト エンドポイントです。たとえば、バケットの削除リクエストでエンドポイント https://us-central1-storage.googleapis.com を使用した場合、バケットが US-CENTRAL1 にある場合にのみリクエストが処理されます。

リソースが存在する場所とは異なるロケーションでリクエストを処理できるグローバル エンドポイントとは異なり、ロケーション エンドポイントは、リソースが存在するエンドポイントによって指定されたロケーション内でのみ、リクエストが処理されることを保証します。ロケーション エンドポイントを使用すると、保存中のデータと転送中のデータが管轄区域内にとどまり、データ所在地の要件を満たすことができます。

ロケーション エンドポイントを使用すると、次のことが保証されます。

  • Cloud Storage に保存されたデータは、指定されたロケーションから移動しません。

  • オンプレミスから Google Cloud に転送する際に、エンドポイントで指定されたリージョンで TLS 終端が行われます。

  • Google Cloud サービス間で転送する場合、データは管轄内に保持されます。

ロケーション エンドポイントを使用する場合、ユーザーが次の責任を負うことを前提とします。

  • データ所在地に関する保証を取得するため、ロケーション エンドポイントに対するリクエストは、同じロケーションから送信されている必要があります。たとえば、Compute Engine の仮想マシンを使用して、us-central1-storage.googleapis.com エンドポイント経由で US-CENTRAL1 に存在するバケットへのリクエストを実行する場合、仮想マシンも US-CENTRAL1 に存在する必要があります。

  • ロケーション エンドポイントは、サポートされているオペレーションを実行する場合にのみ使用する必要があります。サポートされていないオペレーションを実行すると、エラーが発生します。

ロケーション エンドポイントは、オンプレミスまたは Google Cloud 間(Interconnect または VPN 経由)のトラフィックと、Google Cloud サービス間の転送トラフィック(BigQuery から Cloud Storage など)をサポートします。インターネット トラフィックはサポートされていません。

サポートされているオペレーション

次の表は、ロケーション エンドポイントを使用して実行できるオペレーションと実行できないオペレーションをまとめたものです。一般に、ロケーション内オペレーションはロケーション エンドポイントを使用して実行できますが、ロケーション間オペレーションは実行できません

ロケーション エンドポイントを使用してサポートされていないオペレーションを実行しようとすると、Cloud Storage は次のようなメッセージとともに 400 HTTP エラーコードを返します。「このエンドポイントはオペレーションを実装していません。グローバル エンドポイントを使用してください。」

オペレーション オブジェクト データの変更 ロケーション エンドポイントでの使用のサポート
オブジェクトの作成 1
オブジェクトの削除 × 1
オブジェクトの取得 1
オブジェクトの挿入 1
オブジェクトの一覧表示 × 1
オブジェクトのパッチ × 1
オブジェクトのコピー 4
オブジェクトの書き換え 4
バケットの挿入 × 2
バケットの削除 × 3
バケットの取得 × 2
バケットのパッチ × 2
バケットの更新 × 2
バケットの getIamPolicy × 2
バケットの setIamPolicy × 2
バケットの testIamPermissions × 2
バケットの lockRetentionPolicy × 2
バケットの BucketAccessControls × 2
バケットの DefaultObjectAccessControls × 2
バケットの ObjectAccessControls × 2
HMAC キー オペレーション × ×
サービス アカウントのオペレーション × ×
Pub/Sub 通知オペレーション オペレーションによって異なる ×
オブジェクト変更通知オペレーション オペレーションによって異なる ×
バッチ オペレーション オペレーションによって異なる ×

1 ロケーション エンドポイントを使用してこのオペレーションを実行するには、影響を受けるオブジェクトを含むバケットがエンドポイントで指定されたロケーションに存在する必要があります。たとえば、us-central1-storage.googleapis.com へのオブジェクト削除リクエストは、US-CENTRAL1 リージョンにあるバケット内のオブジェクトの削除にのみ使用できます。US-CENTRAL1 以外の場所にあるオブジェクトを削除しようとすると、オペレーションは NOT_FOUND エラーを返します。

2 ロケーション エンドポイントを使用してこのオペレーションを実行するには、エンドポイントで指定されたロケーションにバケットが存在する必要があります。たとえば、us-central1-storage.googleapis.com へのバケット作成リクエストは、US-CENTRAL1 リージョンにバケットを作成する場合にのみ使用できます。US-CENTRAL1 以外のロケーションにバケットを作成しようとすると、バケットの作成オペレーションで INVALID_ARGUMENT エラーが返されます。

3 ロケーション エンドポイントを使用してこのオペレーションを実行するには、エンドポイントで指定されたロケーションにバケットが存在する必要があります。たとえば、us-central1-storage.googleapis.com へのバケット削除リクエストは、US-CENTRAL1 リージョンのバケットの削除にのみ使用できます。US-CENTRAL1 以外のロケーションのバケットを削除しようとすると、オペレーションで NOT_FOUND エラーが返されます。

4 ロケーション エンドポイントを使用してこのオペレーションを行うには、送信元バケットと宛先バケットの両方がエンドポイントで指定されたロケーションに存在する必要があります。たとえば、両方のバケットが同じロケーションに存在する場合は、ロケーション エンドポイントを使用して、バケット間でオブジェクトをコピーできます。ただし、バケットが複数のロケーションに存在する場合は、ロケーション エンドポイントを使用してバケット間でオブジェクトをコピーすることはできません。送信元バケットまたは宛先バケットがエンドポイントで指定された場所と異なる場所に存在する場合は、NOT_FOUND エラーが返されます。

サポートされるリージョン

ロケーション エンドポイントは、すべての米国リージョン、US マルチリージョン、NAM4 事前定義デュアルリージョンでサポートされています。指定できるリージョンの詳細については、バケットのロケーションをご覧ください。

リクエストの実行

コンソール

Google Cloud コンソールを使用して ITAR に準拠したオペレーションを実行する方法については、ITAR に関する制限事項をご覧ください。

コマンドライン

ロケーション エンドポイントで使用できるように Google Cloud CLI を構成するには:

  1. api_endpoint_overrides/storage プロパティを、使用するロケーション エンドポイントに設定します。

    gcloud config set api_endpoint_overrides/storage https://LOCATION-storage.googleapis.com/

このプロパティを設定したら、通常どおりに gcloud CLI コマンドを使用できます。

また、各コマンドで CLOUDSDK_API_ENDPOINT_OVERRIDES_STORAGE 環境変数を設定することで、個々のコマンドにロケーション エンドポイントを使用することもできます。例:

CLOUDSDK_API_ENDPOINT_OVERRIDES_STORAGE=https://LOCATION-storage.googleapis.com/ gcloud ls gs://my-bucket

クライアント ライブラリ

Cloud Storage クライアント ライブラリはリクエスト エンドポイントを自動的に管理しますが、ロケーション エンドポイントは手動で設定できます。ロケーション エンドポイントの設定方法については、リクエスト エンドポイントを使用したクライアント ライブラリのコードサンプルをご覧ください。

REST API

JSON API

ロケーション エンドポイントへのリクエストを行う場合は、次の URI を使用します。

  • オブジェクトのアップロード以外の一般的な JSON API リクエストの場合は、次のエンドポイントを使用します

    https://LOCATION-storage.googleapis.com

    LOCATION は、サポートされているバケットのロケーションに置き換えます。例: us-central1

  • JSON API オブジェクトのアップロードの場合は、次のエンドポイントを使用します。

    https://LOCATION-storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o

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

    • LOCATION は、サポートされているバケットのロケーションに置き換えます。例: us-central1

    • BUCKET_NAME は、オブジェクトをアップロードするバケットの名前に置き換えます。例: my-example-bucket

  • JSON API オブジェクトのダウンロードには、次のエンドポイントを使用します。

    https://LOCATION-storage.googleapis.com/download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media

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

    • LOCATION は、サポートされているバケットのロケーションに置き換えます。例: us-central1

    • BUCKET_NAME は、ダウンロードするオブジェクトを含むバケットの名前に置き換えます。例: my-example-bucket

    • OBJECT_NAME は、アップロードするオブジェクトの名前で置き換えます。例: waterfall.png

JSON API エンドポイントでは HTTPS リクエストのみがサポートされます。

XML API

XML API を使用してロケーション エンドポイントにリクエストを送信する場合は、仮想ホスト形式のエンドポイントまたはパス形式のエンドポイントを使用できます。

  • 仮想ホスト形式のエンドポイント:

    https://BUCKET_NAME.LOCATION-storage.googleapis.com
  • パス形式のエンドポイント:

    https://LOCATION-storage.googleapis.com/BUCKET_NAME

両方のエンドポイント タイプで、次のように置き換えます。

  • LOCATION は、サポートされているバケットのロケーションに置き換えます。例: us-central1

  • BUCKET_NAME は、有効なバケット名に置き換えます。例: my-example-bucket

XML API エンドポイントでは、SSL(Secure Sockets Layer)暗号化がサポートされているため、HTTP または HTTPS のいずれかを使用できます。HTTPS の使用をおすすめします。特に、Cloud Storage に対して OAuth 2.0 を使用して認証する場合は、この方法をおすすめします。

リクエストの形式を適切に設定する

Cloud Storage のツール間でリクエストとの互換性を確保するには:

既知の制約

mTLS エンドポイントはサポートされていません。