クロスオリジン リソース シェアリング(CORS)は、さまざまな生成元のリソース間でのやり取りを可能にし、通常は悪意のある動作を防ぐために禁止されています。このページで、Cloud Storage バケットの CORS 構成の設定方法と、バケットに設定された CORS 構成の表示方法について説明します。バケットの既存の構成を無効にする構成など、CORS 構成の例については、CORS の構成例をご覧ください。
必要なロール
バケットの CORS 構成の設定と表示に必要な権限を取得するには、そのバケットに対するストレージ管理者(roles/storage.admin
)ロールの付与を管理者に依頼します。
この事前定義ロールには、CORS 構成の設定と表示に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.buckets.get
storage.buckets.update
これらの権限は、他の事前定義ロールやカスタムロールを使用して取得することもできます。
バケットに対するロールの付与については、バケットで IAM を使用するをご覧ください。
バケットに CORS 構成を設定する
バケットの CORS 構成を設定するには、バケットで受け入れられるリクエストのタイプを識別する情報(HTTP メソッドや発信元のドメインなど)を指定します。
バケットの CORS 構成を設定するには、次の操作を行います。
コンソール
Google Cloud コンソールを使用して CORS を管理することはできません。代わりに gcloud CLI を使用してください。
コマンドライン
適用する CORS 構成を含む JSON ファイルを作成します。サンプルの JSON ファイルについては、構成例をご覧ください。
gcloud storage buckets update
コマンドを使用し、--cors-file
フラグを指定します。gcloud storage buckets update gs://BUCKET_NAME --cors-file=CORS_CONFIG_FILE
ここで
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
CORS_CONFIG_FILE
は、手順 1 で作成した JSON ファイルへのパスです。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに CORS 構成を設定しています。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに CORS 構成を設定しています。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに CORS 構成を設定しています。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに CORS 構成を設定しています。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに CORS 構成を設定しています。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに CORS 構成を設定しています。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに CORS 構成を設定しています。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに CORS 構成を設定しています。
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。適用する CORS 構成を含む JSON ファイルを作成します。サンプルの JSON ファイルについては、構成例をご覧ください。
cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。curl --request PATCH \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=cors' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' \ --header 'Content-Type: application/json' \ --data-binary @CORS_CONFIG_FILE
ここで
BUCKET_NAME
はバケットの名前です。例:my-bucket
CORS_CONFIG_FILE
は、手順 2 で作成した JSON ファイルへのパスです。
XML API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。適用する CORS 構成を含む XML ファイルを作成します。サンプルの XML ファイルについては、構成例をご覧ください。
cURL
を使用して、?cors
をスコープとするPUT Bucket
リクエストで XML API を呼び出します。curl -X PUT --data-binary @CORS_CONFIG_FILE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME?cors"
ここで
BUCKET_NAME
はバケットの名前です。例:my-bucket
PROJECT_ID
は、バケットに関連付けられているプロジェクトの ID です。例:my-project
CORS_CONFIG_FILE
は、手順 2 で作成した XML ファイルへのパスです。
バケットの CORS 構成を削除するには、空の CORS 構成を設定します。
バケットの CORS 構成を表示する
バケットの CORS 構成を表示するには:
コンソール
Google Cloud コンソールを使用して CORS を管理することはできません。代わりに gcloud CLI を使用してください。
コマンドライン
gcloud storage buckets describe
コマンドを使用し、--format
フラグを指定します。
gcloud storage buckets describe gs://BUCKET_NAME --format="default(cors_config)"
ここで、BUCKET_NAME
は、CORS 構成を表示するバケットの名前です。例: my-bucket
クライアント ライブラリ
クライアント ライブラリを使用してバケットの CORS 構成を表示するには、バケットのメタデータを表示する手順に沿って、レスポンスで CORS フィールドを探します。
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して JSON API を呼び出し、GET
Bucket リクエストを行います。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=cors"
ここで、
BUCKET_NAME
は、CORS 構成を表示するバケットの名前です。例:my-bucket
XML API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して、?cors
をスコープとするGET
バケット リクエストで XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?cors"
ここで、
BUCKET_NAME
は、CORS 構成を表示するバケットの名前です。例:my-bucket
次のステップ
- CORS 構成の例(バケットの CORS 構成を削除する例など)を確認する。
- CORS の詳細を確認する。
- CORS リクエストのトラブルシューティング方法を確認する。