Menetapkan kebijakan siklus proses objek untuk bucket penyimpanan

Kebijakan siklus proses objek di Google Distributed Cloud (GDC) dengan air gap memungkinkan Anda mengotomatiskan retensi dan masa berlaku data di seluruh bucket penyimpanan. Anda dapat menentukan aturan usia, awalan, dan tag untuk menghapus objek yang tidak memiliki versi atau mentransisikan dan mengakhiri masa berlaku versi tanpa pembersihan manual.

Sebelum memulai

Bucket penyimpanan adalah resource yang dicakup ke project tertentu. Project bertindak sebagai penampung, yang mengelompokkan bucket Anda dan memungkinkan pengelolaannya melalui server Management API. Sebelum dapat melakukan operasi di halaman ini, Anda harus membuat project baru atau memilih project yang sudah ada dan memiliki izin yang memadai.

Peran IAM yang diperlukan

Hubungi IAM Project Admin Anda untuk meminta peran berikut di namespace project Anda:

  • Project Bucket Admin (project-bucket-admin): membuat, memperbarui, dan menghapus bucket penyimpanan.
  • Project Bucket Object Viewer (project-bucket-object-viewer): melihat dan memeriksa detail bucket dan objek penyimpanan.

Untuk mengetahui informasi selengkapnya, lihat Memberikan akses bucket.

Menyiapkan lingkungan Anda

Untuk menjalankan perintah terhadap server API pengelolaan atau server API global, lakukan hal berikut:

  1. Login dan buat file kubeconfig untuk server API pengelolaan zona jika Anda belum memilikinya.
  2. Untuk bucket dual-zone, lakukan hal berikut:
    • Pastikan dengan Operator Infrastruktur (IO) Anda bahwa resource kustom BucketLocationConfig telah dibuat untuk zona yang disambungkan.
    • Buat file kubeconfig untuk server API global.

Menetapkan kebijakan siklus proses objek di bucket

Anda dapat menggunakan kebijakan siklus proses objek untuk mengelola objek di bucket Anda secara otomatis. Hal ini membantu Anda menyimpan data secara lebih efisien selama masa pakainya. Konfigurasi siklus proses adalah daftar aturan untuk mengakhiri masa berlaku grup objek berdasarkan kriteria pencocokan tertentu.

Anda dapat membuat bucket dengan atau tanpa kebijakan siklus proses objek. Anda juga dapat menerapkan kebijakan siklus proses baru, memperbarui kebijakan yang ada, atau menghapus kebijakan yang ada setelah bucket dibuat.

Untuk bucket tanpa versi, masa berlaku berarti menghapus objek secara permanen dan asinkron.

Untuk bucket berversi, jika versi objek saat ini bukan penanda penghapusan, masa berlaku akan membuat versi saat ini menjadi lama, lalu menambahkan penanda penghapusan ke versi saat ini.

Untuk menetapkan dan mengubah kebijakan siklus proses objek, perbarui kolom Bucket.spec.bucketPolicy.lifecyclePolicy.

CLI

Berikut adalah beberapa contoh resource bucket dengan berbagai kebijakan siklus proses objek yang dikonfigurasi:

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/"

Setiap update pada kebijakan siklus proses berlaku untuk objek yang ada dan objek yang diupload setelah update.

Jika bucket juga memiliki penguncian objek yang dikonfigurasi, objek akan dilindungi dari masa berlaku sebelum hari retensi berakhir.