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 ke dua entitas:
- Pengguna atau akun layanan yang dikelola pengguna yang membuat atau mengelola transfer.
- Akun layanan yang dikelola Google yang dibuat secara otomatis saat Anda pertama kali berinteraksi dengan Layanan Transfer Penyimpanan.
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 termudah untuk memberikan izin
CLI gcloud
dapat digunakan untuk memberikan izin yang diperlukan ke akun layanan pengguna / yang dikelola 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 ini memberikan izin berikut.
Kepada pengguna / akun layanan yang dikelola 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 petunjuk tentang cara menginstal gcloud
CLI, lihat
panduan memulai gcloud
.
Izin 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 menetapkan batas penggunaan bandwidth dan menghapus tugas transfer.
Untuk menyiapkan akun administrator, tetapkan 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 standar Role Viewer (roles/iam.roleViewer ), atau buat peran khusus dengan izin tunggal ini dan berikan peran khusus. |
Storage Transfer Admin
(roles/storagetransfer.admin )
|
Mengaktifkan tindakan administratif dalam project transfer, seperti penyiapan project. | Untuk mengetahui daftar mendetail izin yang diberikan, lihat Peran yang telah ditetapkan untuk Layanan Transfer Penyimpanan. |
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 ke akun:
Peran / Izin | Fungsi | Catatan |
---|---|---|
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 standar Role Viewer (roles/iam.roleViewer ), atau buat peran khusus dengan izin tunggal ini dan berikan peran khusus. |
Storage Transfer User
(roles/storagetransfer.user )
|
Memungkinkan pengguna membuat, mendapatkan, memperbarui, dan mencantumkan transfer. | Untuk mengetahui daftar mendetail izin yang diberikan, lihat Peran yang telah ditetapkan untuk Layanan Transfer Penyimpanan. |
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 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
.
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 termudah 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 | 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. | Berikan di bucket tujuan Cloud Storage. |
Storage Object Viewer
(roles/storage.objectViewer )
|
Memungkinkan Storage Transfer Service menentukan apakah file telah ditransfer ke atau dari Cloud Storage. | Berikan di bucket sumber Cloud Storage jika Anda mentransfer dari Cloud Storage. Jika sesuai dengan situasi Anda, Anda dapat memberikan peran pada level project ke project tempat Layanan Transfer Penyimpanan berjalan. |
Storage Legacy Bucket Reader
(roles/storage.legacyBucketReader )
|
Memungkinkan Storage Transfer Service membaca metadata bucket Cloud Storage. |
Berikan di bucket sumber Cloud Storage jika Anda mentransfer dari Cloud Storage. Peran |
Lihat Memberikan izin yang diperlukan untuk mengetahui petunjuknya.
Transfer Cloud Storage lintas project
Untuk mentransfer objek antar-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 merupakan milik project tempat Anda membuat transfer.
Pengguna atau akun layanan yang dikelola 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 tingkat bucket ke akun layanan yang dikelola Google:
Storage Legacy Bucket Reader
Storage Object Viewer
Di bucket tujuan, berikan peran berikut di tingkat bucket ke akun layanan yang dikelola Google yang sama:
Storage Legacy Bucket Writer
Untuk mengetahui petunjuk cara memberikan peran di tingkat bucket, lihat halaman berikut:
Pembatasan organisasi
Jika organisasi Anda telah menerapkan
batasan kebijakan organisasi
seperti
pembatasan domain
(constraints/iam.allowedPolicyMemberDomains
) atau
menonaktifkan lampiran akun layanan ke resource di 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: