Storage Transfer Service menggunakan a
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 berada dalam project yang sama dengan agen layanan. Langkah-langkahnya sama, terlepas dari project tempat bucket berada.
Izin pengguna
Untuk memberikan izin yang diperlukan kepada agen layanan, Anda harus memiliki izin yang relevan pada bucket sumber:
storage.buckets.getIamPolicystorage.buckets.setIamPolicy
Peran Storage Legacy Bucket Owner (roles/storage.legacyBucketOwner) atau peran Storage Admin (roles/storage.admin) memberikan izin yang diperlukan.
Memberikan izin secara otomatis di Google Cloud konsol
Jika Anda menggunakan Google Cloud konsol 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 ke membuat transfer.
Izin yang diperlukan
Agen layanan harus memiliki izin berikut untuk bucket sumber:
| Izin | Deskripsi |
|---|---|
storage.buckets.get |
Mengizinkan agen layanan mendapatkan lokasi bucket. |
storage.objects.list |
Mengizinkan agen layanan mencantumkan objek dalam bucket. |
storage.objects.get |
Mengizinkan agen layanan membaca objek dalam bucket. |
storage.objects.create |
Mengizinkan agen layanan membuat objek dalam bucket. Diperlukan jika transfer dilakukan ke sistem file. Storage Transfer Service creates and
populates two folders in the source bucket: |
storage.objects.delete |
Mengizinkan agen layanan menghapus objek dalam bucket. Diperlukan
jika Anda menetapkan deleteObjectsFromSourceAfterTransfer ke
true.
|
storage.objects.getIamPolicy |
Mengizinkan agen layanan membaca ACL pada objek sumber. Diperlukan jika
pelestarian ACL objek (ACL_PRESERVE) diaktifkan.
|
Peran bawaan berikut bersama-sama memberikan izin yang diperlukan:
- Salah satu dari:
- Storage Object Viewer (
roles/storage.objectViewer) jika transfer dilakukan ke bucket Cloud Storage lain. - Storage Object Creator (
roles/storage.objectCreator) jika transfer dilakukan ke sistem file.
- Storage Object Viewer (
- Ditambah 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 (
- Selain itu, jika mempertahankan objek
ACL dengan
ACL_PRESERVE:- Storage Legacy Object Owner (
roles/storage.legacyObjectOwner)
- Storage Legacy Object Owner (
Peran Cloud Storage apa pun yang ditandai sebagai peran legacy hanya dapat diberikan di tingkat bucket.
Untuk mengetahui daftar lengkap peran Cloud Storage dan izin yang dikandungnya, lihat Peran IAM.
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, berjudul Try this method.
Di panel, di bagian Request parameters, masukkan project ID Anda. Project yang Anda tentukan di sini harus berupa project yang Anda gunakan untuk mengelola Storage Transfer Service, yang mungkin berbeda dengan bucket sumber project.
Klik Execute.
Email agen layanan Anda akan ditampilkan sebagai nilai
accountEmail. Salin nilai ini.Email agen layanan menggunakan format
project-PROJECT_NUMBER@storage-transfer-service..
Menambahkan agen layanan ke kebijakan tingkat bucket
Konsol
- Di Google Cloud konsol, buka halaman Buckets Cloud Storage.
Klik menu Bucket overflow () yang terkait dengan bucket yang ingin Anda beri peran entitas.
Pilih akses edit.
Klik tombol + Add principal.
Di kolom New principals, masukkan email akun agen layanan Anda.
Pilih
Storage Object VieweratauStorage Object Creatordari menu drop-down Select a role.Klik Add another role.
Pilih
Storage Legacy Bucket WriteratauStorage Legacy Bucket Reader.Klik Save.
gcloud
Gunakan perintah gcloud storage buckets add-iam-policy-binding:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.legacyBucketReader
Ganti kode berikut:
BUCKET_NAMEadalah nama bucket yang aksesnya Anda berikan ke akun utama. Contoh,my-bucket.YOUR_AGENT_EMAILadalah email akun agen yang Anda salin di Menemukan email agen layanan.
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 Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat Library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat Library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat Library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat Cloud Storage Java API dokumentasi referensi.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat Library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat Cloud Storage Node.js API dokumentasi referensi.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat Library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat Cloud Storage PHP API dokumentasi referensi.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat Library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat Cloud Storage Python API dokumentasi referensi.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Cloud Storage, lihat Library klien Cloud Storage. Untuk mengetahui informasi selengkapnya, lihat Cloud Storage Ruby API dokumentasi referensi.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Rust
JSON
Pastikan gcloud CLI telah diinstal dan diinisialisasi, yang memungkinkan Anda membuat token akses untuk 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" ] } ] }
Ganti kode berikut:
YOUR_AGENT_EMAILadalah email akun agen yang Anda salin di Menemukan email agen layanan.
Gunakan
cURLuntuk 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./storage/v1/b/BUCKET_NAME/iam"
Ganti kode berikut:
JSON_FILE_NAMEadalah jalur untuk file yang Anda buat di Langkah 2.OAUTH2_TOKENadalah token akses yang Anda buat pada Langkah 1.BUCKET_NAMEadalah nama bucket yang ingin Anda beri akses utama. Contoh,my-bucket.