バケットロック

設定

このページでは、Cloud Storage バケットの保持ポリシーを構成できるバケットロック機能について説明します。このポリシーは、バケット内のオブジェクトを保持する期間を制御します。また、バケットの保持ポリシーをロックして、ポリシーの変更や削除を完全に防ぐこともできます。

この機能を使用すると、Cloud Storage に不変のストレージを作成できます。Cloud Storage のリクエストとレスポンスの詳細をログに記録する詳細な監査ロギングモードとともに、バケットロックは、FINRA、SEC、CFTC などの規制やコンプライアンス要件への対応に役立ちます。また、医療業界のデータ保持規制への対応にも役立ちます。

概要

  • バケットに保持ポリシーを追加して、保持期間を指定できます。

    • バケットの保持ポリシーが設定されている場合、バケット内のオブジェクトを削除または置換できるのは、保存期間が過ぎてからです。

    • ポリシーは、バケットに追加された新しいオブジェクトだけでなく、バケット内の既存のオブジェクトにさかのぼって適用されます。これは、オブジェクトごとにデータ保持要件を定義できるオブジェクト保持ロック機能とは異なります。

  • バケットの保持ポリシーをロックして、バケットに永続的に設定できます。

    • ポリシーをロックすると、そのポリシーを削除したり、保持期間を短縮することはできません。

    • バケット内のすべてのオブジェクトが保持期間を満たしていない限り、ロックされたポリシーのバケットを削除することはできません。

    • ロックされたポリシーの保持期間は延長できます。

    • ポリシーのロックは記録保持規制の遵守に役立ちます。

バケット保持ポリシー

保持ポリシーは、新しいバケットを作成するときに追加できます。また、既存のバケットに追加することもできます。バケットに保持ポリシーを設定すると、ポリシーに定義されている保持期間が経過するまで、バケット内のオブジェクトは削除または置き換えできなくなります。この制約は、現在バケットにあるオブジェクトだけでなく、今後バケットに作成されるオブジェクトにも適用されます。保持期間が経過していないオブジェクトを削除または置き換えしようとすると、403 - retentionPolicyNotMet エラーが発生し、処理が失敗します。

たとえば、バケット内にオブジェクト A とオブジェクト B の 2 つのオブジェクトがあり、オブジェクト A は 1 か月前に、オブジェクト B は 2 年前にバケットに追加したとします。このバケットに保持期間 1 年の保持ポリシーを適用した場合、オブジェクト A は追加されてからまだ 1 か月しか経過していないため、あと 11 か月経過するまで削除や置き換えはできません。オブジェクト B はすでに保持期間を経過しているため、すぐに削除または置き換えできます。オブジェクト B を置き換えると、この新しいバージョンの経過時間は 0 年になります。

個々のオブジェクトが削除可能かどうかを確認できるように、保持ポリシーが設定されたバケット内の各オブジェクトには、保持期間の有効期限を表すメタデータが維持されます。このメタデータは、オブジェクトが保持期間を満了する日時を表します。

一般的な考慮事項

保持ポリシーを使用する場合は、次の点に注意してください。

  • バケットの保持ポリシーがロックされていない限り、ポリシーを追加または削除できます。

  • オブジェクトの編集可能メタデータはバケットの保持ポリシーの対象ではありません。オブジェクト自体ができない場合でも変更できます。

  • バケットの保持ポリシーには有効期間が含まれています。バケット内のすべてのオブジェクトにこの保持期間が適用されます。

  • 保持ポリシーが設定されたバケット内の特定のオブジェクトが削除可能になる最短の日付は、オブジェクトのメタデータの保持期間の有効期限部分で確認できます。

他の機能に関する考慮事項

保持ポリシーと他の Cloud Storage の機能を使用する場合は、次の点に注意してください。

保持期間

保持期間は秒単位で測定されます。ただし、Google Cloud コンソールGoogle Cloud CLI などのツールを使って、他の時間単位で保持期間を表示するように設定することもできます。その場合、次のような変換規則が適用されます。

  • 1 日は 86,400 秒とする。
  • 1 か月は 31 日、2,678,400 秒とする。
  • 1 年は 365.25 日、31,557,600 秒とする。

最大保持期間の 3,155,760,000 秒(100 年)まで設定できます。

gcloud CLI で保持期間を指定する場合は、整数と単位を指定します。単位は sdmy で、それぞれ秒、日、月、年を表します。たとえば、1d43200s は 1 日と 43,200 秒(1 日半)の保持期間を設定します。

保持ポリシーのロック

バケットの保持ポリシーをロックすると、ポリシーの削除や保持期間の短縮を防ぐことができます(保持期間は延長できます)。ロックされたポリシーの保持期間を削除または短縮しようとすると、400 BadRequestException エラーが発生します。保持ポリシーをロックすると、バケット内のすべてのオブジェクトが保持期間を満了するまで、バケットを削除することはできません。

バケットの保持ポリシーのロックは元に戻すことができません。この機能を使用する前に、その意味をよく理解しておく必要があります。ロックされていないポリシーは削除できます。この場合、必要に応じてオブジェクトを削除できます。ポリシーをロックした場合、ポリシーを削除するにはバケット全体を削除する必要があります。ただし、保持期間を満たしていないオブジェクトがある場合はバケットを削除できません。したがって、ロックされたポリシーを削除するには、バケット内のすべてのオブジェクトがその保持期間を満たすまで待ってから、バケットを削除することになります。

また、保持ポリシーをロックした場合、Cloud Storage はバケットを含むプロジェクトの projects.delete 権限にリーエンを自動的に適用します。これにより、プロジェクトが削除できなくなります。プロジェクトを削除するには、このようなリーエンをすべて削除する必要があります。リーエンを削除するには、roles/owner ロールと roles/resourcemanager.lienModifier ロールに含まれる resourcemanager.projects.updateLiens 権限が必要です。

保持ポリシーのロックが記録保持規制の遵守にどのように役立つかについては、コンプライアンスのページをご覧ください

次のステップ