Sebelum membuat transfer berbasis agen, Anda harus mengonfigurasi izin untuk entitas berikut:
Akun layanan yang dikelola pengguna atau pengguna yang digunakan untuk melakukan transfer. Akun ini adalah akun yang login ke Google Cloud Console, atau akun yang ditentukan saat melakukan autentikasi ke CLI
gcloud
. Akun pengguna dapat berupa akun pengguna biasa, atau akun layanan yang dikelola pengguna.Akun layanan yang dikelola Google, juga dikenal sebagai agen layanan, yang digunakan oleh Storage Transfer Service. Akun ini biasanya diidentifikasi dengan 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 mengautentikasi.
Untuk mengetahui informasi lebih lanjut tentang cara memberikan peran IAM, baca artikel Memberikan, mengubah, dan mencabut akses ke resource.
Metode paling sederhana untuk memberikan izin
CLI gcloud
dapat digunakan untuk memberikan izin yang diperlukan kepada pengguna / akun layanan yang dikelola pengguna dan akun layanan yang dikelola Google.
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 petunjuk tentang cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.
Perintah memberikan izin berikut.
Untuk akun layanan yang dikelola pengguna / pengguna:
roles/owner
roles/storagetransfer.admin
roles/storagetransfer.transferAgent
roles/storage.objectAdmin
roles/pubsub.editor
Ke akun layanan yang dikelola Google:
roles/storage.admin
roles/storagetransfer.serviceAgent
Untuk mendapatkan petunjuk cara menginstal CLI gcloud
, lihat panduan memulai gcloud
.
Izin akun layanan yang dikelola pengguna atau 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 izin dan peran IAM berikut:
Peran / Izin | Fungsi | Notes |
---|---|---|
resourcemanager.projects.getIamPolicy |
Izin ini digunakan untuk mengonfirmasi bahwa akun layanan yang dikelola Google memiliki izin yang diperlukan untuk transfer. | Untuk memberikan izin ini, berikan peran Role Viewer (roles/iam.roleViewer ) yang telah ditetapkan, atau buat peran khusus dengan satu izin ini dan berikan peran kustom tersebut. |
Storage Transfer Admin
(roles/storagetransfer.admin )
|
Memungkinkan tindakan administratif dalam project transfer, seperti penyiapan project dan pemantauan agen. | Untuk mengetahui listingan mendetail tentang izin yang diberikan, lihat Peran yang ditetapkan sebelumnya 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 Google Cloud, atau akun layanan. Jika Anda menggunakan akun layanan, metode yang Anda gunakan untuk meneruskan kredensial ke Storage Transfer Service bervariasi bergantung pada antarmuka yang Anda gunakan.
Untuk menyiapkan akun pengguna, tetapkan izin dan peran berikut pada akun tersebut:
Peran / Izin | Fungsi | Notes |
---|---|---|
resourcemanager.projects.getIamPolicy |
Digunakan untuk mengonfirmasi bahwa akun layanan yang dikelola Google memiliki izin Pub/Sub yang diperlukan untuk transfer. | Untuk memberikan izin ini, berikan peran Role Viewer (roles/iam.roleViewer ) yang telah ditetapkan, atau buat peran khusus dengan satu izin ini dan berikan peran kustom tersebut. |
Storage Transfer User
(roles/storagetransfer.user )
|
Memungkinkan pengguna membuat, mendapatkan, mengupdate, dan mencantumkan transfer. | Untuk mengetahui listingan mendetail tentang izin yang diberikan, lihat Peran yang ditetapkan sebelumnya Storage Transfer Service. |
Izin akun layanan yang dikelola Google
Storage Transfer Service menggunakan
akun layanan yang dikelola Google untuk memindahkan data Anda. Akun layanan ini otomatis dibuat saat pertama kali Anda membuat tugas transfer, memanggil googleServiceAccounts.get
, atau mengunjungi halaman pembuatan tugas di Konsol Google Cloud.
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 secara otomatis ke akun layanan yang dikelola Google:
Buat transfer menggunakan konsol Google Cloud. Konsol akan otomatis menerapkan izin yang diperlukan.
Menggunakan
gcloud transfer authorize --add-missing
. Lihat Metode paling sederhana untuk memberikan izin.
Menetapkan peran secara manual
Untuk mengizinkan akun layanan yang dikelola Google mengakses resource yang diperlukan untuk menyelesaikan transfer, tetapkan peran berikut, atau izin yang setara, ke akun layanan.
Peran / Izin | Fungsi | Notes |
---|---|---|
Storage Object Creator
(roles/storage.objectCreator )
|
Mengaktifkan Storage Transfer Service untuk membuat log transfer di bucket Cloud Storage yang terhubung ke transfer ini. |
Memberikan izin ke semua bucket Cloud Storage yang digunakan dalam transfer. Jika
sesuai dengan situasi Anda, Anda dapat memberikan peran di
level project ke project tempat Storage Transfer Service dijalankan.
Untuk mengetahui daftar mendetail tentang izin yang diberikan peran ini, lihat Peran yang telah ditetapkan di Cloud Storage. |
Storage Object Viewer
(roles/storage.objectViewer )
|
Mengaktifkan Storage Transfer Service untuk menentukan apakah file telah ditransfer ke atau dari Cloud Storage. | |
Agen Storage Transfer Service
(roles/storagetransfer.serviceAgent )
|
Memungkinkan Storage Transfer Service secara otomatis membuat dan mengubah topik Pub/Sub untuk berkomunikasi dari Google Cloud kepada agen transfer. |
Terapkan peran pada level project ke project tempat
Storage Transfer Service dijalankan.
Untuk mengetahui listingan mendetail tentang izin yang diberikan peran ini, lihat Izin dan peran. |
Pembaca Bucket Lama Storage
(roles/storage.legacyBucketReader )
|
Mengaktifkan Storage Transfer Service untuk membaca metadata bucket Cloud Storage. |
Pemberian untuk setiap bucket Cloud Storage yang digunakan dalam transfer. Peran |
Lihat Memberikan izin yang diperlukan untuk mengetahui petunjuknya.
Mentransfer izin akun agen
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 | Notes |
---|---|---|
Agen Transfer Storage
(roles/storagetransfer.transferAgent )
|
Memberi agen transfer izin Storage Transfer Service dan Pub/Sub yang diperlukan untuk menyelesaikan transfer. |
Berikan peran ini kepada pengguna atau akun layanan yang digunakan oleh agen.
Untuk mengetahui listingan mendetail tentang izin yang diberikan peran ini, 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 |
Memungkinkan akun agen menulis objek Cloud Storage selama transfer. |
storage.objects.get |
Mengizinkan akun agen untuk membaca data dan metadata objek. |
storage.objects.list |
Memungkinkan 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 kustom dengan izin tertentu dan berikan peran kustom 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 untuk menulis log transfer dan metadata terkait transfer ke bucket sumber Cloud Storage. |
storage.objects.get |
Mengizinkan akun agen untuk membaca data dan metadata objek. |
storage.objects.list |
Memungkinkan 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 pada bucket perantara.
Izin | Deskripsi |
---|---|
storage.objects.create |
Memungkinkan akun agen menulis objek Cloud Storage selama transfer. |
storage.objects.get |
Mengizinkan akun agen untuk membaca data dan metadata objek. |
storage.objects.list |
Memungkinkan 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 kustom dengan izin tertentu dan berikan peran kustom tersebut.
Izin tambahan diperlukan untuk mengaktifkan upload multibagian.
Upload multibagian
Guna mengaktifkan upload multibagian untuk sistem file ke transfer atau transfer antar-sistem file Cloud Storage, berikan izin berikut juga kepada agen.
- Untuk transfer ke Cloud Storage, tetapkan izin ke bucket tujuan.
- Untuk transfer antarsistem 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 kustom dengan izin tertentu dan berikan peran kustom tersebut.