ストレージ バケットのオブジェクト ライフサイクル ポリシーを設定する

このページでは、Google Distributed Cloud(GDC)エアギャップ ストレージ バケットのオブジェクト ライフサイクル ポリシーを設定する方法について説明します。

始める前に

プロジェクト名前空間は、Management API サーバーのバケット リソースを管理します。バケットとオブジェクトを操作するには、プロジェクトが必要です。

次の操作を行うには、適切なバケット権限も必要です。バケットへのアクセス権を付与するをご覧ください。

バケットにオブジェクト ライフサイクル ポリシーを設定する

オブジェクト ライフサイクル ポリシーを使用すると、バケット内のオブジェクトを自動的に管理できます。これにより、ライフサイクル全体でデータをより効率的に保存できます。ライフサイクル構成は、特定の照合条件に基づいてオブジェクトのグループを期限切れにするルールのリストです。

オブジェクト ライフサイクル ポリシーの有無にかかわらず、バケットを作成できます。また、バケットの作成後に、新しいライフサイクル ポリシーを適用したり、既存のライフサイクル ポリシーを更新または削除したりすることもできます。

バージョニングされていないバケットの場合、期限切れとは、オブジェクトを非同期で完全に削除することを意味します。

バージョニングされたバケットの場合、現在のオブジェクト バージョンが削除マーカーでない場合、期限切れになると、現在のバージョンが非現行になり、現在のバージョンに削除マーカーが追加されます。

オブジェクト ライフサイクル ポリシーを設定して変更するには、Bucket.spec.bucketPolicy.lifecyclePolicy フィールドを更新します。

CLI

オブジェクト ライフサイクル ポリシーが構成されたバケット リソースの例をいくつか示します。

apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire all objects after 365 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 365
        id: expire-all-after-365-days
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects in the logs/ directory after 30 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 30
        id: expire-logs-dir-after-30-days
        status: Enabled
        filter:
          prefixFilter: "logs/"
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects having specific tag after 30 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          days: 30
        id: expire-tagged-objects-after-30-days
        status: Enabled
        filter:
          tagFilters:
          - key: environment
            value: dev
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire noncurrent versions after 90 days"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - noncurrentExpiration:
          noncurrentDays: 90
        id: expire-noncurrent-after-90-days
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with lifecycle rule to expire objects on a specific date"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      - expiration:
          date: "2027-01-01T00:00:00Z"
        id: expire-on-specific-date
        status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
  name: BUCKET_NAME
  namespace: NAMESPACE_NAME
spec:
  description: "Bucket with multiple lifecycle rules and advanced filters"
  storageClass: Standard
  bucketPolicy:
    lifecyclePolicy:
      enable: true
      lifecycleRules:
      # Rule 1: Expire objects in 'tmp/' directory AND tagged with 'status=ready' after 7 days
      - expiration:
          days: 7
        id: expire-ready-tmp-objects
        status: Enabled
        filter:
          prefixFilter: "tmp/"
          tagFilters:
          - key: status
            value: ready
      # Rule 2: Expire all objects in 'logs/' directory after 90 days
      - expiration:
          days: 90
        id: expire-logs-after-90-days
        status: Enabled
        filter:
          prefixFilter: "logs/"

ライフサイクル ポリシーの更新は、既存のオブジェクトと更新後にアップロードされたオブジェクトに適用されます。

バケットにオブジェクト ロックも構成されている場合、保持期間が終了する前にオブジェクトが期限切れにならないように保護されます。