Izin transfer tanpa agen

Transfer tanpa agen mencakup transfer dalam Cloud Storage, atau dari Amazon S3, Azure Blob Storage, atau Data Lake Storage Gen2, atau daftar URL objek publik. Metode ini tidak memerlukan agen transfer atau kumpulan agen.

Saat mentransfer data antara penyedia cloud dalam transfer tanpa agen, Anda harus memberikan izin ke dua entity:

  • Akun layanan yang dikelola pengguna atau pengguna yang membuat atau mengelola transfer.
  • Akun layanan yang dikelola Google yang dibuat secara otomatis saat pertama kali Anda berinteraksi dengan Storage Transfer Service.

Selain itu, Anda harus mengonfigurasi akses ke file sumber di AWS S3, Microsoft Azure, atau di Cloud Storage.

Untuk mempelajari cara memberikan peran IAM, lihat Memberikan, mengubah, dan mencabut akses ke resource.

Metode paling sederhana untuk memberikan izin

CLI gcloud dapat digunakan untuk memberikan izin yang diperlukan kepada akun layanan yang dikelola pengguna / pengguna dan ke 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 tentang 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 melaksanakan 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 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 khusus tersebut.
Storage Transfer Admin (roles/storagetransfer.admin) Mengaktifkan tindakan administratif dalam project transfer, seperti penyiapan project. Untuk mengetahui daftar mendetail tentang izin yang diberikan, lihat Peran yang ditetapkan sebelumnya untuk 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 digunakan 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:

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 khusus tersebut.
Storage Transfer User (roles/storagetransfer.user) Memungkinkan pengguna membuat, mendapatkan, mengupdate, dan mentransfer daftar. Untuk mengetahui daftar mendetail tentang izin yang diberikan, lihat Peran yang ditetapkan sebelumnya untuk 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 dibuat otomatis 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:

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
Penulis Bucket Lama Penyimpanan (roles/storage.legacyBucketWriter) Mengaktifkan Storage Transfer Service untuk membaca metadata bucket, mencantumkan objek di dalam bucket, dan menulis objek ke bucket tujuan. Memberikan izin di bucket tujuan Cloud Storage.
Storage Object Viewer (roles/storage.objectViewer) Mengaktifkan Storage Transfer Service untuk menentukan apakah file telah ditransfer ke atau dari Cloud Storage. Berikan bucket sumber Cloud Storage jika Anda mentransfer dari Cloud Storage. Jika sesuai dengan situasi, Anda dapat memberikan peran tersebut di level project ke project tempat Storage Transfer Service dijalankan.
Pembaca Bucket Lama Storage (roles/storage.legacyBucketReader) Mengaktifkan Storage Transfer Service untuk membaca metadata bucket Cloud Storage.

Berikan bucket sumber Cloud Storage jika Anda mentransfer dari Cloud Storage.

Peran legacy Cloud Storage hanya dapat diberikan pada level bucket.

Lihat Memberikan izin yang diperlukan untuk mengetahui petunjuknya.

Transfer Cloud Storage lintas project

Untuk mentransfer objek antara bucket Cloud Storage di project yang berbeda, Anda harus memberikan izin ke satu akun layanan yang dikelola Google di bucket sumber dan bucket tujuan. Akun layanan yang dikelola Google adalah milik project tempat Anda melakukan transfer.

Akun layanan yang dikelola pengguna atau pengguna hanya memerlukan izin pada project yang membuat transfer.

Untuk mendapatkan email akun layanan yang dikelola Google, lihat Menemukan email agen layanan.

Di bucket sumber, berikan peran berikut di level bucket ke akun layanan yang dikelola Google:

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

Di bucket tujuan, berikan peran berikut di level bucket ke akun layanan yang dikelola Google yang sama:

  • Storage Legacy Bucket Writer

Untuk petunjuk tentang pemberian peran di level bucket, lihat halaman berikut:

Batasan organisasi

Jika organisasi Anda telah menerapkan batasan kebijakan organisasi seperti pembatasan domain (constraints/iam.allowedPolicyMemberDomains) atau menonaktifkan lampiran akun layanan ke resource dalam project lain (constraints/iam.disableCrossProjectServiceAccountUsage), batasan ini harus diperbarui sebelum transfer lintas project dapat berhasil.

Anda mungkin juga perlu memperbarui setelan kontrol layanan VPC untuk mendukung transfer lintas project. Lihat Mengonfigurasi Kontrol Layanan VPC untuk transfer penyimpanan objek cloud.

Izin AWS dan Microsoft

Anda juga harus mengonfigurasi akses ke file sumber jika file tersebut berada di AWS S3 atau Microsoft Azure Storage. Dokumen berikut menjelaskan langkah-langkah yang diperlukan: