Sebelum membuat transfer berbasis agen, Anda harus mengonfigurasi izin untuk entity berikut:
The akun pengguna atau akun layanan yang dikelola pengguna yang digunakan untuk membuat transfer. Ini adalah akun yang login ke Google Cloud konsol, atau akun yang ditentukan saat melakukan autentikasi ke
gcloudCLI. Akun pengguna dapat berupa akun pengguna biasa, atau akun layanan yang dikelola pengguna.**Agen layanan** yang digunakan oleh Storage Transfer Service. Akun ini umumnya diidentifikasi berdasarkan alamat emailnya, yang menggunakan format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.Akun agen transfer yang memberikan izin Google Cloud untuk agen transfer. Akun agen transfer menggunakan kredensial pengguna yang menginstalnya, atau kredensial akun layanan yang dikelola pengguna untuk melakukan autentikasi.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran IAM, lihat Memberikan, mengubah, dan mencabut akses ke resource.
Metode pemberian izin yang paling sederhana
gcloud CLI dapat digunakan untuk memberikan izin yang diperlukan kepada akun pengguna / akun layanan yang dikelola pengguna dan kepada agen layanan.
Izin ini memungkinkan pengguna membuat, mengedit, dan menghapus tugas transfer, serta menetapkan atau mengubah batas bandwidth.
Jika izin ini terlalu luas untuk kebijakan organisasi Anda, lihat bagian selanjutnya dalam dokumen ini untuk mengetahui izin minimum yang diperlukan oleh Storage Transfer Service.
Untuk memeriksa izin yang ada dan mencetak peran yang tidak ada, jalankan perintah berikut:
gcloud transfer authorize
Untuk menerapkan peran tersebut secara otomatis, gunakan flag --add-missing:
gcloud transfer authorize --add-missing
Untuk memberikan izin ke akun layanan yang dikelola pengguna, teruskan file kunci akun layanan:
gcloud transfer authorize --add-missing --creds-file=path/to/key.json
Untuk mengetahui petunjuk tentang cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.
Perintah ini memberikan izin berikut.
Kepada akun pengguna / akun layanan yang dikelola pengguna:
roles/ownerroles/storagetransfer.adminroles/storagetransfer.transferAgentroles/storage.objectAdminroles/pubsub.editor
Kepada agen layanan:
roles/storage.adminroles/storagetransfer.serviceAgent
Untuk mengetahui petunjuk tentang cara menginstal gcloud CLI, lihat
gcloud panduan memulai.
Izin akun pengguna atau akun layanan yang dikelola pengguna
Bagian ini membahas peran yang diperlukan untuk akun yang mengelola dan menjalankan transfer. Persyaratan organisasi Anda akan menentukan peran yang tepat untuk setiap persona; bagian ini mengasumsikan bahwa Anda akan membuat administrator dan pengguna.
Akun administrator
Akun administrator Storage Transfer Service mengelola agen transfer, menetapkan batas penggunaan bandwidth, dan menghapus tugas transfer.
Untuk menyiapkan akun administrator, tetapkan peran dan izin IAM berikut:
| Peran / Izin | Fungsi | Catatan |
|---|---|---|
resourcemanager.projects.getIamPolicy |
Izin ini digunakan untuk mengonfirmasi bahwa agen layanan memiliki izin yang diperlukan untuk transfer. | Untuk memberikan izin ini, berikan peran bawaan
Role Viewer
(roles/iam.roleViewer), atau
buat peran khusus dengan
satu izin ini dan berikan peran khusus tersebut. |
Storage Transfer Admin
(roles/storagetransfer.admin)
|
Mengaktifkan tindakan administratif dalam project transfer, seperti project penyiapan dan pemantauan agen. | Untuk mengetahui daftar izin yang diberikan secara mendetail, lihat Peran bawaan Storage Transfer Service. |
Akun pengguna
Akun pengguna Storage Transfer Service digunakan untuk membuat dan menjalankan transfer. Akun ini biasanya tidak memiliki akses untuk menghapus tugas transfer.
Akun pengguna dapat berupa pengguna konsol, atau akun layanan. Google Cloud Jika Anda menggunakan akun layanan, metode yang digunakan untuk meneruskan kredensial ke Storage Transfer Service akan bervariasi bergantung pada antarmuka yang Anda gunakan.
Untuk menyiapkan akun pengguna, tetapkan izin dan peran berikut ke akun tersebut:
| Peran / Izin | Fungsi | Catatan |
|---|---|---|
resourcemanager.projects.getIamPolicy |
Digunakan untuk mengonfirmasi bahwa agen layanan memiliki izin Pub/Sub yang diperlukan untuk transfer. | Untuk memberikan izin ini, berikan peran bawaan
Role Viewer
(roles/iam.roleViewer), atau
buat peran khusus dengan
satu izin ini dan berikan peran khusus tersebut. |
Storage Transfer User
(roles/storagetransfer.user)
|
Memungkinkan pengguna membuat, mendapatkan, memperbarui, dan mencantumkan transfer. | Untuk mengetahui daftar izin yang diberikan secara mendetail, lihat Peran bawaan Storage Transfer Service. |
Izin agen layanan
Storage Transfer Service menggunakan a
agen layanan untuk memindahkan data Anda. Akun layanan ini otomatis dibuat
saat Anda pertama kali membuat tugas transfer, memanggil
googleServiceAccounts.get, atau membuka halaman pembuatan tugas di
Google Cloud konsol.
Format akun layanan biasanya adalah
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.
Untuk mengambil ID akun layanan, gunakan panggilan API
googleServiceAccounts.get.
Menetapkan peran secara otomatis
Ada dua cara untuk menetapkan peran yang benar ke agen layanan secara otomatis:
Buat transfer menggunakan Google Cloud konsol. Konsol akan otomatis menerapkan izin yang diperlukan.
Gunakan
gcloud transfer authorize --add-missing. Lihat Metode pemberian izin yang paling sederhana.
Menetapkan peran secara manual
Untuk mengizinkan agen layanan mengakses resource yang diperlukan untuk menyelesaikan transfer, tetapkan peran berikut, atau izin yang setara, ke akun layanan.
| Peran / Izin | Fungsi | Catatan |
|---|---|---|
Storage Object Creator
(roles/storage.objectCreator)
|
Memungkinkan Storage Transfer Service membuat log transfer di bucket Cloud Storage yang terhubung ke transfer ini. |
Berikan ke semua bucket Cloud Storage yang digunakan dalam transfer. Jika
sesuai dengan situasi Anda, Anda dapat memberikan peran di
tingkat project ke project tempat Storage Transfer Service berjalan.
Untuk mengetahui daftar izin yang diberikan oleh peran ini secara mendetail, lihat Peran bawaan Cloud Storage. |
Storage Object Viewer
(roles/storage.objectViewer)
|
Memungkinkan Storage Transfer Service menentukan apakah file telah ditransfer ke atau dari Cloud Storage. | |
Storage Transfer Service Agent
(roles/storagetransfer.serviceAgent)
|
Memungkinkan Storage Transfer Service membuat dan mengubah topik Pub/Sub secara otomatis untuk berkomunikasi dari Google Cloud ke agen transfer. |
Terapkan peran di tingkat project ke project tempat
Storage Transfer Service berjalan.
Untuk mengetahui daftar izin yang diberikan oleh peran ini secara mendetail, lihat Izin dan peran. |
Storage Legacy Bucket Reader
(roles/storage.legacyBucketReader)
|
Memungkinkan Storage Transfer Service membaca metadata bucket Cloud Storage. |
Berikan ke setiap bucket Cloud Storage yang digunakan dalam transfer. Peran Cloud Storage |
Lihat Memberikan izin yang diperlukan untuk mengetahui petunjuknya.
Izin akun agen transfer
Agen transfer Storage Transfer Service dapat dijalankan dengan akun pengguna, atau dengan akun layanan.
Untuk menyiapkan akun layanan agen transfer atau akun pengguna yang menjalankan agen transfer, tetapkan peran berikut:
| Peran / Izin | Fungsi | Catatan |
|---|---|---|
Storage Transfer Agent
(roles/storagetransfer.transferAgent)
|
Memberikan izin Storage Transfer Service yang diperlukan untuk menyelesaikan transfer kepada agen transfer. Peran ini juga mencakup izin yang diperlukan untuk mencatat file yang dilewati. |
Berikan peran ini kepada akun pengguna atau layanan yang digunakan oleh agen.
Untuk mengetahui daftar izin yang diberikan oleh peran ini secara mendetail, lihat Kontrol Akses dengan IAM. |
Izin sumber dan tujuan
Anda juga harus memastikan bahwa akun agen memiliki izin yang benar untuk mengakses data sumber dan menulis ke tujuan.
Sistem file, penyimpanan yang kompatibel dengan S3, atau HDFS ke Cloud Storage
Jika tujuan transfer Anda adalah bucket Cloud Storage, agen transfer memerlukan izin berikut di bucket tujuan. Lihat Menambahkan akun utama ke kebijakan level bucket untuk mengetahui petunjuknya.
| Izin | Deskripsi |
|---|---|
storage.objects.create |
Mengizinkan akun agen menulis objek Cloud Storage selama transfer. |
storage.objects.get |
Mengizinkan akun agen membaca data dan metadata objek. |
storage.objects.list |
Mengizinkan akun agen mencantumkan objek di bucket Cloud Storage. |
storage.objects.delete |
Diperlukan jika transfer Anda dikonfigurasi untuk menimpa atau menghapus objek
di sink; misalnya, jika
overwriteObjectsAlreadyExistingInSink
atau deleteObjectsUniqueInSink ditetapkan dalam konfigurasi
transferOptions transfer Anda. |
Untuk memberikan izin ini, berikan peran berikut:
- Storage Object Admin (
roles/storage.objectAdmin)
Atau, buat peran khusus dengan izin tertentu dan berikan peran khusus tersebut.
Izin tambahan diperlukan untuk mengaktifkan upload multibagian.
Cloud Storage ke sistem file
Jika sumber transfer Anda adalah bucket Cloud Storage, agen transfer memerlukan izin berikut di bucket sumber.
| Izin | Deskripsi |
|---|---|
storage.objects.create |
Mengizinkan akun agen menulis log transfer dan metadata terkait transfer ke bucket sumber Cloud Storage. |
storage.objects.get |
Mengizinkan akun agen membaca data dan metadata objek. |
storage.objects.list |
Mengizinkan akun agen mencantumkan objek di bucket Cloud Storage. |
storage.objects.delete |
Diperlukan jika transfer Anda dikonfigurasi untuk menghapus objek
dari sumber. Lihat
deleteObjectsFromSourceAfterTransfer. |
Untuk memberikan izin ini, berikan peran berikut:
- Storage Object Viewer (
roles/storage.objectViewer)
Atau, buat peran khusus dengan satu izin dan berikan peran khusus tersebut.
Sistem file ke sistem file
Jika transfer Anda berada di antara dua sistem file, agen transfer memerlukan izin berikut di bucket perantara.
| Izin | Deskripsi |
|---|---|
storage.objects.create |
Mengizinkan akun agen menulis objek Cloud Storage selama transfer. |
storage.objects.get |
Mengizinkan akun agen membaca data dan metadata objek. |
storage.objects.list |
Mengizinkan akun agen mencantumkan objek di bucket Cloud Storage. |
storage.objects.delete |
Diperlukan jika transfer Anda dikonfigurasi untuk menghapus objek di bucket perantara setelah transfer selesai. |
Untuk memberikan izin ini, berikan peran berikut:
- Storage Object Admin (
roles/storage.objectAdmin)
Atau, buat peran khusus dengan izin tertentu dan berikan peran khusus tersebut.
Izin tambahan diperlukan untuk mengaktifkan upload multibagian.
Upload multibagian
Untuk mengaktifkan upload multibagian untuk transfer sistem file ke Cloud Storage atau transfer antar-sistem file, berikan izin berikut kepada agen.
- Untuk transfer ke Cloud Storage, tetapkan izin ke bucket tujuan.
- Untuk transfer antar-sistem file, tetapkan izin ke bucket perantara.
| Nama izin upload multibagian | Deskripsi |
|---|---|
storage.multipartUploads.create |
Mengupload objek dalam beberapa bagian. |
storage.multipartUploads.abort |
Membatalkan sesi upload multibagian. |
storage.multipartUploads.listParts |
Membuat daftar bagian objek yang diupload dalam sesi upload multibagian. |
storage.multipartUploads.list |
Membuat daftar sesi upload multibagian dalam bucket. |
Untuk memberikan izin ini, berikan peran berikut:
- Storage Object Admin (
roles/storage.objectAdmin)
Atau, buat peran khusus dengan izin tertentu dan berikan peran khusus tersebut.