Mengontrol akses ke setiap tabel dengan IAM

Dokumen ini menunjukkan cara memberikan dan mencabut peran Identity and Access Management (IAM) BigQuery untuk tampilan dan tabel Dataform individu.

Formulir data dan BigQuery menggunakan IAM untuk kontrol akses. Untuk mengetahui informasi selengkapnya tentang peran dan izin formulir data di IAM, lihat Mengontrol akses dengan IAM.

Saat menjalankan tabel atau tampilan, Dataform membuat resource di BigQuery. Selama pengembangan di Dataform, Anda dapat memberikan peran BigQuery ke masing-masing tabel dan tampilan untuk mengontrol aksesnya di BigQuery setelah eksekusi.

Untuk mengetahui informasi selengkapnya tentang cara memberikan dan mencabut akses ke resource, lihat Memberikan akses ke resource.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Aktifkan API BigQuery and Dataform.

    Mengaktifkan API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Aktifkan API BigQuery and Dataform.

    Mengaktifkan API

Memberikan peran BigQuery ke tabel atau tampilan

Anda dapat memberikan peran BigQuery ke tabel atau tampilan di Dataform dengan menambahkan blok post_operations dengan pernyataan DCL GRANT ke file definisi .sqlx dari tabel atau tampilan yang dipilih.

Untuk memberikan peran BigQuery ke tabel atau tampilan yang dipilih, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Dataform.

    Buka halaman Dataform

  2. Pilih repositori, lalu pilih ruang kerja.

  3. Di panel Files, luaskan direktori definitions/.

  4. Pilih file definisi .sqlx dari tabel atau tampilan yang ingin Anda berikan aksesnya.

  5. Dalam file tersebut, masukkan cuplikan kode berikut:

    post_operations {
        GRANT "ROLE_LIST"
        ON ${self()}
        TO "USER_LIST"
    }
    

    Ganti kode berikut:

    • ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda berikan
    • USER_LIST: daftar pengguna yang dipisahkan koma yang diberi peran

      Untuk daftar format yang valid, lihat user_list.

  6. Opsional: Klik Format.

  7. Menjalankan tabel atau tampilan.

  8. Jika Anda memberikan akses pada tabel inkremental, hapus pernyataan GRANT dari file definisi tabel setelah eksekusi pertama.

Contoh kode berikut menunjukkan peran BigQuery Viewer yang diberikan di tabel kepada pengguna:

config { type: "table" }

SELECT ...

post_operations {
  GRANT `roles/bigquery.dataViewer` ON ${self()} TO "user:222larabrown@gmail.com"
}

Mencabut peran BigQuery dari tabel atau tampilan

Anda dapat mencabut peran BigQuery dari tabel atau tampilan dengan menambahkan blok post_operations dengan pernyataan DCL REVOKE ke file definisi .sqlx dari tabel atau tampilan yang dipilih.

Untuk mencabut peran BigQuery dari tabel atau tampilan yang dipilih, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Dataform.

    Buka halaman Dataform

  2. Pilih repositori, lalu pilih ruang kerja.

  3. Di panel Files, luaskan direktori definitions/.

  4. Pilih file definisi .sqlx dari tabel atau tampilan yang ingin Anda cabut aksesnya.

  5. Di blok post_operations, masukkan pernyataan REVOKE berikut:

        REVOKE "ROLE_LIST"
        ON ${self()}
        TO "USER_LIST"
    

    Ganti kode berikut:

    • ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda cabut.
    • USER_LIST: daftar pengguna yang dipisahkan koma yang dicabut perannya. Untuk daftar format yang valid, lihat user_list.
  6. Untuk mencabut akses yang diberikan dalam pernyataan GRANT dalam file, ganti pernyataan GRANT dengan pernyataan REVOKE.

    Removing the `GRANT` statement without adding the `REVOKE` statement
    does not revoke access.
    
  7. Opsional: Klik Format.

  8. Menjalankan tabel atau tampilan.

  9. Jika Anda mencabut akses ke tabel inkremental, hapus pernyataan REVOKE dari file definisi tabel setelah eksekusi pertama.

Contoh kode berikut menunjukkan peran BigQuery Viewer yang dicabut dari pengguna pada tabel:

config { type: "table" }

SELECT ...

post_operations {
  REVOKE `roles/bigquery.dataViewer` ON ${self()} FROM "user:222larabrown@gmail.com"
}

Mengelola peran BigQuery secara kolektif untuk tabel dan tampilan

Untuk mengontrol akses BigQuery ke setiap tabel dan tampilan dalam satu lokasi, Anda dapat membuat file type: "operations" khusus dengan pernyataan DCL GRANT dan REVOKE.

Untuk mengelola akses tabel BigQuery dalam satu file type: "operations", ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Dataform.

    Buka halaman Dataform

  2. Pilih repositori, lalu pilih ruang kerja.

  3. Di panel Files, di samping definitions/, klik menu More.

  4. Klik Create file.

  5. Di kolom Add a file path, masukkan nama file, diikuti dengan .sqlx setelah definitions/. Contohnya, definitions/table-access.sqlx

    Nama file hanya boleh berisi angka, huruf, tanda hubung, dan garis bawah.

  6. Klik Create file.

  7. Di panel Files, luaskan direktori definitions/, dan pilih file yang baru dibuat.

  8. Dalam file tersebut, masukkan cuplikan kode berikut:

      config { type: "operations" }
    
      GRANT "ROLE_LIST" ON RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
    
      REVOKE "ROLE_LIST" ON { "<var>" }}RESOURCE_TYPE RESOURCE_NAME TO "USER_LIST"
    

    Ganti kode berikut:

    • ROLE_LIST: peran BigQuery atau daftar peran BigQuery yang dipisahkan koma yang ingin Anda berikan atau cabut.
    • RESOURCE_TYPE: jenis resource: TABLE atau VIEW.
    • RESOURCE_NAME: nama tabel atau tampilan.
    • USER_LIST: daftar pengguna yang dipisahkan koma yang memberi atau mencabut peran tersebut. Untuk daftar format yang valid, lihat user_list.
  9. Tambahkan pernyataan GRANT dan REVOKE sesuai kebutuhan.

    1. Untuk mencabut akses yang diberikan dalam pernyataan GRANT dalam file, ganti pernyataan GRANT dengan pernyataan REVOKE.

      Menghapus pernyataan GRANT tanpa menambahkan pernyataan REVOKE tidak akan mencabut akses.

  10. Opsional: Klik Format.

  11. Jalankan file setelah setiap update.

    1. Jika Anda memberikan atau mencabut akses di tabel inkremental, hapus pernyataan GRANT atau REVOKE dari file setelah eksekusi pertama pernyataan tersebut.

Langkah selanjutnya