Praktik terbaik keamanan untuk analisis tersemat

Dengan analisis tersemat Looker, Anda dapat memberdayakan pengguna dan pelanggan untuk menjelajahi data yang disematkan ke iframe di halaman web, portal, atau aplikasi berformat HTML. iframe mengeksekusi seluruh aplikasi Looker, meminta hanya data yang diperlukan untuk menampilkan kueri Anda. Menurut desain, iframe tidak diizinkan membaca atau menulis data dari situs atau aplikasi eksternal Anda.

Menyematkan data terkadang dapat menimbulkan masalah privasi atau keamanan. Untuk mengurangi kekhawatiran ini, sebaiknya admin Looker mengikuti praktik terbaik berikut:

  • Jika Anda menyematkan konten Looker kepada pelanggan, siapkan konten pelanggan di instance Looker yang terpisah dari instance yang digunakan untuk analisis internal.
  • Hanya hubungkan data ke instance sematan Looker yang seharusnya dapat diakses oleh pengguna sematan, yang mungkin merupakan publik.
  • Lindungi token acak dalam URL sematan publik seolah-olah itu adalah kredensial pengguna, dan nonaktifkan URL publik jika tidak digunakan.
  • Nilai external_user_id yang ditetapkan harus unik untuk setiap kumpulan izin, atribut pengguna, dan model tertentu. Pastikan Anda tidak menggunakan external_user_id yang sama di berbagai sesi penyematan untuk pengguna interaktif yang berbeda, dan pastikan Anda tidak menggunakan external_user_id yang sama untuk satu pengguna yang memiliki izin, nilai atribut pengguna, atau akses model yang berbeda.
  • Aktifkan sistem tertutup.
  • Lindungi rahasia penyematan yang ditandatangani seolah-olah itu adalah kredensial admin untuk instance Looker tersemat Anda dan nonaktifkan penyematan yang ditandatangani jika Anda tidak menggunakannya.
  • Gunakan autentikasi yang kuat untuk instance sematan Looker Anda (embedding bertanda tangan, SAML, Google OAuth, 2FA).
  • Jika Anda menggunakan sematan tanpa cookie, lindungi token referensi sesi agar hanya dapat diakses di server host aplikasi sematan. Token referensi sesi tidak boleh diekspos di browser.
  • Jika Anda menggunakan penyematan tanpa cookie dan menyetel domain sematan yang diizinkan saat mendapatkan sesi tanpa cookie, jangan pernah memercayai origin dari browser pengguna yang disematkan. Selalu pertahankan pemetaan pengguna sematan ke asal tepercaya pengguna sematan dalam server aplikasi sematan.

Looker menawarkan berbagai jenis metode penyematan, bergantung pada tingkat autentikasi yang diperlukan pengguna yang mengakses data Anda: publik, pribadi, dan penyematan bertanda tangan. Dengan salah satu metode ini, Anda dapat berinteraksi dengan iframe menggunakan JavaScript.

Penyematan publik

Dengan mengaktifkan opsi Akses Publik Tampilan, Anda dapat menyematkan visualisasi atau tabel data ke situs eksternal menggunakan tag iframe HTML. Anda juga dapat membagikan secara publik URL Tampilan tersebut, atau mengimpor data ke aplikasi spreadsheet Google atau Excel.

URL dan URL sematan dalam tag iframe berisi token acak dan tidak dapat ditebak, tetapi siapa pun yang memiliki URL sematan dapat mengakses data, dan tidak ada pemfilteran atau batasan tambahan yang diterapkan. Sebaiknya pertimbangkan implikasi keamanan dari membuat dan membagikan URL publik untuk Tampilan tertentu sebelum mengaktifkan URL Publik.

URL publik dan URL sematan publik tidak akan pernah habis masa berlakunya dan tidak dapat dicabut. Saat Anda membagikan URL publik, Anda membagikan kueri, bukan data yang sebenarnya.

Penyematan pribadi

Jika tidak ingin mengizinkan akses publik ke Tampilan Anda, Anda juga dapat menyematkan Look — atau Jelajah atau dasbor — secara pribadi dalam iframe sehingga login Looker diperlukan untuk melihat konten.

Pengguna yang diautentikasi hanya dapat mengakses konten yang ditentukan oleh izin Looker yang ditetapkan kepada mereka. Jika Anda mengubah izin mereka di Looker, URL sematan tidak akan berubah, tetapi informasi yang diizinkan untuk dilihat pengguna saat mereka mengakses URL dapat berubah.

Jika pengguna tidak diautentikasi, Anda dapat menampilkan error atau layar login di iframe. Namun, mengaktifkan layar login di iframe tidak kompatibel dengan perlindungan origin yang sama dari Looker.

Masa berlaku URL sematan pribadi tidak akan pernah berakhir dan tidak dapat dicabut. Namun, karena link hanya berfungsi untuk seseorang yang memiliki akses ke instance Looker Anda dan data tersebut, mengirim link seharusnya tidak menimbulkan masalah keamanan.

Penyematan yang ditandatangani

Harap hubungi spesialis penjualan Google Cloud guna memperbarui lisensi Anda untuk fitur ini.

Penyematan yang ditandatangani selangkah lebih maju dalam penyematan pribadi. Penyematan yang ditandatangani tidak mewajibkan pengguna untuk melakukan autentikasi menggunakan akun pengguna Looker. Sebagai gantinya, ID tersebut dapat diautentikasi melalui aplikasi Anda sendiri menggunakan URL dalam iframe. Autentikasi membuat sesi browser baru dan mengeluarkan cookie ke browser.

Izin pengguna, ID, dan atribut semuanya diteruskan sebagai parameter dalam URL, yang ditandatangani dengan kunci rahasia. Siapa pun yang memiliki akses ke kunci rahasia dapat membuat URL untuk mengakses model apa pun yang terhubung dengan instance Looker, sebagai pengguna mana pun, dengan izin apa pun. Lihat kode contoh kami untuk mempelajari cara membuat URL yang ditandatangani.

Clickjacking adalah masalah keamanan browser yang dapat terjadi saat kode yang disematkan atau skrip mengeksekusi fungsi tanpa sepengetahuan atau persetujuan pengguna, seperti tombol yang tampak melakukan hal lain. Clickjacking biasanya memerlukan URL statis. URL yang dihasilkan untuk sematan yang ditandatangani bersifat rahasia, dan hanya pengguna yang melihat sematan tersebut yang boleh memilikinya. Menggunakan penyematan yang ditandatangani tidak meningkatkan risiko pembajakan klik pada situs eksternal.

Parameter sematan bertanda tangan

Parameter yang disertakan dalam URL iframe dapat dilihat oleh pengguna yang disematkan, tetapi tidak dapat diedit. Peristiwa ini dapat mencakup:

  • user_attributes: Ini digunakan untuk memfilter data lebih lanjut. user_attributes sangat efektif, jadi pertimbangkan cara penerapannya pada instance Looker Anda.
  • session_length: Mempertahankan ini ke waktu minimum yang diperlukan.

Beberapa parameter, seperti user_attributes, dapat disembunyikan di UI, tetapi tetap dienkode di URL sematan. Hal ini mungkin tidak diinginkan jika, misalnya, sandi adalah nilai dalam user_attribute pengguna. Salah satu cara untuk mengatasi hal ini adalah dengan membuat grup sementara, menetapkan sandi sebagai atribut tingkat grup, lalu meneruskan ID grup di URL sematan. Anda dapat menghapus grup setelah sesi sematan untuk menghindari kelebihan grup yang tidak aktif.

Bagian URL yang ditandatangani berisi stempel waktu. Setelah URL digunakan untuk login, waktu tersebut harus +/- 5 menit dari waktu saat ini. Anda dapat menentukan di session_length durasi sesi penyematan dari saat URL digunakan untuk login.

Mengelola akses sematan yang ditandatangani

Saat membuat URL untuk konten sematan Anda:

  • Gunakan tingkat izin terendah yang diperlukan.
  • Hanya tetapkan akses ke model tertentu yang harus dapat diakses oleh pengguna.
  • Gunakan group_ids untuk menetapkan pengguna ke grup dan izinkan pengguna sematan mengontrol akses ke folder Looker-nya.

Looker API

Dengan menggunakan API Looker, Anda dapat mengaktifkan akses ke konten tersemat menggunakan aplikasi proxy atau server reverse proxy. Dalam skenario ini, autentikasi dilakukan menggunakan kunci API, yang terikat dengan pengguna tertentu dan memiliki izin yang sama seperti pengguna yang membuatnya. Kunci API terdiri dari client ID dan kunci rahasia klien.

Mengelola akses penyematan menggunakan API

Saat mengaktifkan akses ke konten sematan menggunakan API Looker, sebaiknya:

  • Membuat akun layanan khusus untuk akses API terprogram dengan serangkaian hak istimewa minimum yang diperlukan.
  • Melindungi client ID dan rahasia klien yang membentuk kunci API (jika mengautentikasi dengan SDK).

Setiap atribut pengguna yang ditetapkan untuk pengguna sematan menggunakan API ini tetapi tidak ditentukan dalam URL sematan yang ditandatangani akan direset ke nilai default-nya saat URL sematan bertanda tangan diakses kembali.

Peristiwa JavaScript tersemat

Setelah menyiapkan iframe sematan — secara publik, pribadi, dengan penyematan yang ditandatangani, atau melalui API — Anda dapat berinteraksi dengan iframe tersebut menggunakan JavaScript. Untuk memvalidasi bahwa informasi yang Anda kerjakan benar-benar berasal dari iframe Looker, Anda dapat memproses peristiwa JavaScript.

Saat menambahkan domain ke daftar yang diizinkan, gunakan karakter pengganti untuk hanya mengizinkan subdomain tertentu mengakses peristiwa JavaScript Anda.

Jika menggunakan fungsi eval JavaScript, pastikan nilai string dalam argumen eval berasal dari sumber tepercaya, seperti server Looker atau CDN dan berada dalam transportasi HTTPS.

Tidak ada data pelanggan yang melewati CDN Looker. Hanya aset statis aplikasi web Looker — kode JavaScript, halaman HTML, gaya CSS — yang ditayangkan dari CDN.

Deployment yang dihosting pelanggan

Menghosting instance Looker Anda sendiri mungkin tampak seperti cara yang aman untuk mengunci akses ke data, terutama konten tersemat. Namun, jika pengguna perlu mengakses URL sematan melalui internet, tidak ada keuntungan khusus untuk menghosting Looker sendiri.

Deployment yang dihosting pelanggan mungkin paling tepat jika:

  • Pengguna Anda tidak diwajibkan untuk mengakses Looker menggunakan internet.
  • Anda menggunakan Looker front-end dan mengakses konten tersemat menggunakan API.