Memberikan otorisasi untuk transfer data kepada akun
Dokumen ini berisi ringkasan tentang cara BigQuery Data Transfer Service berinteraksi dengan berbagai jenis akun, jenis otorisasi akun yang Anda perlukan untuk melakukan tugas transfer umum, dan langkah-langkah pemecahan masalah untuk error izin yang umum.
Untuk mulai menggunakan BigQuery Data Transfer Service, pastikan akun yang terkait dengan project Anda, baik akun pengguna maupun akun layanan, telah diautentikasi dan diberi otorisasi dengan izin yang tepat untuk melakukan ebutuhan transfer Anda. Untuk informasi tentang izin khusus sumber data, lihat panduan transfer untuk setiap sumber data.
Konsep utama
BigQuery Data Transfer Service mengotomatiskan transfer data dari berbagai sumber data ke BigQuery. Model autentikasi dan otorisasi beroperasi pada dua tahap yang berbeda, bidang kontrol dan bidang data, dan untuk dua jenis pengguna, pembuat transfer atau pemilik transfer.
Bidang kontrol
Bidang kontrol mewakili tahap dalam proses otorisasi ketika pengguna terautentikasi dapat mengontrol dan mengelola konfigurasi dan operasi transfer. Pengguna di bidang kontrol harus memiliki izin Identity and Access Management (IAM) yang sesuai untuk mengontrol dan mengelola konfigurasi transfer dan menjalankannya:
- Izin
bigquery.transfers.update
, yang memungkinkan pengguna melakukan hal berikut:- Menyiapkan konfigurasi transfer data.
- Mengelola transfer yang ada, seperti mengupdate, menonaktifkan, atau menghapus transfer.
- Izin
bigquery.transfers.get
, yang memungkinkan pengguna memantau proses transfer, seperti memeriksa status proses transfer atau melihat histori dan log proses transfer.
Jika menggunakan konsol Google Cloud atau alat command line bq untuk melakukan
transfer, Anda juga harus memiliki izin bigquery.transfers.get
.
Izin bigquery.transfers.update
tidak diperlukan untuk menyiapkan
kueri terjadwal. Untuk mengetahui informasi selengkapnya, lihat izin yang diperlukan untuk kueri terjadwal.
Bidang data
Bidang data mewakili tahap di luar kontrol langsung pengguna. Pada bidang data, BigQuery Data Transfer Service dapat mengoperasikan transfer data dalam mode offline dan dapat memicu proses transfer yang berjalan otomatis berdasarkan jadwal yang ditentukan pengguna. Di bidang data, kredensial pemilik transfer digunakan untuk mengakses data sumber, dan (bergantung pada sumber data) kredensial pemilik transfer atau BigQuery Data Transfer Serviceagen layanan digunakan untuk memulai tugas BigQuery dan menulis data ke set data tujuan.
Untuk detail selengkapnya tentang izin yang diperlukan, lihat bagian berikut dalam panduan ini:
- Otorisasi akses baca untuk sumber data eksternal
- Memberikan otorisasi untuk memulai tugas BigQuery
- Memberikan otorisasi untuk menjalankan tugas BigQuery dan menulis data ke set data tujuan
Kreator transfer versus pemilik transfer
Pembuat transfer mengacu pada identitas pengguna yang membuat dan menyiapkan konfigurasi transfer. Pengguna BigQuery Data Transfer Service dan pembuat transfer dapat berupa akun pengguna atau akun layanan.
Pemilik transfer merujuk pada identitas pengguna yang digunakan BigQuery Data Transfer Service untuk mengizinkan transfer data, khususnya, untuk mengekstrak data sumber. Untuk sumber data yang mendukung akun layanan, pemilik transfer dapat berupa akun pengguna atau akun layanan. Untuk sumber data lainnya, pemilik transfer harus merupakan akun pengguna.
Pemilik transfer dan pembuat transfer dapat memiliki identitas pengguna yang sama, tetapi itu bukan persyaratan. Ada beberapa cara untuk menetapkan pemilik transfer menjadi pengguna yang berbeda dengan pembuat transfer:
- Saat melakukan transfer, Anda dapat menetapkan pemilik ke akun layanan jika sumber data mendukung akun layanan.
- Setelah pembuatan transfer, siapa pun yang memiliki izin
bigquery.transfers.update
dapat mengubah kepemilikan transfer ke akun mereka sendiri (atau ke akun layanan jika sumber data mendukung akun layanan) dengan mengupdate kredensial.
Otorisasi akses baca untuk sumber data eksternal
Izin yang diperlukan untuk membaca data sumber dapat bervariasi dari satu sumber data ke sumber data lainnya. Misalnya, untuk mengakses Google Ads, Anda memerlukan izin akses baca ke ID Pelanggan Google Ads. Demikian pula, Google Play memerlukan akses laporan di konsol Google Play. Guna mengetahui informasi selengkapnya tentang izin yang khusus untuk sumber data, lihat panduan transfer untuk setiap sumber data.
Bergantung pada jenis identitas pemilik transfer, metode otorisasi yang berbeda diperlukan untuk mengambil token akses agar dapat mengakses data sumber.
Mentransfer pemilik sebagai akun layanan
Jika akun layanan digunakan sebagai pemilik transfer, izin yang diperlukan akan otomatis diberikan saat BigQuery Data Transfer Service API diaktifkan untuk project Anda. BigQuery Data Transfer Service menggunakan akun layanan yang dikelola Google (juga disebut sebagai agen layanan) untuk mendapatkan token akses untuk akun layanan yang disediakan pengguna (pemilik transfer).
Saat Anda mengaktifkan BigQuery Data Transfer Service API, agen layanan
akan dibuat untuk project Anda. Sistem juga memberikan
peran BigQuery Data Transfer Service Agent (roles/bigquerydatatransfer.serviceAgent
) kepada agen layanan,
yang mencakup izin iam.serviceAccounts.getAccessToken
. Dengan
izin tersebut, agen layanan BigQuery Data Transfer Service dapat meniru identitas
akun layanan pemilik transfer untuk mengambil token akses.
Untuk mengetahui informasi selengkapnya tentang agen layanan BigQuery Data Transfer Service, lihat Agen layanan. Untuk mengetahui informasi selengkapnya tentang cara menggunakan akun layanan dan daftar terbaru sumber data yang memiliki dukungan akun layanan, lihat Menggunakan akun layanan.
Mentransfer pemilik sebagai akun pengguna
Jika pemilik transfer yang membuat konfigurasi transfer adalah akun pengguna (bukan akun layanan), Anda harus memberikan izin secara manual agar BigQuery Data Transfer Service mendapatkan token akses untuk akun pengguna dan akses data sumber atas nama pemilik transfer. Anda dapat memberikan persetujuan manual dengan antarmuka dialog OAuth.
Anda hanya perlu memberikan izin ke BigQuery Data Transfer Service untuk pertama kalinya saat membuat transfer untuk sumber data tertentu. Anda harus memberikan izin lagi saat membuat transfer pertama untuk region yang baru digunakan, meskipun Anda menggunakan sumber data yang sama.
Mengubah pemilik transfer dengan mengupdate kredensial juga memerlukan persetujuan manual jika pemilik baru tidak pernah membuat transfer untuk sumber data di region tersebut sebelumnya.
Screenshot berikut menampilkan antarmuka dialog OAuth saat Anda membuat transfer Google Ads. Dialog ini menampilkan izin khusus sumber data yang akan diberikan:
Untuk mencabut izin yang telah diberikan, ikuti langkah-langkah berikut:
- Buka halaman Akun Google.
- Klik BigQuery Data Transfer Service.
- Untuk mencabut izin, klik Hapus akses.
Memberikan otorisasi untuk memulai tugas BigQuery
Saat Anda bermigrasi dari sebagian besar sumber data, kecuali saat bermigrasi menggunakan kueri terjadwal
atau salinan set data,
BigQuery Data Transfer Service akan mengandalkan akun layanan yang dikelola Google
untuk memulai tugas BigQuery
untuk project Anda. Izin yang diperlukan bigquery.job.create
secara otomatis
diberikan kepada agen layanan
saat Anda mengaktifkan BigQuery Data Transfer Service API untuk project Anda. Untuk mengetahui informasi
selengkapnya, lihat Mengaktifkan BigQuery Data Transfer Service.
Saat Anda bermigrasi menggunakan kueri terjadwal atau salinan set data, BigQuery Data Transfer Service akan menggunakan kredensial pemilik transfer untuk memulai tugas BigQuery.
Memberikan otorisasi untuk menjalankan tugas BigQuery dan menulis data ke set data tujuan
Saat Anda bermigrasi dari sebagian besar sumber data, kecuali saat bermigrasi menggunakan
kueri terjadwal atau salinan set data,
BigQuery Data Transfer Service akan mengandalkan agen layanan untuk menulis data ke dalam
set data tujuan BigQuery. Izin yang diperlukan,
roles/bigquery.dataEditor
, diberikan ke agen layanan oleh
BigQuery Data Transfer Service saat Anda membuat transfer. Anda harus memiliki
izin bigquery.datasets.update
di set data tujuan agar berhasil
memberikan izin.
Saat Anda bermigrasi menggunakan kueri terjadwal atau salinan set data, BigQuery Data Transfer Service akan menggunakan kredensial pemilik transfer untuk menjalankan tugas BigQuery dan menulis data ke set data tujuan BigQuery.
Memecahkan masalah error izin
Jika Anda mengalami masalah terkait otorisasi atau izin untuk transfer, lihat Masalah otorisasi dan izin.