このページでは、公開アクセスを防止するバケットの設定と組織のポリシーの制約の使用方法について説明します。公開アクセスの防止により、バケットとオブジェクトへの公開アクセスを制限できます。
始める前に
Cloud Storage で公開アクセスの防止を使用する前に、必要な IAM ロールがあることを確認し、公開アクセスの防止の適用に関する考慮事項を確認してください。
必要なロールを取得する
プロジェクト、フォルダ、または組織レベルで公開アクセス防止の組織ポリシーを管理するには、組織の組織ポリシー管理者(roles/orgpolicy.policyAdmin
)ロールを付与するよう管理者に依頼してください。この事前定義ロールには、プロジェクト、フォルダ、組織レベルで公開アクセスの防止を管理するために必要な権限が含まれています。このロールに含まれる権限については、組織管理者のロールの詳細をご覧ください。
バケットでの公開アクセス防止の設定を管理するには、バケットに対するストレージ管理者(roles/storage.admin
)ロールを付与するよう管理者に依頼してください。このロールには、バケットでの公開アクセスの防止を管理するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.buckets.update
storage.buckets.setIamPolicy
ストレージ管理者のロールに含まれるその他の権限については、ストレージ管理者のロールの詳細をご覧ください。
考慮事項を確認する
始める前に、公開アクセスをブロックしてもワークフローが中断されないことを確認することをおすすめします。詳細については、既存のリソースで適用する際の考慮事項をご覧ください。
バケット設定を使用する
このセクションでは、個々のバケットに対して公開アクセス防止を適用または削除する方法と、個々のバケットのステータスを確認する方法について説明します。
公開アクセスの防止を設定する
個々のバケットの公開アクセスの防止設定を変更するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、公開アクセスの防止を適用または削除するバケットの名前をクリックします。
[バケットの詳細] ページで、[権限] タブをクリックします。
[公開アクセス] カードで、[公開アクセスの防止] をクリックして公開アクセスの防止を適用するか、[一般公開アクセスを許可] をクリックして公開アクセスの防止を削除します。
[確認] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
適切なフラグを指定して、gcloud storage buckets update
コマンドを使用します。
gcloud storage buckets update gs://BUCKET_NAME FLAG
ここで
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
FLAG
は、公開アクセスの防止を有効にする場合は--public-access-prevention
、無効にする場合は--no-public-access-prevention
です。
正常に終了すると、レスポンスは次の例のようになります。
Updating gs://my-bucket/... Completed 1
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに対して公開アクセスの防止を適用します。
次のサンプルでは、バケットに対して公開アクセスの防止を inherited
に設定します。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに対して公開アクセスの防止を適用します。
次のサンプルでは、バケットに対して公開アクセスの防止を inherited
に設定します。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに対して公開アクセスの防止を適用します。
次のサンプルでは、バケットに対して公開アクセスの防止を inherited
に設定します。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに対して公開アクセスの防止を適用します。
次のサンプルでは、バケットに対して公開アクセスの防止を inherited
に設定します。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに対して公開アクセスの防止を適用します。
次のサンプルでは、バケットに対して公開アクセスの防止を inherited
に設定します。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに対して公開アクセスの防止を適用します。
次のサンプルでは、バケットに対して公開アクセスの防止を inherited
に設定します。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに対して公開アクセスの防止を適用します。
次のサンプルでは、バケットに対して公開アクセスの防止を inherited
に設定します。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルでは、バケットに対して公開アクセスの防止を適用します。
次のサンプルでは、バケットに対して公開アクセスの防止を inherited
に設定します。
REST API
JSON API
Authorization
ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。OAuth 2.0 Playground を使用してアクセス トークンを作成し、
Authorization
ヘッダーに含めることもできます。次の情報が含まれる JSON ファイルを作成します。
{ "iamConfiguration": { "publicAccessPrevention": "STATE", } }
ここで、
<var>STATE</var>
はenforced
またはinherited
です。cURL
を使用して、目的のfields
を含むPATCH
Bucket リクエストで JSON API を呼び出します。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
は、前の手順で作成した JSON ファイルのパスです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
XML API を使用して公開アクセスの防止を管理することはできません。代わりに、Google Cloud コンソールなどの他の Cloud Storage ツールを使用してください。
公開アクセス防止のステータスを表示する
個々のバケットの公開アクセス防止のステータスを表示するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
公開アクセスの防止のステータスを表示するバケットの名前をクリックします。
[権限] タブをクリックします。
[公開アクセス] カードにバケットのステータスが表示されます。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud storage buckets describe
コマンドを使用し、--format
フラグを指定します。
gcloud storage buckets describe gs://BUCKET_NAME --format="default(public_access_prevention)"
ここで、BUCKET_NAME
はステータスを表示するバケットの名前です。例: my-bucket
正常に終了すると、レスポンスは次の例のようになります。
public_access_prevention:inherited
クライアント ライブラリ
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": { ... "publicAccessPrevention": "FLAG" } }
ここで、
FLAG
はinherited
またはenforced
です。
XML API
XML API を使用して公開アクセスの防止を管理することはできません。代わりに、Google Cloud コンソールなどの他の Cloud Storage ツールを使用してください。
組織のポリシーを使用する
このセクションでは、公開アクセスを防止する組織のポリシーを適用する方法と、ポリシーのステータスを確認する方法を説明します。
公開アクセスの防止を設定する
プロジェクト、フォルダ、組織レベルで公開アクセスの防止を無効にするには:
コンソール
storage.publicAccessPrevention
制約を使用して、組織のポリシーの作成と管理の手順に沿って操作します。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud beta resource-manager org-policies
コマンドを使用します。
gcloud beta resource-manager org-policies STATE \ constraints/storage.publicAccessPrevention \ --RESOURCE RESOURCE_ID
ここで
STATE
は次のいずれかの値を取ります。enable-enforce
: リソースに対する公開アクセスの防止を適用します。disable-enforce
: リソースに対する公開アクセスの防止を無効にします。delete
: リソースが親リソースの値を継承できるように、リソースから組織のポリシーの制約を削除します。
RESOURCE
は、公開アクセスの防止を無効にするリソースです。たとえば、organization
、project
、folder
です。RESOURCE_ID
はリソースの ID です。たとえば、組織 ID に123456789012
、フォルダ ID に245321
、プロジェクト ID にmy-pet-project
を使用します。
詳しくは、制約の使用をご覧ください。
disable-enforce
使用時の出力の例を次に示します。
etag: BwVJi0OOESU= booleanPolicy: {} constraint: constraints/storage.publicAccessPrevention
公開アクセス防止のステータスを表示する
プロジェクト、フォルダ、組織レベルで公開アクセス防止のステータスを表示するには:
コンソール
storage.publicAccessPrevention
制約を使用して、組織のポリシーの作成と管理の手順に沿って操作します。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
describe --effective
コマンドを使用します。
gcloud beta resource-manager org-policies describe \ constraints/storage.publicAccessPrevention --effective \ --RESOURCE RESOURCE_ID
ここで
RESOURCE
は、公開アクセス防止のステータスを表示するリソースです。たとえば、organization
、project
、folder
です。RESOURCE_ID
は、リソースの ID です。たとえば、組織 ID には123456789012
、フォルダ ID には245321
、プロジェクト ID にはmy-pet-project
などです。
詳しくは、制約の使用をご覧ください。