Mengaktifkan dan menggunakan konfigurasi retensi objek

Ringkasan

Halaman ini menjelaskan cara menggunakan fitur Kunci Retensi Objek, termasuk mengaktifkannya untuk bucket dan menetapkan konfigurasi retensi untuk objek dalam bucket.

Peran yang diperlukan

Guna mendapatkan izin yang Anda perlukan untuk mengaktifkan fitur Kunci Retensi Objek untuk bucket dan menetapkan konfigurasi retensi pada objek, minta administrator untuk memberi Anda peran IAM Storage Admin (roles/storage.admin) di bucket atau project yang berisi bucket tersebut. Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menetapkan dan mengelola konfigurasi retensi. Untuk melihat izin yang diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

  • storage.buckets.create
  • storage.buckets.enableObjectRetention
  • storage.buckets.get
  • storage.buckets.list
    • Izin ini hanya diperlukan jika Anda berencana menggunakan Konsol Google Cloud untuk menjalankan petunjuk di halaman ini.
  • storage.objects.get
  • storage.objects.list
    • Izin ini hanya diperlukan jika Anda berencana menggunakan Konsol Google Cloud untuk menjalankan petunjuk di halaman ini.
  • storage.objects.overrideUnlockedRetention
    • Izin ini hanya diperlukan jika Anda berencana mengunci atau mempersingkat konfigurasi retensi yang ada.
  • storage.objects.setRetention
  • storage.objects.update

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus.

Untuk mengetahui informasi tentang cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket. Untuk informasi tentang cara memberikan peran pada project, lihat Mengelola akses ke project.

Mengaktifkan retensi objek untuk bucket

Mengaktifkan retensi objek hanya didukung sebagai bagian dari pembuatan bucket, dan jika retensi objek diaktifkan di bucket, objek tersebut tidak dapat dinonaktifkan. Gunakan petunjuk berikut untuk mengaktifkan retensi objek untuk bucket:

Konsol

Buat bucket seperti biasa, dan pada langkah Choose how to proteksi data objek, pilih Retention (ForCompliance) dan Aktifkan retensi objek.

Command line

Buat bucket seperti biasa, dan sertakan flag --enable-per-object-retention dalam perintah.

REST API

JSON API

Buat bucket seperti biasa, dan sertakan parameter kueri enableObjectRetention=true sebagai bagian dari permintaan.

XML API

Buat bucket seperti biasa dan sertakan header x-goog-bucket-object-lock-enabled: True sebagai bagian dari permintaan.

Melihat status retensi objek bucket

Untuk melihat apakah retensi objek diaktifkan untuk sebuah bucket:

Konsol

  1. Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.

    Buka Buckets

  2. Klik nama bucket yang statusnya ingin Anda periksa.

  3. Klik tab Perlindungan.

  4. Status retensi objek bucket akan ditampilkan di bagian Retensi objek.

Command line

Gunakan perintah gcloud storage buckets describe dengan flag --format:

gcloud storage buckets describe gs://BUCKET_NAME --format="default(per_object_retention)"

Dengan BUCKET_NAME adalah nama bucket yang kebijakan retensinya ingin Anda lihat. Contoh, my-bucket.

Jika berhasil dan kebijakan retensi untuk bucket sudah ada, responsnya akan mirip dengan berikut ini:

per_object_retention:
  mode: Enabled

Jika berhasil dan kebijakan retensi untuk bucket tidak ada, responsnya akan mirip dengan berikut ini:

null

REST API

JSON API

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

  2. Gunakan cURL untuk memanggil JSON API dengan permintaan Bucket GET yang menyertakan kolom objectRetention:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=objectRetention"

    Dengan BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.

XML API

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

  2. Gunakan cURL untuk memanggil XML API dengan permintaan Bucket GET yang dicakupkan ke ?object-lock:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/BUCKET_NAME?object-lock"

    Dengan BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.

Menetapkan konfigurasi retensi objek

Agar dapat menetapkan konfigurasi retensi untuk sebuah objek, objek tersebut harus disimpan di bucket tempat retensi objek diaktifkan. Untuk menetapkan konfigurasi retensi untuk sebuah objek:

Konsol

  1. Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.

    Buka Buckets

  2. Dalam daftar bucket, klik nama bucket yang berisi objek yang konfigurasi retensinya ingin Anda tetapkan atau ubah.

    Halaman Detail bucket akan terbuka, dan tab Objek akan dipilih.

  3. Buka objek, yang mungkin berada di dalam folder.

  4. Klik nama objek.

    Halaman Object details akan terbuka, yang menampilkan metadata objek.

  5. Di bagian Perlindungan, klik ikon Edit () yang terkait dengan Dari konfigurasi retensi objek.

    Panel Edit retensi akan terbuka.

  6. Di bagian ObjectRetention configuration, klik Enabled atau Disabled.

    1. Jika konfigurasi retensi diaktifkan, pilih tanggal dan waktu untuk konfigurasi di bagian Pertahankan sampai waktu, lalu klik Tidak terkunci atau Terkunci di bagian Mode Retensi.
  7. Klik Confirm.

Command line

Gunakan perintah gcloud storage objects update dengan flag yang sesuai. Untuk menambahkan atau mengubah konfigurasi retensi, gunakan perintah berikut. Perhatikan bahwa Anda juga harus menyertakan tanda --override-unlocked-retention jika memodifikasi konfigurasi yang ada dengan cara yang menguncinya atau mempersingkat waktu penyimpanannya:

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --retain-until=DATETIME --retention-mode=STATE

Dengan keterangan:

  • BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.

  • OBJECT_NAME adalah nama objek yang relevan. Contoh, kitten.png.

  • DATETIME adalah tanggal dan waktu paling awal saat objek dapat dihapus. Contoh, 2028-02-15T05:30:00Z.

  • STATE adalah Locked atau Unlocked.

Jika berhasil, responsnya akan terlihat mirip dengan contoh berikut ini:

Updating gs://my-bucket/kitten.png...
  Completed 1  

Untuk menghapus konfigurasi retensi dari objek, gunakan perintah berikut:

gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --clear-retention --override-unlocked-retention

Dengan keterangan:

  • BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.

  • OBJECT_NAME adalah nama objek yang relevan. Contoh, kitten.png.

REST API

JSON API

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

  2. Buat file JSON yang berisi informasi berikut:

    {
      "retention": {
        "mode": STATE,
        "retainUntilTime": "DATETIME"
      }
    }

    Dengan keterangan:

    • STATE adalah Locked atau Unlocked.

    • DATETIME adalah tanggal dan waktu paling awal objek dapat dihapus. Misalnya, 2028-02-15T05:30:00Z.

  3. Gunakan cURL untuk memanggil JSON API dengan permintaan PATCH Object:

    curl -X PATCH --data-binary @JSON_FILE_NAME \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?overrideUnlockedRetention=BOOLEAN"

    Dengan keterangan:

    • JSON_FILE_NAME adalah jalur untuk file yang Anda buat di Langkah 2.
    • BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.
    • OBJECT_NAME adalah nama yang dienkode URL dari objek yang relevan. Misalnya, pets/kitten.png, dienkode ke URL sebagai pets%2Fkitten.png.
    • BOOLEAN harus true jika permintaan mempersingkat, menghapus, atau mengunci konfigurasi retensi yang ada. Jika tidak, parameter overrideUnlockedRetention dapat dikecualikan dari permintaan sepenuhnya.

XML API

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

  2. Buat file XML yang berisi informasi berikut:

    <Retention>
      <Mode>
        STATE
      </Mode>
      <RetainUntilDate>
        DATETIME
      </RetainUntilDate>
    </Retention>

    Dengan keterangan:

    • STATE adalah GOVERNANCE atau COMPLIANCE.

    • DATETIME adalah tanggal dan waktu paling awal objek dapat dihapus. Misalnya, 2028-02-15T05:30:00Z.

  3. Gunakan cURL untuk memanggil XML API dengan permintaan Objek PUT yang dicakupkan ke ?retention:

    curl -X PUT --data-binary @XML_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "x-goog-bypass-governance-retention: BOOLEAN" \
      "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?retention"

    Dengan keterangan:

    • XML_FILE_NAME adalah jalur untuk file XML yang Anda buat pada Langkah 2.
    • BOOLEAN harus true jika permintaan mempersingkat, menghapus, atau mengunci konfigurasi retensi yang ada. Jika tidak, header x-goog-bypass-governance-retention dapat dikecualikan dari permintaan sepenuhnya.
    • BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.
    • OBJECT_NAME adalah nama yang dienkode URL dari objek yang relevan. Misalnya, pets/kitten.png, dienkode ke URL sebagai pets%2Fkitten.png.

Melihat konfigurasi retensi objek

Untuk melihat apa, jika ada, konfigurasi retensi yang ditetapkan pada sebuah objek:

Konsol

  1. Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.

    Buka Buckets

  2. Dalam daftar bucket, klik nama bucket yang berisi objek yang konfigurasi retensinya ingin Anda lihat.

    Halaman Detail bucket akan terbuka, dan tab Objek akan dipilih.

  3. Buka objek, yang mungkin berada di dalam folder.

  4. Klik nama objek.

    Halaman Object details akan terbuka, yang menampilkan metadata objek. Informasi tentang konfigurasi retensi apa pun yang dimiliki objek ditampilkan di bagian Perlindungan.

Command line

Gunakan perintah gcloud storage objects describe dengan flag --format:

gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(retention_settings)"

Dengan keterangan:

  • BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.

  • OBJECT_NAME adalah nama objek yang relevan. Contoh, kitten.png.

Jika berhasil dan konfigurasi retensi ada untuk objek, respons akan mirip dengan berikut ini:

retention_settings:
  mode: Unlocked
  retainUntilTime: '2028-11-30T14:11:14+00:00'

Jika berhasil dan konfigurasi retensi tidak ada untuk objek, responsnya akan mirip dengan berikut ini:

null

REST API

JSON API

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

  2. Gunakan cURL untuk memanggil JSON API dengan permintaan Objek GET yang menyertakan kolom retention:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/OBJECT_NAME?fields=retention"

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.
    • OBJECT_NAME adalah nama objek yang relevan. Contoh, kitten.png.

XML API

  1. Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header Authorization.

    Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header Authorization.

  2. Gunakan cURL untuk memanggil XML API dengan permintaan Objek GET yang dicakupkan ke ?retention:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?retention"

    Dengan keterangan:

    • BUCKET_NAME adalah nama bucket yang relevan. Contoh, my-bucket.
    • OBJECT_NAME adalah nama objek yang relevan. Contoh, kitten.png.

Langkah selanjutnya