Mentransfer folder terkelola Cloud Storage

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

Batasan

Batasan berikut berlaku untuk transfer folder terkelola:

  • Anda harus menggunakan REST API untuk membuat transfer.
  • Bucket tujuan harus menggunakan akses level bucket seragam.
  • Transfer folder terkelola tidak mendukung opsi deleteObjectsUniqueInSink atau deleteObjectsFromSourceAfterTransfer.
  • Tidak boleh ada IAM Conditions pada bucket tujuan atau project-nya yang menggunakan jenis resource bucket (storage.googleapis.com/Bucket) atau jenis resource objek (storage.googleapis.com/Object). Jika ada bucket dalam project yang memiliki Kondisi IAM yang menggunakan salah satu jenis resource ini, folder terkelola tidak dapat ditransfer ke bucket mana pun dalam project tersebut, meskipun kondisi tersebut nantinya dihapus.
  • Transfer berbasis peristiwa tidak didukung.
  • Transfer manifes tidak didukung.
  • Operasi folder terkelola tidak dicatat dalam log oleh Cloud Logging. Logging objek didukung.

Izin IAM

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

Pada bucket sumber:

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

Di bucket tujuan:

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

Berikut adalah izin standar yang diperlukan oleh Storage Transfer Service:

Untuk memberikan izin folder terkelola yang diperlukan, buat peran khusus hanya dengan izin yang diperlukan dan tetapkan ke akun layanan yang dikelola Google, baik di level bucket (direkomendasikan) maupun di level project. Lihat Pertimbangan keamanan untuk mengetahui info tambahan.

Membuat transfer folder terkelola

Untuk membuat transfer yang berisi folder terkelola, tentukan managedFolderTransferEnabled: true di transferSpec Anda:

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

Baca artikel Membuat transfer untuk mengetahui detail tentang cara membuat transfer menggunakan REST API, atau baca referensi transferJobs.create.

Pertimbangan keamanan

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

Pemecahan masalah

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