オブジェクト・ストレージのバージョニング

オブジェクト・バージョニングを使用して、オブジェクト・ストレージ・オブジェクトの偶発的または悪意のあるオブジェクトの更新または削除に対してデータ保護を適用する方法について学習します。

オブジェクト・バージョニングは、バケット・レベルで有効化されます。バージョニングでは、新規オブジェクトのアップロード、既存のオブジェクトの上書き、またはオブジェクトの削除が発生するたびに、オブジェクト・ストレージによってオブジェクト・バージョンが自動的に作成されます。バケットの作成時にオブジェクト・バージョニングを有効にするか、以前にオブジェクト・バージョニングが有効になっていない既存のバケット、またはそのオブジェクト・バージョニングが一時停止されているバケットで有効にできます。

バージョン管理対応のバケットには、様々なバージョンのオブジェクトを含めることができます。オブジェクトの latestバージョンが常に1つあり、previousバージョンが0以上あります。

各オブジェクト・バージョンには一意のバージョンIDがあります。コマンドライン・インタフェース(CLI)またはAPIを使用する場合の特定のタスク(オブジェクト・バージョンの削除やリカバリなど)では、オブジェクト・バージョンIDを含める必要があります。次のコマンドまたは操作を実行して、バージョンIDを検索できます。

オブジェクトのバージョンIDの取得の詳細は、バケット内のオブジェクト・バージョンのリストを参照してください。

重要

Standard Oracle Cloud Infrastructureの価格は、バージョニングが有効になっている各バケットに適用されます。最新のオブジェクト・バージョンとバケットに格納されている以前のオブジェクト・バージョン(削除済バージョンを含む)がすべて課金されます。以前のオブジェクト・バージョンは、ユーザーが明示的に削除するまで保持されます。

オブジェクト・バージョニングにより、ストレージ・コストは増加します。オブジェクト・ライフサイクル管理を使用して、オブジェクト・バージョンを自動的に管理することを検討してください。

次のオブジェクト・バージョニング・タスクを実行できます:

オブジェクト・バージョニング・ステータス

オブジェクト・ストレージ・バケットには、無効、有効または一時停止のオブジェクト・バージョニング・ステータスがあります。デフォルトでは、オブジェクト・バージョニングはバケットで無効になっています。各オブジェクト・バージョニング・ステータスに関連する動作を理解することが重要です。

無効

オブジェクト・バージョニングがバケットで無効になっている場合:

  • オブジェクト・バージョニングはバケットで一度も有効になっていません。

  • 既存のオブジェクトと同じ名前のオブジェクトをアップロードすると、オブジェクトは上書きされ、上書きされたオブジェクトは保持またはリカバリできません。

  • オブジェクトを削除すると、その削除は永久的となり、オブジェクトはリカバリできません。

有効

オブジェクト・バージョニングがバケットで有効になっている場合:

  • 既存のオブジェクトと同じ名前のオブジェクトをアップロードすると、既存のオブジェクトは以前のバージョンになり、新しくアップロードしたオブジェクトが最新バージョンになります。

  • アップロードした各オブジェクトには、一意のバージョン識別子が割り当てられます。識別子によって、オブジェクト・ストレージのアクションを特定のバージョンに向けることができます。

  • オブジェクトを削除しても、オブジェクト・ストレージは削除されたオブジェクトのバージョンを保持します。オブジェクトの削除の詳細は、オブジェクト・バージョンの削除を参照してください。

  • オブジェクト・バージョニングを無効にすることはできません。ただし、バージョニングは一時停止できます。

一時停止

オブジェクト・バージョニングがバケットで一時停止されている場合:

  • アップロードと削除の動作は、バージョニングが無効になっているバケットと同じです。

  • バージョニングの一時停止前に作成されたオブジェクト・バージョンは、明示的なアクションを実行して削除しないかぎり保持されます。

  • オブジェクト・バージョニングはいつでも再有効化できます。

オブジェクト・バージョン削除

明示的なアクションを実行するまで、バージョニングが有効になっているバケットからオブジェクトが物理的に削除されることはありません。特定のバージョンをターゲットにせずにオブジェクトを削除すると、最新のオブジェクト・バージョンが以前のオブジェクト・バージョンになり、削除ポイントをマークする特別な削除マーカーが作成されます。削除マーカーには最小限のメタデータのみが含まれます。フォルダを削除すると、フォルダ内のオブジェクトごとに削除マーカーが作成されます。削除マーカーを削除して、その削除したバージョンを最新のオブジェクト・バージョンにします。

削除マーカーと同じ名前のオブジェクトをアップロードすると、アップロードしたオブジェクトがそのオブジェクトの最新バージョンになります。削除マーカーは残ります。1つのオブジェクトに複数の削除マーカーを持たせたり、以前のオブジェクト・バージョンのいずれかをリカバリしたりできます。

オブジェクト・バージョンの削除は異なります。オブジェクト・バージョンを削除すると、そのバージョンは完全に削除されます。完全な削除は、最新バージョンをバージョンIDで明示的に削除した場合にも発生します。特定のオブジェクト・バージョンIDをターゲットとするすべての削除操作で、データが完全に削除されます。

必須IAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限を持っていない、または認可されていないというメッセージが表示された場合は、持っているアクセス権のタイプと作業しているコンパートメントを管理者に確認してください。

ポリシーを初めて使用する場合は、ポリシーの開始共通ポリシーを参照してください。

管理者の場合:

  • 指定したIAMグループで、テナンシのすべてのコンパートメント内のオブジェクト・ストレージのネームスペース、バケット、およびそれらに関連付けられたオブジェクトを管理するポリシーを作成できます。たとえば、IAMグループのStorageAdminsがテナンシのすべての操作を実行できるようにするには:
    Allow group StorageAdmins to manage object-family in tenancy
  • または、アクセスの範囲を狭くするポリシーを作成できます。たとえば、StorageAdminsグループがテナンシのObjectStoreというコンパートメント内のバケットとオブジェクトのみを管理できるようにするポリシーを作成できます:
    Allow group StorageAdmins to manage buckets in compartment ObjectStore
    Allow group StorageAdmins to manage objects in compartment ObjectStore
  • 個別の権限を付与するより限定的なポリシーを作成する場合、バージョニングを有効化するにはBUCKET_UPDATEが必要です。オブジェクトのアップロード、既存のオブジェクトの上書き、またはオブジェクトの削除を行うには、これらの操作に必要な通常の権限を持っていることが必要です。オブジェクト・バージョンを削除するには、OBJECT_VERSION_DELETEが必要です。たとえば、StorageSupportというグループがオブジェクト・ストレージのリソースを管理できるようにし、そのグループがオブジェクト・バージョンを完全に削除しないようにするには:
    Allow group StorageSupport to manage object-family in tenancy where request.operation != 'DeleteObjectVersion'

ポリシーを記述するための他の代替手段の詳細は、オブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細を参照してください。

範囲および制約

  • バージョニングは、標準(オブジェクト・ストレージ)またはアーカイブ・ストレージ層のバケットで有効化できます。
  • アーカイブされたオブジェクトのリストアはインプレース操作であり、オブジェクト・バージョンは作成されません。
  • オブジェクトの最新バージョンの名前は変更できますが、以前のオブジェクト・バージョンの名前は変更できません。オブジェクトの名前を変更すると、新しいオブジェクトが作成されます。

バージョニングとその他のオブジェクト・ストレージ機能間の相互作用

この項では、オブジェクト・バージョニングとその他のオブジェクト・ストレージ機能との相互作用について理解する必要がある重要な事項について説明します。

バケットの再暗号化

Oracleまたは独自のマスター暗号化キーのいずれかを使用してバケットを再暗号化すると、既存のオブジェクト・バージョンも再暗号化されます。

ライフサイクル管理

ライフサイクル・ポリシーで、オブジェクトの最新バージョンまたは以前のバージョンをアーカイブできます。ライフサイクル・ポリシーでオブジェクトの最新バージョンを削除すると、そのオブジェクトが以前のバージョンになり、削除マーカーが作成されます。ライフサイクル・ポリシーでオブジェクトの以前のバージョンを削除した場合、その削除は永続的です。

オブジェクトのコピー

最新バージョンのオブジェクトを別のバケットにコピーする場合、そのオブジェクトのみがコピーされます。そのオブジェクトの以前のバージョンはいずれもコピーされません。オブジェクトの以前のバージョンを別のバケットにコピーできますが、そのアクションによって、宛先バケットに新しいオブジェクトの最新バージョンまたは新しいオブジェクト・バージョンが作成されます。

レプリケーション

  • レプリケーションでは、以前のオブジェクト・バージョンをレプリケートできません。
  • レプリケーション宛先バケットでバージョニングを有効にすることはできません。宛先バケットは読取り専用です。

保持ルール

  • バージョニングが有効になっているバケットには保持ルールを追加できません。
  • アクティブな保持ルールを持つバケットではバージョニングを有効にできません。
  • バージョニングが一時停止されているバケットには保持ルールを追加できます。ただし、アクティブな保持ルールを持つバージョニングを再開することはできません。