Mentransfer folder terkelola Cloud Storage

Folder terkelola Cloud Storage menyediakan kontrol akses terperinci ke objek di bucket Cloud Storage. Izin dapat ditetapkan di tingkat folder dalam bucket yang menggunakan akses level bucket universal. Saat mentransfer objek antar-bucket Cloud Storage dengan Storage Transfer Service, izin folder terkelola ini dapat dipertahankan.

Batasan

Batasan berikut berlaku untuk transfer folder terkelola:

  • Bucket tujuan harus menggunakan akses level bucket yang seragam.
  • Transfer folder terkelola tidak mendukung opsi deleteObjectsUniqueInSink atau deleteObjectsFromSourceAfterTransfer.
  • Tidak boleh ada IAM Conditions di bucket tujuan atau project-nya yang menggunakan jenis resource bucket (storage.googleapis.com/Bucket) atau jenis resource object (storage.googleapis.com/Object). Jika bucket dalam project memiliki IAM Conditions yang menggunakan salah satu jenis resource ini, folder terkelola tidak dapat ditransfer ke bucket mana pun dalam project tersebut, meskipun kondisi tersebut dihapus nanti.
  • Transfer berbasis peristiwa tidak didukung.
  • Transfer manifes tidak didukung.

Izin IAM

Izin Identity and Access Management (IAM) Google Cloud berikut diperlukan oleh akun layanan yang dikelola Google.

Untuk sumber dan tujuan, izin dapat ditetapkan di tingkat bucket, atau dapat ditetapkan di folder terkelola. Untuk menetapkan izin di folder terkelola tujuan, folder tersebut harus sudah ada.

Sebaiknya jangan tetapkan izin folder terkelola di tingkat project; lihat Pertimbangan keamanan untuk mengetahui info tambahan.

Di bucket sumber atau folder terkelola:

  • storage.managedFolders.getIamPolicy
  • storage.managedFolders.list
  • storage.managedFolders.get

Di bucket tujuan atau folder terkelola:

  • storage.managedFolders.setIamPolicy
  • storage.managedFolders.list
  • storage.managedFolders.create

Izin ini merupakan tambahan dari izin standar yang diperlukan oleh Storage Transfer Service:

Untuk memberikan izin folder terkelola yang diperlukan, buat peran khusus hanya dengan izin yang diperlukan.

Membuat transfer folder terkelola

Untuk membuat transfer yang berisi folder terkelola, tentukan managedFolderTransferEnabled: true di transferSpec Anda. Secara opsional, Anda dapat menentukan nilai path untuk mentransfer hanya folder terkelola tertentu.

POST https://storagetransfer.googleapis.com/v1/transferJobs
{
  "name": "transferjobs/NAME",
  "projectId": "PROJECT_ID",
  "transferSpec": {
    "gcsDataSource": {
      "bucketName": "SOURCE_BUCKET",
      "path": "SOURCE_PATH",
      "managedFolderTransferEnabled": true
    },
    "gcsDataSink": {
      "bucketName": "DESTINATION_BUCKET",
      "path": "DESTINATION_PATH",
    }
  },
  "status": "ENABLED"
}

Jika izin transfer terkelola yang benar tidak ditetapkan di sumber dan tujuan, transfer akan gagal.

Lihat Membuat transfer untuk mengetahui detail tentang cara membuat transfer menggunakan REST API, atau lihat referensi transferJobs.create.

Pertimbangan keamanan

Memberikan izin folder terkelola ke akun layanan yang dikelola Google memungkinkan akun tersebut mengubah kebijakan IAM di folder tujuan, atau di semua folder jika peran diberikan di tingkat project. Hal ini menimbulkan risiko keamanan: pengguna dengan izin edit tugas dapat memanfaatkannya untuk memberikan hak istimewa kepada pelaku berbahaya. Untuk memitigasi risiko ini, pertimbangkan untuk mengisolasi transfer folder terkelola dalam project Google Cloud khusus.

Cloud Logging

Tindakan folder terkelola dicatat ke dalam log oleh Cloud Logging. Lihat artikel Cloud Logging untuk Storage Transfer Service untuk mengetahui detailnya.

Pemecahan masalah

Untuk mendapatkan bantuan dalam membuat dan mengelola folder terkelola, lihat halaman Pemecahan masalah.