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:

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:

Izinkan BigQuery Data Transfer Service mengakses Google Ads.

Untuk mencabut izin yang telah diberikan, ikuti langkah-langkah berikut:

  1. Buka halaman Akun Google.
  2. Klik BigQuery Data Transfer Service.
  3. Untuk mencabut izin, klik Hapus akses. Hapus akses yang Anda berikan ke BigQuery Data Transfer Service.

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.