Menghubungkan ke AlloyDB untuk PostgreSQL

Sebagai administrator BigQuery, Anda dapat membuat koneksi untuk mengakses data AlloyDB. Koneksi ini memungkinkan analis data membuat kueri data di AlloyDB.

Untuk terhubung ke AlloyDB, Anda harus melakukan langkah-langkah berikut:

  1. Buat koneksi AlloyDB.

  2. Beri akses ke akun layanan.

Sebelum memulai

  1. Mengaktifkan BigQuery Connection API.

    Mengaktifkan API

  2. Untuk mendapatkan izin yang diperlukan untuk membuat koneksi AlloyDB, minta administrator untuk memberi Anda peran IAM BigQuery Connection Admin (roles/bigquery.connectionAdmin) pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat koneksi AlloyDB

Sebagai praktik terbaik, gunakan koneksi untuk menangani kredensial database saat Anda terhubung ke AlloyDB. Koneksi dienkripsi dan disimpan dengan aman di layanan koneksi BigQuery. Jika kredensial pengguna valid untuk data lain di sumber, Anda dapat menggunakan kembali koneksi. Misalnya, Anda dapat menggunakan satu koneksi untuk membuat kueri database yang sama di instance AlloyDB beberapa kali.

Pilih salah satu opsi berikut untuk membuat koneksi AlloyDB:

Konsol

  1. Buka halaman BigQuery.

    Buka BigQuery

  2. Di panel Penjelajah, klik Tambahkan.

  3. Pada dialog Tambahkan, klik Koneksi ke sumber data eksternal:

  4. Di dialog Sumber data eksternal, masukkan informasi berikut:

    • Untuk Connection type, pilih AlloyDB.
    • Untuk Connection ID, masukkan ID untuk resource koneksi. Huruf, angka, dan garis bawah diperbolehkan. Contoh, bq_alloydb_connection.
    • Untuk Lokasi data, pilih lokasi (atau region) BigQuery yang kompatibel dengan region sumber data eksternal Anda.
    • Opsional: Untuk Nama yang cocok, masukkan nama yang mudah digunakan untuk koneksi, seperti My connection resource. Nama yang cocok dapat berupa nilai apa pun yang membantu Anda mengidentifikasi resource koneksi jika perlu mengubahnya nanti.
    • Opsional: Untuk Description, masukkan deskripsi untuk resource koneksi ini.
    • Opsional: Enkripsi Jika Anda ingin menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi kredensial, pilih Kunci enkripsi yang dikelola pelanggan (CMEK), lalu pilih kunci yang dikelola pelanggan. Jika tidak, kredensial Anda akan dilindungi oleh kunci default milik Google dan dikelola Google.
    • Untuk Nama database, masukkan nama database.
    • Untuk Nama pengguna database, masukkan nama pengguna untuk database.
    • Untuk Sandi database, masukkan sandi untuk database.
      • Opsional: Untuk melihat sandi, klik Tampilkan sandi.
    • Untuk Instance AlloyDB, masukkan URI koneksi instance utama atau baca AlloyDB dengan awalan //alloydb.googleapis.com.

      • Contoh URI: //alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
  5. Klik Buat koneksi.

  6. Klik Go to connection.

  7. Di panel Connection Info, salin ID akun layanan untuk digunakan di langkah berikutnya guna memberikan izin IAM yang benar.

bq

Masukkan perintah bq mk dengan flag berikut:

  bq mk \
  --connection \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  --connector_configuration '{
    "connector_id": "google-alloydb",
    "asset": {
      "database": "DATABASE",
      "google_cloud_resource": "RESOURCE_PATH"
    },
    "authentication": {
      "username_password": {
        "username": "USERNAME",
        "password": {
          "plaintext": "PASSWORD"
        }
      }
    }
  }' \
  CONNECTION_ID

Ganti kode berikut:

  • LOCATION: Tentukan region set data BigQuery yang akan digabungkan dengan data dari AlloyDB. Kueri yang menggunakan koneksi ini harus dijalankan dari region ini.
  • PROJECT_ID: Masukkan project ID Google Cloud Anda.
  • DATABASE: Masukkan nama database.
  • RESOURCE_PATH: Masukkan URI koneksi instance utama atau baca AlloyDB dengan awalan //alloydb.googleapis.com.
    • Contoh URI: //alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
  • USERNAME: Masukkan nama pengguna database.
  • PASSWORD: Masukkan sandi pengguna database.
  • CONNECTION_ID: Masukkan ID koneksi untuk mengidentifikasi koneksi ini.

API

Dalam BigQuery Connection API, Anda dapat memanggil CreateConnection dalam ConnectionService untuk membuat instance koneksi. Lihat halaman library klien untuk detail selengkapnya.

Memberikan akses ke akun layanan

Akun layanan akan otomatis dibuat saat Anda membuat koneksi pertama dalam project. Nama akun layanan adalah BigQuery Connection Service Agent. ID akun layanan memiliki format berikut:

service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com.

Untuk terhubung ke AlloyDB, Anda harus memberikan akses koneksi baru ke AlloyDB sehingga BigQuery dapat mengakses data atas nama pengguna. Akun layanan harus memiliki izin berikut:

  • alloydb.instances.connect

Anda dapat memberikan peran IAM Klien AlloyDB ke akun layanan yang terkait dengan koneksi, yang telah menetapkan izin ini. Anda dapat menghilangkan langkah ini jika akun layanan sudah memiliki izin yang diperlukan.

Konsol

  1. Buka halaman IAM & Admin.

    Buka IAM & Admin

  2. Klik Berikan Akses.

    Dialog Tambahkan akun utama akan terbuka.

  3. Di kolom Tambahkan akun utama, masukkan nama akun layanan Agen Layanan Koneksi BigQuery atau ID akun layanan yang diambil dari informasi koneksi.

  4. Di kolom Select a role, pilih AlloyDB, lalu pilih AlloyDB Client.

  5. Klik Simpan.

gcloud

Gunakan perintah gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client

Berikan nilai berikut:

  • PROJECT_ID: ID project Google Cloud Anda.
  • SERVICE_ACCOUNT_ID: Ganti nomor project di service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com dan gunakan.

Berbagi koneksi dengan pengguna

Anda dapat memberikan peran berikut untuk mengizinkan pengguna membuat kueri data dan mengelola koneksi:

  • roles/bigquery.connectionUser: memungkinkan pengguna menggunakan koneksi untuk terhubung dengan sumber data eksternal dan menjalankan kueri pada sumber data tersebut.

  • roles/bigquery.connectionAdmin: memungkinkan pengguna mengelola koneksi.

Untuk informasi selengkapnya tentang peran dan izin IAM di BigQuery, baca Peran dan izin bawaan.

Pilih salah satu opsi berikut:

Konsol

  1. Buka halaman BigQuery.

    Buka BigQuery

    Koneksi dicantumkan dalam project Anda, dalam grup yang disebut Koneksi eksternal.

  2. Di panel Penjelajah, klik nama project Anda > Koneksi eksternal > koneksi.

  3. Di panel Detail, klik Bagikan untuk membagikan koneksi. Kemudian, lakukan hal berikut:

    1. Dalam dialog Izin koneksi, bagikan koneksi dengan akun utama lain dengan menambahkan atau mengedit akun utama.

    2. Klik Simpan.

bq

Gunakan perintah set-iam-policy berikut:

  bq set-iam-policy RESOURCE FILE_NAME

Ganti kode berikut:

  • RESOURCE: Masukkan nama resource dalam format project_id.region.connection_id atau region.connection_id.
  • FILE_NAME: Masukkan nama file yang berisi kebijakan IAM dalam format JSON.

Untuk informasi selengkapnya tentang perintah set-iam-policy, lihat Mengontrol akses ke resource dengan IAM.

API

Gunakan metode projects.locations.connections.setIAM di bagian referensi REST API Koneksi BigQuery dan berikan instance resource policy.

Langkah selanjutnya