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
ataudeleteObjectsFromSourceAfterTransfer
. - 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.