Cloud Storage menggunakan
akun layanan yang dikelola Google,
yang dikenal sebagai agen layanan,
untuk memindahkan data ke bucket Cloud Storage. Agen layanan ini dibuat saat Anda pertama kali memanggil
googleServiceAccounts.get
.
Bucket tujuan 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 di bucket tujuan:
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.
Memberikan izin secara 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 tujuan Anda.
Anda dapat melewati langkah-langkah di halaman ini. Jika diperlukan, konfigurasi akses ke sumber Anda, lalu buat transfer.
Izin yang diperlukan
Agen layanan harus memiliki izin berikut untuk bucket tujuan:
Izin | Deskripsi |
---|---|
storage.buckets.get |
Mengizinkan akun layanan mendapatkan lokasi bucket. |
storage.objects.get |
Mengizinkan akun layanan untuk melihat objek dan metadatanya, tidak termasuk ACL. Wajib diisi jika transfer Anda dikonfigurasi untuk [menimpa objek](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) di sink saat berbeda, atau tidak pernah. Tidak diperlukan jika setelan transfer Anda adalah selalu menimpa. |
storage.objects.create |
Mengizinkan akun layanan menambahkan objek ke bucket. |
storage.objects.delete |
Mengizinkan akun layanan menghapus objek di bucket.
Wajib jika Anda menetapkan Perhatikan bahwa jika bucket tujuan mengaktifkan
pembuatan versi objek, baik |
storage.objects.list |
Mengizinkan akun layanan mencantumkan objek dalam bucket. Wajib jika
Anda menetapkan overwriteObjectsAlreadyExistingInSink ke
false atau deleteObjectsUniqueInSink ke
true . |
Peran bawaan berikut memberikan izin yang diperlukan:
- Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter
)
Selain itu, untuk transfer yang dikonfigurasi untuk menimpa objek di tujuan jika berbeda, atau tidak pernah, tetapkan peran standar berikut ke agen layanan:
- Storage Object Viewer (
roles/storage.objectViewer
)
Untuk mengetahui daftar lengkap peran Cloud Storage dan izin yang dikandungnya, lihat Peran IAM.
Memberikan izin yang diperlukan
Untuk memberikan peran Storage Legacy Bucket Writer dan Storage Object Viewer kepada agen layanan, ikuti langkah-langkah berikut.
Menemukan email agen layanan
Buka halaman referensi
googleServiceAccounts.get
.Panel interaktif akan terbuka, berjudul Coba metode ini.
Di panel, di bagian Parameter permintaan, masukkan ID project Anda. Project yang Anda tentukan di sini harus berupa project yang Anda gunakan untuk mengelola Storage Transfer Service, yang mungkin berbeda dengan project bucket tujuan.
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 tingkat bucket
Konsol
- Di Google Cloud konsol, buka halaman Bucket Cloud Storage.
Klik menu Bucket overflow (
) yang terkait dengan bucket tempat Anda ingin memberi akun utama peran.Pilih Edit akses.
Klik tombol + Tambahkan akun utama.
Di kolom New principals, masukkan email akun agen layanan Anda.
Pilih
Storage Legacy Bucket Writer
dari menu drop-down Pilih peran.Klik Simpan.
Ulangi untuk menambahkan peran
Storage Object Viewer
jika transfer Anda dikonfigurasi untuk menimpa objek di sink saat berbeda, atau tidak pernah.
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.legacyBucketWriter
Dengan:
BUCKET_NAME
adalah nama bucket yang aksesnya Anda berikan ke akun utama. Contoh,my-bucket
.YOUR_AGENT_EMAIL
adalah email akun agen yang Anda salin di Menemukan email agen layanan.
Untuk memberikan peran Storage Object Viewer
, gunakan perintah yang sama, tetapi
ganti roles/storage.legacyBucketWriter
dengan
roles/storage.objectViewer
:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.objectViewer
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 C++ API Cloud Storage.
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 C# API Cloud Storage.
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 Go API Cloud Storage.
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 dokumentasi referensi Java API Cloud Storage.
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 dokumentasi referensi Node.js API Cloud Storage.
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 dokumentasi referensi PHP API Cloud Storage.
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 dokumentasi referensi Python API Cloud Storage.
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 dokumentasi referensi Ruby API Cloud Storage.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
JSON
Menginstal dan melakukan inisialisasi gcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "bindings":[ { "role": "roles/storage.legacyBucketWriter", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
Dengan:
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
.
Untuk mengetahui informasi selengkapnya tentang cara menetapkan peran IAM ke resource Cloud Storage, lihat dokumentasi IAM Cloud Storage.