このページでは、Cloud Storage のバケットに対する均一なバケットレベルのアクセスの有効化、無効化、ステータス確認を行う方法について説明します。
必要なロール
バケットに均一なバケットレベルのアクセスを設定し、これを管理するために必要な権限を取得するには、バケットに対するストレージ管理者(roles/storage.admin
)ロールを付与するよう管理者に依頼してください。この事前定義ロールには、バケットレベルのアクセス権を一元的に設定、管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.buckets.get
storage.buckets.list
- この権限は、Google Cloud コンソールを使用してこのページの手順を実施する場合にのみ必要です。
storage.buckets.update
カスタムロールを使用して、これらの権限を取得することもできます。
バケットのロールの付与については、バケットで IAM を使用するをご覧ください。
ACL 使用状況を確認する
均一なバケットレベルのアクセスを有効にする前に、Cloud Monitoring を使用して、バケットでどのワークフローにも ACL を使用していないことを確認します。詳しくは、オブジェクト ACL の使用状況を確認するをご覧ください。
コンソール
Metrics Explorer を使用してモニタリング対象リソースの指標を表示するには、次の操作を行います。
-
Google Cloud コンソールのナビゲーション パネルで [Monitoring] を選択し、次に [leaderboard Metrics Explorer] を選択します。
- [指標] 要素の [指標を選択] メニューを開いてフィルタバーに「
ACLs usage
」と入力し、サブメニューを使用して特定のリソースタイプと指標を選択します。- [有効なリソース] メニューで、[GCS バケット] を選択します。
- [ACTIVE METRIC CATEGORIES] メニューで、[Authz] を選択します。
- [ACTIVE METRICS] メニューで、[ACLs usage] を選択します。
- [適用] をクリックします。
- データの表示方法を構成します。たとえば、ACL オペレーション別にデータを表示するには、[集計] 要素で、最初のメニューを [合計] に、2 番目のメニューを [acl_operation] に設定します。
グラフの構成の詳細については、Metrics Explorer 使用時の指標を選択するをご覧ください。
Cloud Storage で使用可能な指標の一覧については、storage
をご覧ください。時系列の詳細については、指標、時系列、リソースをご覧ください。
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。cURL
を使用して Monitoring JSON API を呼び出します。curl \ 'https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%20%3D%20%22storage.googleapis.com%2Fauthz%2Facl_operations_count%22&interval.endTime=END_TIME&interval.startTime=START_TIME' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' \ --header 'Accept: application/json'
ここで
PROJECT_ID
は、ACL の使用状況を表示するプロジェクト ID またはプロジェクト番号です。例:my-project
END_TIME
は、ACL の使用状況を表示する期間の終了日時です。例:2019-11-02T15:01:23.045123456Z
START_TIME
は、ACL の使用状況を表示する期間の開始日時です。例:2016-10-02T15:01:23.045123456Z
。
リクエストが空のオブジェクト {}
を返した場合は、プロジェクトで最近使用した ACL がないということです。
均一なバケットレベルのアクセスの設定
バケットで均一なバケットレベルのアクセスを有効または無効にするには、次の手順を実施します。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、均一なバケットレベルのアクセスを有効または無効にするバケットの名前をクリックします。
ページ上部にある [権限] タブを選択します。
[アクセス制御] フィールドで、[Switch to] リンクをクリックします。
表示されたメニューで [均一] または [きめ細かい管理] を選択します。
[保存] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud storage buckets update
コマンドを使用します。
gcloud storage buckets update gs://BUCKET_NAME --STATE
ここで
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
- 均一なバケットレベルのアクセスを有効にする場合、
STATE
はuniform-bucket-level-access
、無効にする場合はno-uniform-bucket-level-access
です。
クライアント ライブラリ
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
ヘッダーに含めることもできます。次の情報が含まれる JSON ファイルを作成します。
{ "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": STATE } } }
ここで、STATE は
true
またはfalse
です。cURL
を使用して JSON API を呼び出し、PATCH
Bucket リクエストを行います。curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=iamConfiguration"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルのパスです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
XML API を使用して均一なバケットレベルのアクセスを操作することはできません。代わりに、gcloud CLI などの他の Cloud Storage ツールを使用してください。
均一なバケットレベルのアクセスのステータスを表示する
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
ステータスを表示するバケットの名前をクリックします。
[構成] タブをクリックします。
バケットの均一なバケットレベルのアクセスのステータスが [アクセス制御] フィールドに表示されます。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud storage buckets describe
コマンドを使用し、--format
フラグを指定します。
gcloud storage buckets describe gs://BUCKET_NAME --format="default(uniform_bucket_level_access)"
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
成功した場合、レスポンスは次のようになります。
uniform_bucket_level_access: true
クライアント ライブラリ
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
を使用して、目的のfields
を含むGET
Bucket リクエストで JSON API を呼び出します。curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=iamConfiguration"
BUCKET_NAME
は、該当するバケットの名前です。例:my-bucket
バケットで均一なバケットレベルのアクセスが有効になっている場合、レスポンスは次の例のようになります。
{ "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": true, "lockedTime": "LOCK_DATE" } } }
XML API
XML API を使用して均一なバケットレベルのアクセスを操作することはできません。代わりに、gcloud CLI などの他の Cloud Storage ツールを使用してください。