Praktik terbaik: Amankan folder Anda! Panduan akses konten

Praktik terbaik ini mencerminkan rekomendasi yang disampaikan oleh tim lintas fungsi Looker yang berpengalaman. Insight ini berasal dari pengalaman bertahun-tahun dalam bekerja dengan pelanggan Looker, mulai dari penerapan hingga kesuksesan jangka panjang. Praktik ini ditulis agar efektif untuk sebagian besar pengguna dan situasi, tetapi seperti biasa, gunakan penilaian terbaik saat menerapkannya.

Halaman ini memberikan contoh terpandu tentang cara menyiapkan kontrol akses konten kepada administrator instance Looker. Kita akan memandu proses implementasi, dimulai dengan project baru dan melanjutkan ke model, set model, set izin, grup, peran, dan atribut pengguna.

Pertama, analogi untuk memahami fitur utama Looker dalam konteks ini:

Project ibarat rumah.

model adalah ruangan di rumah yang diisi dengan konten tertentu.

Set model adalah sekumpulan kamar atau satu ruangan (kamar tidur, dapur).

Kumpulan izin adalah checklist aktivitas, yang menentukan tindakan yang dapat dilakukan orang di dalam ruangan (makan, bermain, tidur).

Grup adalah cara untuk menggabungkan orang-orang dengan karakteristik yang sama (dewasa, anak-anak, tamu).

Peran adalah cara memberikan checklist aktivitas kepada sekelompok orang di kumpulan ruang yang berbeda.

Atribut pengguna adalah kunci yang membuka item khusus di rumah (teko, peralatan listrik).

Skenario

Berikut adalah contoh startup yang memiliki tim keuangan, penjualan, dan produk. CEO adalah satu-satunya admin kami, dan dia ingin setiap tim hanya melihat konten yang relevan bagi mereka, kecuali bahwa VP setiap tim dapat mengakses semua konten tim. Dia menginginkan akses fitur yang berbeda untuk karyawan, manajer, dan VP standar.

  • Karyawan standar harus dapat melihat dan menjelajahi data dalam model mereka sendiri.
  • Pengelola harus memiliki akses standar dan juga dapat mendownload dan menjadwalkan konten.
  • VP harus memiliki hampir semua hak istimewa, kecuali beberapa hak istimewa yang hanya dimiliki oleh CEO.

CEO ingin staf penjualan dapat melihat data untuk aktivitasnya sendiri, tetapi tidak dapat melihat data penjualan masing-masing staf penjualan lainnya. Namun, manajer penjualan harus dapat melihat setiap angka staf penjualan. Dan terakhir, ada beberapa bidang keuangan dengan informasi sensitif yang ingin ia samarkan untuk karyawan standar yang menggunakan model tersebut.

Bagan organisasi adalah sebagai berikut:

Diagram organisasi untuk startup dalam contoh ini.

Diagram di atas memperlihatkan struktur organisasi berikut untuk contoh startup kita:

  • CEO
    • Wakil Direktur Keuangan
      • Manajer Keuangan
        • Akuntan
    • VP Penjualan
      • Manajer Penjualan Barat
        • Staf Penjual West
      • Manajer Penjualan Timur
        • Tenaga Penjual Timur
    • VP Produk
      • Product Manager
        • Insinyur

Menerapkan kontrol akses yang diinginkan akan melibatkan langkah-langkah berikut:

  1. Membuat project: Project adalah hubungan struktural antara koneksi database dan model data.
  2. Tambahkan model: Menentukan data yang akan diperlihatkan kepada pengguna.
  3. Buat kumpulan model: Mengelompokkan model yang relevan bersama-sama.
  4. Membuat set izin: Tentukan secara eksplisit tindakan yang dapat dilakukan pengguna dalam kumpulan model.
  5. Buat grup: Kelompokkan pengguna yang serupa menjadi satu.
  6. Buat peran: Buat koneksi antara set model, set izin, dan grup.
  7. Mengedit akses konten: Mengelola dasbor dan Tampilan mana yang dapat dilihat pengguna melalui folder.
  8. Tambahkan filter data: Memfilter lebih lanjut data yang dapat diakses pengguna tertentu dalam model.

1. Membuat project

Hal pertama yang kita perlukan adalah project, yang merupakan container untuk satu atau beberapa model. Jika sudah menyiapkan project, Anda dapat melewati langkah ini. Jika tidak, Anda dapat membuka halaman Project LookML dengan memilih Project di bagian Develop di Looker, lalu memilih New LookML Project untuk membuat project baru. Untuk petunjuk lebih mendetail tentang cara membuat project baru, lihat halaman dokumentasi Membuat project LookML baru.

Di halaman New Project, kita akan membuat project dengan setelan berikut:

  • Di bagian Name, kita memberi nama project.
  • Di bagian Titik Awal, kami memilih Generate Model from Database Schema.
  • Di menu drop-down Connection, kita memilih nama koneksi database.
  • Di bagian Build Views From, untuk contoh ini, kita memilih opsi All Tables sehingga generator LookML membuat file tampilan untuk setiap tabel dalam database Anda.

Setelah setelan yang diinginkan untuk project baru dikonfigurasi, pilih Create Project.

Setelah membuat project, Anda akan diarahkan ke model LookML project yang dihasilkan secara otomatis. Pada tahap ini, Anda harus menggunakan tombol Konfigurasi Git untuk menyiapkan kontrol versi project. Petunjuk mendetail tentang menyiapkan kontrol versi ada di halaman dokumentasi Menyiapkan dan menguji koneksi Git.

2. Menambahkan model

model data adalah seperti portal yang dapat disesuaikan ke dalam database. Setiap model dapat mengekspos data yang berbeda kepada pengguna. Dalam contoh ini, staf penjualan membutuhkan data yang berbeda dengan yang dimiliki teknisi, jadi kita akan menambahkan model terpisah untuk mengekspos informasi yang sesuai dari database ke setiap jenis pengguna.

Dalam project LookML, kita akan menambahkan file model LookML baru dengan nama setiap model yang kita inginkan (finance, sales, dan product). Pastikan untuk menentukan setidaknya satu Explore di setiap file model; ini akan memungkinkan kita untuk memilih model saat membuat set model (jika tidak, model tidak akan muncul dalam pilihan). Untuk referensi tambahan tentang cara menggunakan parameter explore dalam file model Anda, lihat halaman dokumentasi Memahami model dan melihat file.

Setelah berhasil menambahkan model, kita masih perlu mengonfigurasinya. Untuk mengonfigurasi model, kita akan kembali ke halaman Project di bagian Develop, yang kini seharusnya menampilkan teks merah bertuliskan "Configuration required for use" inline dengan setiap nama model.

Di samping setiap model, pilih Konfigurasikan. Kita akan memastikan nama project sudah benar, beserta koneksi yang akan kita izinkan untuk digunakan model ini, lalu simpan.

Halaman Konfigurasi Model memungkinkan Anda memeriksa nama model, project, dan koneksi yang diizinkan untuk model tersebut.

Setelah semua model dikonfigurasi dengan benar, pesan masalah konfigurasi berwarna merah yang kami temui sebelumnya tidak akan muncul lagi.

Ingat bahwa di Looker, memberi pengguna izin see_lookml atau develop di satu model akan memberi pengguna izin tersebut untuk semua model dalam project tersebut. Oleh karena itu, Anda harus membuat project terpisah jika ingin mempartisi izin untuk melihat atau mengembangkan LookML. Jika tidak, Anda sebaiknya membuat model baru. Izin model cukup untuk memastikan bahwa hanya orang tertentu yang dapat mengkueri data tertentu.

Untuk informasi selengkapnya tentang izin, lihat dokumentasi kami tentang peran.

3. Membuat kumpulan model

Setelah model data untuk setiap departemen dikonfigurasi, kita akan menambahkan model yang sesuai untuk setiap departemen ke dalam set model yang telah kita buat. Untuk membuat set model baru, kita akan membuka halaman Roles di panel Admin dan memilih New Model Set. Untuk petunjuk lebih lanjut tentang cara membuat set model baru, lihat halaman dokumentasi Peran.

Setelah dibuat, kumpulan model baru akan ditampilkan di bagian Set Model pada halaman Peran, seperti pada screenshot contoh berikut:

Model keuangan, produk, dan penjualan sesuai dengan kumpulan model Keuangan, Produk, dan Penjualan pada halaman Kumpulan Model.

4. Membuat set izin

Selanjutnya, kita akan membuat kumpulan izin menggunakan kumpulan model yang baru saja kita buat. Seperti yang disebutkan saat menyiapkan skenario, kita ingin empat tingkat izin sesuai dengan empat tingkat hierarki dalam diagram organisasi, dan tingkat yang lebih tinggi harus menyertakan izin untuk tingkat di bawahnya. Dalam skenario kita, kita akan mengidentifikasi set izin sebagai berikut:

  • CEO telah menetapkan izin Admin.
  • VP menetapkan izin Admin Terbatas.
  • Pengelola telah menetapkan izin Mendownload dan Berbagi.
  • Karyawan standar memiliki izin Lihat dan Jelajahi yang ditetapkan.

Untuk membuat set izin baru, kita akan membuka halaman Peran di panel Admin dan memilih New Permission Set. Untuk setiap tingkat izin, kita akan memilih izin yang sesuai. Secara umum, set izin harus tumpang-tindih seminimal mungkin, dan setiap set hanya menambahkan izin spesifik yang kita inginkan agar dimiliki pengguna yang memiliki set izin ini. Hal ini karena kita akan memberikan beberapa set izin akses kepada beberapa pengguna, dan kita ingin tahu persis apa yang diperbolehkan oleh setiap set izin. Namun, karena struktur pohonnya, beberapa tumpang tindih sering kali diperlukan.

Dalam contoh ini, kita ingin izin Lihat dan Jelajahi disetel agar pengguna dapat melihat konten, mengajukan pertanyaan, dan menyimpan kartu yang berguna. Jadi, kita akan memberi pengguna izin yang terkait dengan melihat konten (seperti see_looks dan see_user_dashboards), izin explore, dan izin save_content. Pengecualian penting di sini adalah see_lookml yang mungkin hanya kita inginkan untuk developer, dan see_sql, yang kita sediakan bagi mereka yang memahami SQL dan dipercaya untuk melihat struktur database. Semua izin ini hanya berada di bawah cabang access_data. Kami tidak memberikan izin see apa pun di bagian bawah hierarki, karena izin tersebut merupakan izin administratif.

Untuk kumpulan izin Mendownload dan Berbagi, kami akan menambahkan izin yang terkait dengan mendownload, menjadwalkan, membagikan, membuat Tampilan publik (yang memungkinkan berbagi Tampilan kepada pengguna non-Looker), dan see_schedules (karena mereka dapat membuat jadwal, logis jika mereka juga dapat melihatnya di panel Admin).

Satu-satunya kolom yang telah dipilih saat mengonfigurasi kumpulan izin Lihat dan Jelajahi serta Download dan Bagikan adalah izin induk yang diperlukan untuk memilih izin turunan yang ditambahkan di bawah cabang access_data. Oleh karena itu, karena pengguna dengan kumpulan izin Download dan Bagikan juga akan memiliki setelan izin Lihat dan Jelajahi, Anda tidak perlu menyertakan izin seperti see_lookml_dashboards, see_user_dashboards, dan explore di kumpulan izin Download dan Bagikan, karena izin ini tidak berisi izin turunan apa pun yang diperlukan untuk kumpulan izin Download dan Bagikan.

Terakhir, untuk kumpulan izin Admin Terbatas, kami akan menambahkan sebagian besar izin administratif di bagian bawah hierarki, dengan mengecualikan hak istimewa manage_models dan sudo yang hanya diinginkan CEO untuk dirinya sendiri. Tampilannya seperti ini:

Setelah selesai, set izin akan menyertakan izin berikut:

  • Admin: Kumpulan izin Admin, yang disediakan untuk CEO perusahaan contoh kami, mencakup semua izin.
  • Admin Terbatas: Kumpulan izin Admin Terbatas mencakup izin create_prefetches, login_special_email, manage_homepage, manage_spaces, see_alerts, see_datagroups, see_logs, see_pdts, see_queries, see_users, dan update_datagroups.
  • Download dan Bagikan: Set izin Download dan Bagikan mencakup izin access_data, create_public_looks, download_with_limit, download_without_limit, save_content, schedule_external_look_emails, schedule_look_emails, see_looks, see_schedules, send_outgoing_webhook, send_to_s3, dan send_to_sftp.
  • Lihat dan Jelajahi: Kumpulan izin Lihat dan Eksplorasi mencakup izin access_data, create_table_calculations, explore, save_content, see_drill_overlay, see_lookml_dashboards, see_looks, dan see_user_dashboards.

Anda dapat melihat izin milik izin yang sudah ada dengan membuka bagian Set Izin di halaman admin Peran.

5. Membuat grup

Langkah berikutnya adalah membuat grup dan mengelompokkan pengguna. Kita akan membuat grup untuk karyawan dan manajer standar di setiap departemen, karena pada akhirnya akan cocok dengan berbagai peran yang kita buat nanti. VP akan berada di kelompok mereka sendiri dan CEO tidak perlu grup. Setelah selesai, halaman Grup akan mencantumkan grup berikut dan ID grupnya yang sesuai, yang dibuat secara otomatis oleh Looker. Contoh:

ID Nama
1 Semua Pengguna
3 Keuangan
4 Penjualan
5 Produk
7 Manajer Penjualan
8 Product Manager
9 Manajer Keuangan
10 VP

Setelah grup dibuat, kita perlu menambahkan pengguna ke dalam grup tersebut. Untuk petunjuk tentang cara menambahkan pengguna ke grup, lihat halaman dokumentasi Grup.

Saat menambahkan pengguna ke grup yang telah kita buat, ingatlah bahwa karena cara kita memiliki izin terstruktur, grup tingkat yang lebih tinggi dapat disertakan dalam grup tingkat yang lebih rendah. Misalnya, kita ingin VP berada di grup Keuangan, tetapi tidak menginginkan Manajer Penjualan berada di grup Produk. Cara yang efisien untuk melakukan pendekatan ini adalah memulai dengan menambahkan pengguna ke grup tingkat yang lebih tinggi (seperti VP), sehingga kita dapat menambahkan mereka sebagai grup ke tingkat yang lebih rendah.

6. Membuat peran

Setelah memiliki set model, set izin, dan grup, kita dapat menggabungkan semuanya menggunakan peran. Setiap peran akan memiliki satu kumpulan izin dan satu kumpulan model, dan dapat mencakup satu atau beberapa grup. Karena peran harus menyertakan kumpulan model, kita akan membuat peran lagi untuk karyawan standar dan manajer bagi setiap departemen.

  • Peran standar: Peran standar akan mencakup kumpulan izin Lihat dan Eksplorasi, bersama dengan kumpulan model yang sesuai. Tetapkan peran standar ke grup standar dan pengelola untuk departemen tersebut, dan ke VP. Misalnya, tetapkan peran Keuangan Standar untuk grup Keuangan dan Pengelola Keuangan, dan kepada VP Keuangan.
  • Peran pengelola:Peran pengelola akan memiliki kumpulan izin Download dan Bagikan, bersama dengan kumpulan model yang sesuai. Peran ini harus ditetapkan ke grup manajer untuk departemen yang sesuai, dan ke VP departemen.
  • Peran pengelola:Peran pengelola akan memiliki kumpulan izin Download dan Bagikan, bersama dengan kumpulan model yang sesuai. Peran ini harus ditetapkan ke grup manajer untuk departemen yang sesuai, dan ke VP departemen.
  • Peran VP: Izin untuk peran VP akan ditetapkan ke Admin Terbatas dan setelan model Semua. Peran ini akan ditetapkan ke grup VP.

7. Edit akses konten

Langkah berikutnya adalah mengatur izin akses folder sehingga setiap grup memiliki akses ke kontennya sendiri (dan hanya kontennya sendiri). Berikut adalah tata letak folder dalam contoh instance kami, yang dapat dilihat dengan membuka halaman Akses Konten di panel Admin:

Folder Bersama berisi folder Finance, Product, dan Sales, yang berisi folder untuk penggunaan departemen mereka.

Akses ke folder mengikuti aturan pewarisan hierarkis. Untuk informasi selengkapnya tentang cara kerjanya, lihat dokumentasi kami tentang tingkat akses serta pengelolaan izin dan kontrol akses.

Dengan mengikuti aturan untuk akses folder, kami ingin memberikan akses Lihat kepada semua pengguna di folder Dibagikan. Kita akan memberi setiap grup akses Lihat ke folder induk pada hierarki di atas folder yang dapat diakses grup. Dengan begitu, saat kita menelusuri hierarki, jika kita tidak ingin grup melihat folder, kita tidak akan menyertakan grup itu saat memberikan akses.

Kita dapat memberikan tingkat akses Kelola Akses, Edit ke grup di folder tempat kita ingin mengontrol siapa yang melihat folder tersebut. Dalam contoh, kita hanya ingin CEO dan VP memiliki izin tersebut; yang lain hanya akan memiliki akses View ke folder yang mereka butuhkan.

8. Menambahkan batasan akses data dengan atribut pengguna

Bagian ini menunjukkan metode untuk mencegah pengguna tertentu mengakses baris atau kolom data tertentu dari model yang dapat mereka akses. Ingat, CEO kami ingin staf penjualan dapat melihat data untuk aktivitas mereka sendiri, tetapi bukan aktivitas orang lain. Namun, manajer penjualan harus dapat melihat setiap angka staf penjualan. Untuk melakukannya, kita akan memanfaatkan atribut pengguna dan parameter sql_always_where.

Membuat atribut pengguna

Pertama, kita akan membuat atribut pengguna baru bernama access_level yang disembunyikan dari pengguna. Dengan begitu, kita dapat menentukan tingkat akses untuk berbagai grup yang kita miliki. Kita akan menetapkan nilai berikut saat membuat atribut pengguna:

  • Name: access_level
  • Label: Tingkat Akses
  • Jenis Data: String
  • Akses Pengguna: Edit
  • Sembunyikan Nilai: Tidak

Dalam contoh ini, kita membiarkan kotak Set a default value tidak dicentang.

Saat membuat kolom, kami akan mengonfigurasi tiga tingkat akses: Dasar, Premium, dan Lengkap. Kami akan menetapkan tingkat tersebut masing-masing ke grup standar, pengelola, dan VP. Hal ini dilakukan di tab Nilai Grup di bagian yang sama. Lihat bagian Menetapkan nilai ke grup pengguna dalam dokumentasi Atribut pengguna untuk detail selengkapnya.

Karena urutan aturan ini penting, kita ingin menempatkan nilai akses tertinggi di bagian atas daftar, untuk mengganti nilai akses yang lebih rendah ke bagian bawah. Perilaku ini dijelaskan lebih lanjut di halaman dokumentasi Atribut pengguna.

Memfilter data baris dengan atribut pengguna

Kita akan membayangkan bahwa sudah ada Explore yang dibuat dengan semua informasi penjualan di dalamnya. Kita akan memeriksa tingkat akses pengguna yang membuat kueri Explore. Jika tingkat aksesnya adalah Dasar (yang telah kita berikan kepada semua staf penjualan standar), kita akan selalu memfilter Explore berdasarkan nama pengguna, sehingga hanya baris milik setiap staf penjualan yang dapat diakses olehnya. Jika tingkat aksesnya adalah Premium atau Full, kueri tidak akan difilter. Secara default, kami memiliki atribut pengguna bernama Nama yang merupakan nama pengguna Looker. LookML untuk Explore akan terlihat seperti ini:

explore: sales_info {
  sql_always_where: {% if {{_user_attributes['access_level']}} == "Basic" %}
    ${sales_info.name} = "{{_user_attributes['name']}}"
    % endif %
  ;;
}

Memfilter data kolom dengan atribut pengguna

Terakhir, ada beberapa kolom PII (informasi identitas pribadi) dalam model keuangan yang juga ingin kami sembunyikan dari beberapa pengguna kami. Untuk melakukannya, kita dapat menggunakan atribut pengguna yang telah dibuat, beserta petunjuk untuk menerapkan izin tingkat database di Looker pada halaman dokumentasi Atribut pengguna, untuk memberikan kemampuan untuk melihat kolom PII hanya kepada pengguna dengan tingkat akses Penuh.

Sudah selesai! Kami telah selesai menyiapkan kontrol akses data dan konten dan semua pengguna dapat menjelajahi Looker. Dengan melakukan hal ini, kami dapat yakin bahwa mereka hanya akan melihat konten yang kami izinkan untuk mereka lihat.