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 pada bucket tujuan atau project-nya yang menggunakan jenis resource bucket (storage.googleapis.com/Bucket) atau jenis resource object (storage.googleapis.com/Object). Jika ada bucket dalam project yang memiliki IAM Condition yang menggunakan salah satu jenis resource ini, folder terkelola tidak dapat ditransfer ke bucket mana pun dalam project tersebut, meskipun kondisinya dihapus nanti.
  • Transfer berbasis peristiwa tidak didukung.
  • Transfer manifes tidak didukung.

Izin IAM

Izin Google Cloud Identity and Access Management (IAM) berikut diperlukan oleh agen layanan Storage Transfer Service service agent.

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

Sebaiknya jangan tetapkan izin folder terkelola di tingkat project; lihat Pertimbangan keamanan untuk 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 selain izin standar yang diperlukan oleh Storage Transfer Service:

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

Membuat transfer folder terkelola

Untuk membuat transfer yang berisi folder terkelola, tentukan managedFolderTransferEnabled: true di transferSpec. Anda dapat secara opsional 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 agen layanan memungkinkan akun 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 mengeksploitasinya untuk memberikan hak istimewa kepada pihak berniat jahat. Untuk mengurangi risiko ini, pertimbangkan untuk mengisolasi transfer folder terkelola dalam project Google Cloud khusus.

Cloud Logging

Tindakan folder terkelola dicatat oleh Cloud Logging. Lihat Cloud Logging untuk Storage Transfer Service untuk mengetahui detailnya.

Pemecahan masalah

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