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. Perangkat ini tidak memerlukan agen transfer atau kumpulan agen.

Saat mentransfer data antar-penyedia cloud dalam transfer tanpa agen, Anda harus memberikan izin kepada dua prinsipal:

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

Metode pemberian izin yang paling sederhana

CLI gcloud dapat digunakan untuk memberikan izin yang diperlukan kepada akun 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 tanda --add-missing:

gcloud transfer authorize --add-missing

Untuk memberikan izin ke akun layanan yang dikelola pengguna, bukan pengguna, teruskan file kunci akun layanan:

gcloud transfer authorize --add-missing --creds-file=path/to/key.json

Perintah ini memberikan izin berikut.

  • Untuk akun layanan yang dikelola pengguna / pengguna:

    • roles/owner
    • roles/storagetransfer.admin
    • roles/storagetransfer.transferAgent
    • roles/storage.objectAdmin
    • roles/pubsub.editor
  • Kepada agen layanan terkelola Google:

    • roles/storage.admin
    • roles/storagetransfer.serviceAgent

Untuk mengetahui petunjuk tentang cara menginstal CLI gcloud, lihat panduan memulai gcloud.

Izin akun pengguna

Akun pengguna memerlukan izin untuk menjalankan operasi Storage Transfer Service. Izin ini diberikan melalui salah satu dari dua peran: Pengguna Storage Transfer atau Admin Storage Transfer.

Selain itu, akun memerlukan izin untuk mengambil agen layanan yang dikelola Google guna memeriksa izinnya.

Untuk menyiapkan akun pengguna atau akun layanan yang dikelola pengguna, berikan izin dan peran IAM berikut.

Peran / Izin Fungsi Catatan
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 bawaan Pelihat Peran (roles/iam.roleViewer), atau buat peran khusus dengan satu izin ini dan berikan peran khusus tersebut.
Salah satu peran berikut:
Storage Transfer Admin (roles/storagetransfer.admin) Mengizinkan semua operasi Storage Transfer Service, termasuk menghapus tugas transfer. Untuk melihat daftar mendetail izin yang diberikan, lihat Peran bawaan Storage Transfer Service.
Storage Transfer User (roles/storagetransfer.user) Memungkinkan pengguna membuat, mendapatkan, memperbarui, dan mencantumkan transfer. Tidak mengizinkan pengguna menghapus tugas transfer. Untuk melihat daftar mendetail izin yang diberikan, lihat Peran bawaan Storage Transfer Service.

Izin agen layanan terkelola Google

Storage Transfer Service menggunakan agen layanan yang dikelola Google untuk memindahkan data Anda. Akun layanan ini otomatis dibuat saat pertama kali Anda membuat tugas transfer, memanggil googleServiceAccounts.get, atau membuka halaman pembuatan tugas di konsol Google Cloud .

Format akun layanan biasanya project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Untuk mengambil ID akun layanan Anda, gunakan panggilan API [googleServiceAccounts.get][googleServiceAccounts.get].

Menetapkan peran secara otomatis

Ada dua cara untuk otomatis menetapkan peran yang benar kepada agen layanan:

Menetapkan peran secara manual

Untuk mengizinkan agen layanan mengakses resource yang diperlukan untuk menyelesaikan transfer, tetapkan peran berikut, atau izin yang setara, kepada agen layanan.

Peran / Izin Fungsi Catatan
Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter) Memungkinkan Storage Transfer Service membaca metadata bucket, mencantumkan objek dalam bucket, dan menulis objek ke bucket tujuan.

Pemberian izin di bucket tujuan Cloud Storage.

Peran legacy Cloud Storage hanya dapat diberikan di tingkat bucket.

Storage Object Viewer (roles/storage.objectViewer)

Memungkinkan Storage Transfer Service menyalin objek dari sumber Cloud Storage.

Juga memungkinkan Storage Transfer Service menentukan apakah file sudah ada di tujuan Cloud Storage dan apakah file tersebut telah berubah.

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

Berikan juga izin pada bucket tujuan Cloud Storage jika transfer Anda dikonfigurasi untuk [menimpa objek](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) di tujuan jika berbeda, atau tidak pernah. Tidak diperlukan jika setelan transfer Anda adalah selalu menimpa.

Jika sesuai dengan situasi Anda, Anda dapat memberikan peran di level project ke project tempat Storage Transfer Service berjalan.

Storage Legacy Bucket Reader (roles/storage.legacyBucketReader) Memungkinkan Storage Transfer Service membaca metadata bucket Cloud Storage.

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

Peran legacy Cloud Storage hanya dapat diberikan di tingkat bucket.

Lihat Memberikan izin yang diperlukan untuk mengetahui petunjuknya.

Mendelegasikan ke akun layanan yang dikelola pengguna

Anda dapat mendelegasikan izin agen layanan ke akun layanan yang dikelola pengguna. Dengan demikian, Anda dapat memisahkan izin bucket untuk berbagai tugas transfer di seluruh akun layanan, bukan memusatkannya dalam satu agen layanan.

Untuk mengetahui detailnya, lihat Mendelegasikan izin agen layanan ke akun layanan yang dikelola pengguna.

Transfer Cloud Storage antar-project

Untuk mentransfer objek antar-bucket Cloud Storage dalam project yang berbeda, Anda harus memberikan izin kepada satu agen layanan di bucket sumber dan bucket tujuan. Agen layanan adalah milik project tempat Anda membuat transfer.

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

Untuk mendapatkan email agen layanan, lihat Menemukan email agen layanan.

Di bucket sumber, berikan peran berikut di tingkat bucket kepada agen layanan:

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

Di bucket tujuan, berikan peran berikut di tingkat bucket kepada agen layanan yang sama:

  • Storage Legacy Bucket Writer

Untuk mengetahui petunjuk tentang cara memberikan peran di tingkat bucket, lihat halaman berikut:

Peran Legacy Cloud Storage tidak dapat diberikan di tingkat project.

Pembatasan organisasi

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

Anda mungkin juga perlu memperbarui setelan Kontrol Layanan VPC untuk mendukung transfer antarproject. 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: