保持ポリシーと保持ポリシーのロック

サンプルに移動

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

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

概要

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

    • バケットに保持ポリシーがない場合は、バケット内のオブジェクトをいつでも削除または上書きできます。

    • バケットに保持ポリシーが設定されている場合、バケット内のオブジェクトを削除または上書きできるのは、所定の保持期間を経過した後です。

    • 保持ポリシーは、バケットに追加された新しいオブジェクトだけでなく、バケット内の既存のオブジェクトにさかのぼって適用されます。

  • 保持ポリシーは、バケットに永久に設定されるようにロックできます。

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

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

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

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

保持ポリシー

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

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

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

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

  • 保持ポリシーがロックされていない限り、保持期間を変更したり、バケットから保持ポリシーを削除したりできます。

  • 保持ポリシーの変更は、影響を受けるオブジェクトの数に関係なく、単一のクラス A オペレーションと見なされます。

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

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

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

  • Cloud Storage で保持ポリシーとオブジェクトのバージョニングを併用することはできません。1 つのバケットで一度に有効にできるのは一方のみです。保持ポリシーを適用するときにバケット内にあり、バージョニングされているオブジェクトも保持ポリシーで保護されます。

  • オブジェクトのライフサイクル管理を使用して、バケット内のオブジェクトを自動的に削除できます。ポリシーがロックされたバケットでも同様ですが、オブジェクトが保持ポリシーを満たすまで、ライフサイクル ルールでオブジェクトが削除されることはありません。

  • バケットに保持ポリシーがある場合は、並列複合アップロードを実行しないでください。各コンポーネントは、バケットの最小保持期間を過ぎるまで削除できないためです。

  • 組織のポリシーの制約を使用して、新しいバケットを作成するときや、既存のバケットに保持ポリシーの追加または更新を行うときに、特定の保持期間が定義された保持ポリシーの追加を義務付けることもできます。この組織ポリシーの設定手順を含め、詳細については、組織ポリシーの設定をご覧ください。

保持期間

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

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

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

gsutil で保持期間を指定する場合は、[NUMBER][UNIT] の形式を使用します。[UNIT] は、sdm、または y で、それぞれ秒、日、月、年を表します。1 つのコマンドで使用できる時間単位は 1 つだけです。たとえば、86400s1d は使用できますが、1d30s は使用できません。

保持ポリシーのロック

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

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

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

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

コンプライアンス

銀行、証券ブローカー ディーラー、記録管理会社など、米国を拠点とする金融機関は、電子記録の保持に関する規制要件(保持期間、記録形式、記録品質、記録の可用性など)を満たす必要があります。たとえば、次のような規制を遵守する必要があります。

Google Cloud のお客様が、前述のいずれかの規制に該当すると判断した場合、自社の法律顧問や金融監督機関の監督下で特定要件に対するコンプライアンス評価を完了する必要があります。この評価プロセスを支援するため、Google Cloud では Cohasset Associates, Inc.(「Cohasset」)と協力し、Cloud Storage のコンプライアンス機能に対して客観的な評価を行っています。Cohasset は、Cloud Storage でバケットロック機能を適切に構成して使用した場合、SEC Rule 17a-4(f)、CFTC Rule 1.31(c)-(d)、FINRA Rule 4511(c) などの米国の記録保持規制の遵守に役立つと評価しています。Cloud Storage のバケットロック機能に統合された制御コードにより、Cloud Storage で WORM(1 回限りの書き込みと複数回の読み取り)に対応した不変のストレージを作成できます。詳しくは、こちらのレポートをご覧ください

次のステップ