Membuat bucket WORM penyimpanan

Halaman ini memandu Anda cara membuat bucket penyimpanan Write Once Read Many (WORM) di lingkungan Google Distributed Cloud (GDC) dengan air gap. Bagian ini membahas prasyarat dan langkah-langkah untuk membuat bucket WORM dengan periode retensi yang ditentukan, dan untuk memberikan izin akses menggunakan binding peran. Informasi ini memungkinkan Anda menerapkan praktik retensi data dan keabadian yang ketat, sehingga menyediakan penyimpanan data yang kuat dan sesuai untuk data dan kasus penggunaan seperti logging audit.

Halaman ini ditujukan untuk audiens seperti admin IT dalam grup operator infrastruktur atau developer dalam grup operator aplikasi yang mengelola setelan retensi data dan kepatuhan untuk bucket penyimpanan di lingkungan GDC dengan air gap. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.

Sebelum memulai

Bucket penyimpanan adalah resource yang dicakup dalam 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:

  • Bucket Project Admin (project-bucket-admin): membuat, memperbarui, dan menghapus bucket penyimpanan.
  • Bucket Object Project 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.

Membuat bucket WORM

Bucket WORM memastikan tidak ada hal lain yang menimpa objek dan mempertahankan objek tersebut selama jangka waktu minimum. Logging audit adalah contoh kasus penggunaan untuk bucket WORM.

Lakukan langkah-langkah berikut untuk membuat bucket WORM:

  1. Menetapkan periode retensi saat membuat bucket. Periode retensi menentukan jumlah hari setiap versi objek dikunci agar tidak dihapus atau diubah. Periode retensi ini berbeda dengan durasi penyimpanan minimum kelas penyimpanan (seperti minimum 30 hari untuk kelas penyimpanan Standard). Misalnya, bucket berikut menetapkan periode retensi selama 365 hari. Hubungi Operator Infrastruktur (IO) jika Anda perlu melampaui batas kebijakan retensi.

    apiVersion: object.gdc.goog/v1
    kind: Bucket
    metadata:
      name: foo-logging-bucket
      namespace: foo-service
    spec:
      description: "Audit logs for foo"
      storageClass: Standard
      bucketPolicy:
        lockingPolicy:
          defaultObjectRetentionDays: 365
    
  2. Berikan peran project-bucket-object-viewer kepada semua pengguna yang memerlukan akses hanya baca:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-readonly-access
    roleRef:
      kind: Role
      name: project-bucket-object-viewer
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-log-processor
    - kind: User
      name: bob@example.com
      apiGroup: rbac.authorization.k8s.io
    
  3. Berikan peran project-bucket-object-admin kepada pengguna yang perlu menulis konten ke bucket:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: foo-service
      name: object-write-access
    roleRef:
      kind: Role
      name: project-bucket-object-admin
      apiGroup: rbac.authorization.k8s.io
    subjects:
    - kind: ServiceAccount
      namespace: foo-service
      name: foo-service-account