Storage Transfer Service menggunakan akun layanan yang dikelola Google, yang dikenal sebagai agen layanan, untuk memindahkan data dari bucket sumber Cloud Storage. Agen layanan ini
dibuat saat pertama kali Anda memanggil
googleServiceAccounts.get
.
Bucket sumber tidak harus menjadi milik project yang sama dengan agen layanan. Langkahnya sama, terlepas dari project tempat bucket berada.
Izin pengguna
Untuk memberikan izin yang diperlukan kepada agen layanan, Anda harus memiliki izin yang relevan di bucket sumber:
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
Peran Storage Legacy Bucket Owner (roles/storage.legacyBucketOwner
) atau peran Storage Admin (roles/storage.admin
) memberikan izin yang diperlukan.
Pemberian izin otomatis di konsol Google Cloud
Jika Anda menggunakan Konsol Google Cloud untuk membuat transfer, dan memiliki izin yang tercantum di Izin pengguna, agen layanan akan otomatis diberi izin yang diperlukan di bucket sumber Anda.
Anda dapat melewati langkah-langkah di halaman ini dan langsung membuat transfer.
Izin yang diperlukan
Agen layanan harus memiliki izin berikut untuk bucket sumber:
Izin | Deskripsi |
---|---|
storage.buckets.get |
Mengizinkan agen layanan untuk mendapatkan lokasi bucket. |
storage.objects.list |
Mengizinkan agen layanan untuk membuat daftar objek di dalam bucket. |
storage.objects.get |
Mengizinkan agen layanan untuk membaca objek dalam bucket. |
storage.objects.create |
Mengizinkan agen layanan untuk membuat objek di dalam bucket. Diperlukan jika transfernya ke sistem file. Storage Transfer Service membuat dan
mengisi dua folder di bucket sumber: |
storage.objects.delete |
Mengizinkan agen layanan menghapus objek dalam bucket. Wajib ada jika Anda menetapkan deleteObjectsFromSourceAfterTransfer ke true .
|
Peran yang telah ditetapkan berikut secara bersama-sama memberikan izin yang diperlukan:
- Salah satu dari:
- Storage Object Viewer (
roles/storage.objectViewer
) jika transfer ditujukan ke bucket Cloud Storage lain. - Storage Object Creator (
roles/storage.objectCreator
) jika transfernya ke sistem file.
- Storage Object Viewer (
- Plus salah satu dari:
- Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter
) jika izin penghapusan objek diperlukan. - Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader
) jika izin penghapusan objek tidak diperlukan.
- Storage Legacy Bucket Writer (
Setiap peran Cloud Storage yang ditandai sebagai peran legacy
hanya dapat diberikan di level bucket.
Untuk mengetahui daftar lengkap peran Cloud Storage dan izin yang dimilikinya, lihat Peran IAM.
Untuk objek ACL saat ACL_PRESERVE ditetapkan, peran ACL_PRESERVE (roles/storage.legacyObjectOwner
) juga diperlukan untuk objek sumber. Untuk ACL_PRESERVE, tambahkan akun layanan secara manual agar memiliki peran Storage Legacy Object Owner untuk memberikan izin objek sumber storage.objects.getIamPolicy
.
Memberikan izin yang diperlukan
Untuk memberikan izin yang diperlukan kepada agen layanan, ikuti langkah-langkah di bawah.
Menemukan email agen layanan
Buka halaman referensi
googleServiceAccounts.get
.Panel interaktif akan terbuka, yang berjudul Coba metode ini.
Di panel, di bagian Parameter permintaan, masukkan project ID. Project yang Anda tentukan di sini harus merupakan project yang Anda gunakan untuk mengelola Storage Transfer Service, yang mungkin berbeda dari project bucket sumber.
Klik Jalankan.
Email agen layanan Anda ditampilkan sebagai nilai
accountEmail
. Salin nilai ini.Email agen layanan menggunakan format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.
Menambahkan agen layanan ke kebijakan level bucket
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Klik menu Bucket overflow (
) yang terkait dengan bucket yang ingin Anda berikan peran ke akun utama.Pilih Edit akses.
Klik tombol + Add principal.
Di kolom New principals, masukkan email akun agen layanan Anda.
Pilih
Storage Object Viewer
atauStorage Object Creator
dari menu drop-down Pilih peran.Klik Add another role.
Pilih
Storage Legacy Bucket Writer
atauStorage Legacy Bucket Reader
.Klik Save.
gsutil
Gunakan perintah gsutil iam ch
:
gsutil iam ch \ serviceAccount:YOUR_AGENT_EMAIL:objectViewer,legacyBucketReader \ gs://BUCKET_NAME
Dengan keterangan:
YOUR_AGENT_EMAIL
adalah email akun agen yang Anda salin dalam Temukan email agen layanan.BUCKET_NAME
adalah nama bucket yang aksesnya Anda berikan ke akun utama. Contoh,my-bucket
.
Contoh kode
C++
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C++ Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API PHP Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
JSON
Telah menginstal dan melakukan inisialisasigcloud CLI, agar dapat membuat token akses untuk header
Authorization
.Atau, Anda dapat membuat token akses menggunakan OAuth 2.0 Playground dan menyertakannya di header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.legacyBucketReader", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
Dengan keterangan:
YOUR_AGENT_EMAIL
adalah email akun agen yang Anda salin di Temukan email agen layanan.
Gunakan
cURL
untuk memanggil JSON API dengan permintaanPUT setIamPolicy
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file yang Anda buat di Langkah 2.OAUTH2_TOKEN
adalah token akses yang Anda buat pada Langkah 1.BUCKET_NAME
adalah nama bucket yang ingin Anda beri akses utama. Contoh,my-bucket
.