このページでは、保持ポリシーを使用したバケットの永続的なロックなど、バケットロック機能の使用方法について説明します。
始める前に
バケットロック機能を使用する前に、次のセクションの手順が完了していることを確認してください。
必要なロールを取得する
バケットロックの使用に必要な権限を取得するには、バケットに対するストレージ管理者(roles/storage.admin
)ロールを付与するよう管理者に依頼してください。この事前定義ロールには、バケットロックの使用に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
storage.buckets.get
storage.buckets.list
- この権限は、Google Cloud コンソールを使用してこのページの手順を実施する場合にのみ必要です。
storage.buckets.update
カスタムロールを使用して、これらの権限を取得することもできます。
バケットに対するロールの付与については、バケットで IAM を使用するをご覧ください。
バケットに保持ポリシーを設定する
バケットで保持ポリシーを追加、変更、削除するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、保持ポリシーを変更するバケットの名前をクリックします。
ページ上部にある [保護] タブを選択します。
[保持ポリシー] セクションで、保持ポリシーを設定します。
現在バケットに適用されている保持ポリシーがない場合は、[add_box 保持ポリシーを設定] をクリックします。保持期間の単位と長さを選択します。
バケットに現在適用されている保持ポリシーがセクションに表示されます。[編集] をクリックして保持期間を変更するか、[削除] をクリックして保持ポリシーを完全に削除します。
Google Cloud コンソールで別の時間単位に変換する方法については、保持期間をご覧ください。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
適切なフラグを指定して、gcloud storage buckets update
コマンドを使用します。
gcloud storage buckets update gs://BUCKET_NAME FLAG
ここで
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
FLAG
は、バケットの保持期間に必要な設定です。次のいずれかの形式で指定してください。--retention-period
と保持期間。保持ポリシーを追加または変更する場合。例:--retention-period=1d43200s
--clear-retention-period
。バケットの保持ポリシーを削除する場合。
成功した場合、レスポンスは次のようになります。
Updating gs://my-bucket/... Completed 1
クライアント ライブラリ
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
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。次の情報が含まれる JSON ファイルを作成します。
{ "retentionPolicy": { "retentionPeriod": "TIME_IN_SECONDS" } }
ここで、
TIME_IN_SECONDS
は、バケット内のオブジェクトを保持する時間(秒単位)です。例:2678400
。さまざまな時間単位を秒で測定する方法については、保持期間をご覧ください。バケットから保持ポリシーを削除するには、JSON ファイルで次のコマンドを使用します。
{ "retentionPolicy": null }
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=retentionPolicy"
ここで
JSON_FILE_NAME
は、手順 2 で作成した JSON ファイルのパスです。BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
XML API
XML API を使用して、既存バケットの保持ポリシーの設定または削除を行うことはできません。これは、新しいバケットに保持ポリシーを追加する場合にのみ使用できます。
バケットをロックする
バケットをロックしてバケットの保持ポリシーを編集できなくするには、次の操作を行います。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、保持ポリシーをロックするバケットの名前をクリックします。
ページ上部にある [保護] タブを選択します。
[保持ポリシー] セクションで、[ロック] ボタンをクリックします。
[保持ポリシーをロックしますか?] ダイアログ ボックスが表示されます。
ロックした場合の注意事項を確認します。
[バケット名] テキスト ボックスにバケットの名前を入力します。
[ポリシーをロック] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
gcloud storage buckets update
コマンドを使用し、--lock-retention-period
フラグを指定します。
gcloud storage buckets update gs://BUCKET_NAME --lock-retention-period
BUCKET_NAME
は、該当するバケットの名前です。例: my-bucket
正常に終了すると、レスポンスは次の例のようになります。
Updating gs://my-bucket/... Completed 1
クライアント ライブラリ
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
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、POST
Bucket リクエストで JSON API を呼び出します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/lockRetentionPolicy?ifMetagenerationMatch=BUCKET_METAGENERATION_NUMBER"
ここで
BUCKET_NAME
は、関連するバケットの名前です。例:my-bucket
BUCKET_METAGENERATION_NUMBER
はバケットの metageneration 値です。例:8
。バケットの metageneration 値を確認するには、JSON API を呼び出して、GET
Bucket リクエストを行います。
XML API
XML API を使用してバケットをロックすることはできません。代わりに、Google Cloud コンソールなどの他の Cloud Storage ツールを使用してください。
バケットの保持ポリシーとロック ステータスを確認する
バケットに設定されている保持ポリシーとロック状態を確認するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
ステータスを表示するバケットの名前をクリックします。
バケットに保持ポリシーが設定されている場合、保持期間はバケットの [保護] フィールドに表示されます。保持ポリシーがロックされていない場合、ロックが解除された状態の鍵アイコンが保持期間の横に表示されます。保持ポリシーがロックされている場合、ロックされた状態の鍵アイコンが保持期間の横に表示されます。
コマンドライン
gcloud storage buckets describe
コマンドを使用し、--format
フラグを指定します。
gcloud storage buckets describe gs://BUCKET_NAME --format="default(retention_policy)"
ここで、BUCKET_NAME
は、保持ポリシーを表示するバケットの名前です。例: my-bucket
処理に成功し、バケットに保持ポリシーが存在する場合、レスポンスは次のようになります。
retention_policy: effectiveTime: '2022-10-04T18:51:22.161000+00:00' retentionPeriod: '129600'
処理に成功し、バケットに保持ポリシーが存在しない場合、レスポンスは次のようになります。
null
クライアント ライブラリ
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
gcloud CLI のインストールと初期化を行います。これにより、
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=retentionPolicy"
BUCKET_NAME
は、該当するバケットの名前です。例:my-bucket
バケットに保持ポリシーが設定されている場合、レスポンスは次のようになります。
{ "retentionPolicy": { "retentionPeriod": "TIME_IN_SECONDS", "effectiveTime": "DATETIME", "isLocked": "BOOLEAN" }, }
XML API
XML API を使用して、バケットの保持ポリシーを確認することはできません。代わりに、Google Cloud コンソールなどの他の Cloud Storage ツールを使用してください。
次のステップ
- 保持ポリシーの詳細を確認する。
- オブジェクト保留の使用方法を確認する。
- オブジェクトのライフサイクル管理について確認する。これにより、保持期限に達したファイルを自動的に削除できます。