Praktik terbaik keamanan untuk analisis tersemat

Dengan analisis tersemat Looker, Anda dapat mendorong pengguna dan pelanggan untuk menjelajahi data yang disematkan ke dalam iframe di halaman web, portal, atau aplikasi berformat HTML apa pun. iframe mengeksekusi seluruh aplikasi Looker, meminta hanya data yang diperlukan untuk menampilkan kueri Anda. Secara 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 masalah ini, sebaiknya admin Looker mengikuti praktik terbaik berikut:

  • Jika Anda menyematkan konten Looker kepada pelanggan, siapkan konten pelanggan di instance Looker terpisah dari instance yang Anda gunakan untuk analisis internal.
  • Hanya hubungkan data ke instance sematan Looker yang harus dapat diakses oleh pengguna sematan, yang mungkin adalah publik.
  • Lindungi token acak dalam URL penyematan publik seolah-olah token tersebut 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 ke instance Looker tersemat dan tetap nonaktifkan penyematan yang ditandatangani jika Anda tidak menggunakannya.
  • Gunakan autentikasi kuat untuk instance tersemat Looker Anda (penyematan ditandatangani, SAML, Google OAuth, 2FA).
  • Jika Anda menggunakan penyematan tanpa cookie, lindungi token referensi sesi sehingga hanya dapat diakses di server host aplikasi penyematan. Token referensi sesi tidak boleh ditampilkan di browser.
  • Jika Anda menggunakan penyematan tanpa cookie dan menetapkan domain penyematan yang diizinkan saat mendapatkan sesi tanpa cookie, jangan pernah percayai origin dari browser pengguna penyematan. Selalu pertahankan pemetaan pengguna sematan ke origin tepercaya pengguna sematan di server aplikasi sematan.

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

Penyematan publik

Dengan opsi Akses Publik Look diaktifkan, Anda dapat menyematkan visualisasi atau tabel data ke situs eksternal menggunakan tag iframe HTML. Anda juga dapat membagikan URL Look secara publik, 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 saja yang memiliki URL sematan dapat mengakses data, dan tidak ada pemfilteran atau pembatasan tambahan yang diterapkan. Sebaiknya pertimbangkan implikasi keamanan dari pembuatan dan pembagian URL publik untuk Tampilan tertentu sebelum mengaktifkan URL Publik.

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

Embedding pribadi

Jika tidak ingin mengizinkan akses publik ke Tampilan, Anda juga dapat menyisipkan Tampilan — atau Jelajahi 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 untuk mereka. Jika Anda mengubah izinnya di Looker, URL sematan tidak akan berubah, tetapi apa yang diizinkan pengguna untuk dilihat saat mereka mengakses URL tersebut 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 Looker.

URL sematan pribadi tidak pernah berakhir masa berlakunya dan tidak dapat dicabut. Namun, karena link hanya berfungsi untuk seseorang yang memiliki akses ke instance Looker dan data tersebut, pengiriman link tidak akan menimbulkan masalah keamanan.

Embedding yang ditandatangani

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

Penyematan yang ditandatangani akan meningkatkan keamanan penyematan pribadi. Penyematan yang ditandatangani tidak mengharuskan pengguna melakukan autentikasi menggunakan akun pengguna Looker. Sebagai gantinya, mereka dapat diautentikasi melalui aplikasi Anda sendiri menggunakan URL dalam iframe. Autentikasi membuat sesi browser baru dan mengeluarkan cookie ke browser.

Izin, ID, dan atribut pengguna 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 ke instance Looker, seperti 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 atau skrip tersemat menjalankan fungsi tanpa sepengetahuan atau izin pengguna, seperti tombol yang tampaknya melakukan hal lain. Clickjacking biasanya memerlukan URL statis. URL yang dibuat untuk penyematan yang ditandatangani bersifat rahasia, dan hanya pengguna yang melihat penyematan yang boleh memilikinya. Menggunakan penyematan yang ditandatangani tidak meningkatkan risiko clickjacking ke situs eksternal.

Parameter penyematan yang ditandatangani

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

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

Beberapa parameter, seperti user_attributes, dapat disembunyikan di UI, tetapi tetap akan dienkode di URL sematan. Hal ini mungkin tidak diinginkan jika, misalnya, sandi adalah nilai dalam user_attribute pengguna. Salah satu cara untuk mengatasinya adalah dengan membuat grup sementara, menetapkan sandi sebagai atribut tingkat grup, lalu meneruskan ID grup di URL sematan. Anda dapat menghapus grup setelah sesi penyematan 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 berapa lama sesi penyematan dapat berlangsung sejak URL digunakan untuk login.

Mengelola akses sematan yang ditandatangani

Saat membuat URL untuk konten tersemat:

  • Gunakan tingkat izin terendah yang diperlukan.
  • Hanya tetapkan akses ke model tertentu yang dapat diakses pengguna.
  • Gunakan group_ids untuk menetapkan pengguna ke grup dan mengizinkan pengguna sematan mengontrol akses ke folder Looker mereka.

Looker API

Dengan 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 dengan pengguna yang membuatnya. Kunci API terdiri dari client ID dan kunci rahasia klien.

Mengelola akses penyematan menggunakan API

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

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

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

Peristiwa JavaScript tersemat

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

Saat menambahkan domain ke daftar yang diizinkan, gunakan karakter pengganti untuk mengizinkan hanya subdomain tertentu yang dapat 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 transpor HTTPS.

Tidak ada data pelanggan yang pernah 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 Anda perlu mengakses URL sematan melalui internet, tidak ada keuntungan khusus untuk menghosting Looker sendiri.

Deployment yang dihosting pelanggan mungkin paling sesuai jika:

  • Pengguna Anda tidak diwajibkan untuk mengakses Looker menggunakan internet.
  • Anda menggunakan Looker sebagai frontend dan mengakses konten tersemat menggunakan API.