Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sematkan komponen visual Amazon Quick Sight ke dalam aplikasi web dengan menggunakan otomatisasi Amazon Cognito dan IAc
Ishita Gupta dan Srishti Wadhwa, Amazon Web Services
Ringkasan
Pola ini memberikan pendekatan khusus untuk menyematkan komponen visual Amazon Quick Sight ke dalam aplikasi React dengan menggunakan penyematan pengguna terdaftar dengan otentikasi Amazon Cognito yang efisien. Sumber daya ini kemudian digunakan melalui template infrastruktur sebagai kode (IAc). Tidak seperti penyematan dasbor tradisional, solusi ini mengisolasi bagan dan grafik tertentu untuk integrasi langsung ke dalam aplikasi React, yang secara dramatis meningkatkan kinerja dan pengalaman pengguna.
Arsitektur menetapkan alur otentikasi yang efisien antara manajemen pengguna Amazon Cognito dan izin Quick Sight: Pengguna mengautentikasi melalui Amazon Cognito dan mengakses visualisasi resmi mereka berdasarkan aturan berbagi dasbor di Quick Sight. Pendekatan yang disederhanakan ini menghilangkan kebutuhan akan akses konsol Quick Sight langsung sambil mempertahankan kontrol keamanan yang kuat.
Lingkungan lengkap digunakan melalui satu AWS CloudFormation templat yang menyediakan semua komponen infrastruktur yang diperlukan, termasuk:
Backend tanpa server yang menggunakan AWS Lambda dan Amazon API Gateway
Hosting frontend aman melalui Amazon CloudFront, Amazon Simple Storage Service (Amazon S3), dan AWS WAF
Manajemen identitas dengan menggunakan Amazon Cognito
Semua komponen dikonfigurasi dengan mengikuti praktik terbaik keamanan dengan kebijakan, perlindungan, dan enkripsi dengan hak istimewa paling rendah AWS Identity and Access Management (IAM). AWS WAF end-to-end
Solusi ini sangat ideal untuk tim pengembangan dan organisasi yang ingin mengintegrasikan analitik interaktif yang aman ke dalam aplikasi mereka sambil mempertahankan kontrol halus atas akses pengguna. Solusi ini menggunakan layanan AWS terkelola dan otomatisasi untuk menyederhanakan proses penyematan, meningkatkan keamanan, dan memastikan skalabilitas untuk memenuhi kebutuhan bisnis yang terus berkembang.
Target audiens dan kasus penggunaan:
Pengembang frontend yang ingin menyematkan analitik ke dalam aplikasi React
Tim produk perangkat lunak sebagai layanan (SaaS) yang ingin menawarkan visualisasi data per pengguna atau berbasis peran
Arsitek solusi yang tertarik untuk mengintegrasikan AWS analitik ke portal khusus
Pengembang Business Intelligence (BI) yang ingin mengekspos visual ke pengguna yang diautentikasi tanpa memerlukan akses dasbor penuh
Tim perusahaan yang ingin menyematkan bagan Quick Sight interaktif dalam alat internal
Prasyarat dan batasan
Prasyarat
Agar berhasil menerapkan pola ini, pastikan bahwa berikut ini sudah ada:
Aktif Akun AWS — An Akun AWS dengan izin untuk menerapkan CloudFormation tumpukan dan membuat sumber daya Lambda, API Gateway, Amazon Cognito, CloudFront, dan Amazon S3.
Akun Amazon Quick Sight — Akun Quick Sight aktif dengan setidaknya satu dasbor yang berisi visual. Untuk petunjuk penyiapan, lihat Tutorial: Membuat dasbor Amazon Quick Sight menggunakan data sampel dalam dokumentasi Amazon Quick Suite.
Lingkungan pengembangan yang terdiri dari:
Node.js (versi 16 atau yang lebih baru)
npm atau benang terpasang
Vite sebagai alat build React
Bereaksi (versi 19.1.1)
Berbagi dasbor - Dasbor harus dibagikan di Quick Sight dan pelaksana harus masuk untuk mengakses visual atau dasbor yang disematkan.
Batasan
Pola ini menggunakan metode embedding pengguna terdaftar, yang mengharuskan pelaksana untuk memiliki akun Quick Sight yang aktif.
Akses dibatasi pada dasbor dan visual yang secara eksplisit dibagikan dengan pengguna Quick Sight yang diautentikasi yang menerapkan pola ini. Jika pelaksana tidak memiliki hak akses yang benar, pembuatan URL yang disematkan akan gagal dan visual tidak akan dimuat.
CloudFormation Tumpukan harus diterapkan di Wilayah AWS tempat Quick Sight, API Gateway, dan Amazon Cognito didukung. Untuk ketersediaan Wilayah, lihat Layanan AWS berdasarkan Wilayah
.
Versi produk
Arsitektur
Arsitektur target
Diagram berikut menunjukkan arsitektur dan alur kerja untuk pola ini.

Dalam alur kerja ini:
Pengguna mengakses aplikasi. Pengguna membuka aplikasi web React dengan menggunakan browser. Permintaan diarahkan ke CloudFront distribusi, yang bertindak sebagai jaringan pengiriman konten untuk aplikasi.
AWS WAF memfilter permintaan berbahaya. Sebelum permintaan mencapai CloudFront, itu lewat AWS WAF. AWS WAF memeriksa lalu lintas dan memblokir permintaan berbahaya atau mencurigakan berdasarkan aturan keamanan.
Amazon S3 menyajikan file statis. Jika permintaan bersih, CloudFront ambil aset frontend statis (HTML, JS, CSS) dari bucket S3 pribadi dengan menggunakan kontrol akses asal (OAC) dan mengirimkannya ke browser.
Pengguna masuk. Setelah aplikasi dimuat, pengguna masuk melalui Amazon Cognito, yang mengautentikasi pengguna dan mengembalikan token web JSON (JWT) yang aman untuk akses API resmi.
Aplikasi membuat permintaan API. Setelah login, aplikasi React membuat panggilan aman ke
/get-embed-urltitik akhir pada API Gateway, dan meneruskan token JWT di header permintaan untuk otentikasi.Token divalidasi. API Gateway memvalidasi token dengan menggunakan otorisasi Amazon Cognito. Jika token valid, permintaan dilanjutkan; jika tidak, ditolak dengan respons 401 (tidak sah).
Permintaan diarahkan ke Lambda untuk diproses. Permintaan yang divalidasi kemudian diteruskan ke fungsi Lambda backend. Fungsi ini bertanggung jawab untuk menghasilkan URL embed untuk visual Quick Sight yang diminta.
Lambda menghasilkan URL embed dari Quick Sight. IAM menggunakan peran IAM dengan izin yang sesuai untuk memanggil Quick Sight
GenerateEmbedUrlForRegisteredUserAPI untuk menghasilkan URL visual yang aman dan tercakup pengguna.Lambda mengembalikan URL embed ke API Gateway. Lambda mengirimkan URL embed yang dihasilkan kembali ke API Gateway sebagai bagian dari respons JSON. Respons ini kemudian disiapkan untuk pengiriman ke frontend.
URL embed dikirim ke browser. URL embed dikembalikan ke browser sebagai respons API.
Visual ditampilkan kepada pengguna. Aplikasi React menerima respons dan menggunakan Quick Sight Embedding SDK untuk merender visual tertentu kepada pengguna.
Otomatisasi dan skala
Penerapan backend dan frontend sepenuhnya otomatis dengan menggunakan CloudFormation, yang menyediakan semua sumber daya yang diperlukan, AWS termasuk Amazon Cognito, Lambda, API Gateway, Amazon S3,,, peran IAM CloudFront AWS WAF, dan Amazon dalam satu penerapan. CloudWatch
Otomatisasi ini memastikan infrastruktur yang konsisten dan berulang di semua lingkungan. Semua komponen menskalakan secara otomatis: Lambda menyesuaikan dengan pemanggilan fungsi, CloudFront menyajikan konten yang di-cache secara global, dan skala API Gateway dengan permintaan yang masuk.
Alat
Layanan AWS
Amazon Quick Sight
adalah layanan intelijen bisnis cloud-native yang membantu Anda membuat, mengelola, dan menyematkan dasbor dan visual interaktif. Amazon API Gateway
mengelola APIs yang bertindak sebagai jembatan antara aplikasi React dan layanan backend. AWS Lambda
adalah layanan komputasi tanpa server yang digunakan pola ini untuk menghasilkan penyematan Quick Sight yang aman URLs secara dinamis, dan menskalakan secara otomatis berdasarkan permintaan. Amazon Cognito
menyediakan otentikasi dan otorisasi bagi pengguna, dan mengeluarkan token aman untuk akses API. Amazon S3
menghosting aset frontend statis untuk pola ini, dan menyajikannya dengan aman. CloudFront Amazon CloudFront
menghadirkan konten frontend secara global dengan latensi rendah dan terintegrasi dengan AWS WAF untuk pemfilteran lalu lintas. AWS WAF
melindungi aplikasi web dari lalu lintas berbahaya dengan menerapkan aturan keamanan dan pembatasan tarif. AWS CloudFormationmengotomatiskan penyediaan dan konfigurasi semua sumber daya aplikasi dalam satu penerapan.
Amazon CloudWatch
mengumpulkan log dan metrik dari Lambda, API Gateway, dan AWS WAF untuk pemantauan dan pemecahan masalah.
Alat pengembangan
React JS
adalah kerangka kerja frontend yang digunakan pola ini untuk membangun aplikasi web dan mengintegrasikan visual Quick Sight yang disematkan. Vite
adalah alat build yang digunakan untuk pengembangan cepat dan pembuatan produksi aplikasi React yang dioptimalkan. Quick Sight Embedding SDK
memfasilitasi penyematan visual Quick Sight ke dalam aplikasi React dan memungkinkan interaksi yang mulus antara aplikasi dan visual.
Repositori kode
Kode untuk pola ini tersedia di GitHub Amazon Quick Sight Visual Embedding di repositori React
Praktik terbaik
Pola ini secara otomatis menerapkan praktik terbaik keamanan berikut:
Menggunakan kumpulan pengguna Amazon Cognito untuk otentikasi berbasis JWT, dengan otentikasi multi-faktor opsional (MFA).
Mengamankan APIs dengan otorisasi Amazon Cognito dan memberlakukan kebijakan IAM dengan hak istimewa terkecil di semua layanan.
Menerapkan penyematan pengguna terdaftar Quick Sight dan penyediaan otomatis pengguna dengan peran pembaca.
Menerapkan enkripsi dalam perjalanan yang mendukung TLS 1.2 dan versi yang lebih baru melalui CloudFront dan HTTPS.
Mengenkripsi data saat istirahat dengan menggunakan AES-256 untuk Amazon S3 dengan versi dan OAC.
Mengonfigurasi paket penggunaan API Gateway dengan pembatasan dan kuota.
Mengamankan Lambda dengan konkurensi cadangan dan perlindungan variabel lingkungan.
Mengaktifkan pencatatan untuk Amazon S3,, CloudFront Lambda, dan API Gateway; memantau layanan dengan menggunakan. CloudWatch
Mengenkripsi log, menerapkan kontrol akses, dan memberlakukan kebijakan penolakan untuk unggahan non-HTTPS atau tidak terenkripsi.
Selain itu, kami merekomendasikan yang berikut:
Gunakan CloudFormation untuk mengotomatiskan penerapan dan mempertahankan konfigurasi yang konsisten di seluruh lingkungan.
Pastikan setiap pengguna memiliki izin Quick Sight yang benar untuk mengakses visual yang disematkan.
Lindungi titik akhir API Gateway dengan otorisasi Amazon Cognito dan terapkan prinsip hak istimewa paling sedikit untuk semua peran IAM.
Simpan informasi sensitif seperti Amazon Resource Names (ARNs) dan IDs dalam variabel lingkungan alih-alih melakukan hardcoding.
Optimalkan fungsi Lambda dengan mengurangi dependensi dan meningkatkan kinerja cold-start. Untuk informasi lebih lanjut, lihat posting AWS blog Mengoptimalkan kinerja start dingin AWS Lambda menggunakan strategi priming lanjutan
dengan. SnapStart Tambahkan CloudFront domain Anda ke daftar izin Quick Sight untuk mengaktifkan penyematan visual yang aman.
Pantau kinerja dan keamanan dengan menggunakan CloudWatch dan AWS WAF untuk pencatatan, peringatan, dan perlindungan lalu lintas.
Praktik terbaik lainnya yang direkomendasikan
Gunakan domain khusus dengan sertifikat SSL AWS Certificate Manager untuk memberikan pengalaman pengguna yang aman dan bermerek.
Enkripsi data CloudWatch dan log Amazon S3 dengan menggunakan kunci AWS Key Management Service terkelola pelanggan AWS KMS() untuk kontrol yang lebih besar atas enkripsi.
Perluas AWS WAF aturan dengan pemblokiran geografis, injeksi SQL (SQLi), perlindungan skrip lintas situs (XSS), dan filter khusus untuk pencegahan ancaman yang ditingkatkan.
Aktifkan CloudWatch alarm, AWS Config, dan AWS CloudTrail untuk pemantauan waktu nyata, audit, dan kepatuhan konfigurasi.
Terapkan kebijakan IAM terperinci, terapkan rotasi kunci API, dan izinkan akses lintas akun hanya jika benar-benar diperlukan.
Lakukan penilaian keamanan rutin untuk memastikan keselarasan dengan kerangka kepatuhan seperti Kontrol Sistem dan Organisasi 2 (SOC 2), Peraturan Perlindungan Data Umum (GDPR), dan Undang-Undang Portabilitas dan Akuntabilitas Asuransi Kesehatan (HIPAA).
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning repositori. | Kloning GitHub repositori untuk solusi ini ke sistem lokal Anda dan arahkan ke direktori proyek:
Repositori ini berisi CloudFormation template dan kode sumber React yang diperlukan untuk menyebarkan solusi. | Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menyebarkan template. |
Untuk informasi selengkapnya, lihat Membuat dan mengelola tumpukan dalam CloudFormation dokumentasi. | Administrator AWS |
Pantau pembuatan tumpukan. | Pantau tumpukan di tab Peristiwa hingga statusnya CREATE_COMPLETE. | Administrator AWS |
Ambil output tumpukan. |
| Administrator AWS |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Ambil pengidentifikasi visual Quick Sight. |
| Administrator Penglihatan Cepat |
Konfigurasikan lingkungan React lokal Anda. | Untuk menyiapkan lingkungan React lokal Anda dan menautkannya ke AWS sumber daya, buat
Berikut adalah contoh
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat atau Kelola Pengguna di Cognito | Untuk mengaktifkan akses pengguna yang diautentikasi ke visual Quick Sight yang disematkan, Anda terlebih dahulu membuat pengguna di Amazon Cognito:
| Administrator AWS |
Menyediakan akses dasbor Quick Sight | Untuk menyediakan akses ke visual Quick Sight, berikan akses izin Viewer ke pengguna yang diautentikasi:
Setiap pengguna akan menerima email dengan tautan ke dasbor. Anda dapat mengubah izin kapan saja melalui menu Bagikan. Untuk informasi selengkapnya, lihat Memberikan akses kepada pengguna dan grup Amazon Quick Sight individual ke dasbor di Amazon Quick Sight dalam dokumentasi Amazon Quick Suite. | Administrator Penglihatan Cepat |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Instal dependensi dan bangun proyek. | Di direktori aplikasi React, jalankan perintah berikut untuk menghasilkan file produksi yang dioptimalkan:
| Pengembang aplikasi |
Unggah file build ke Amazon S3. | Unggah semua file dari | Pengembang aplikasi |
Buat CloudFront pembatalan. | Di CloudFront konsol | Administrator AWS |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Tambahkan CloudFront domain ke daftar yang diizinkan Quick Sight. | Untuk mengaktifkan CloudFront domain Anda menyematkan visual Quick Sight dengan aman:
| Administrator Penglihatan Cepat |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buka aplikasi React. | Gunakan CloudFront domain (dari CloudFormation output) untuk membuka aplikasi web React yang digunakan di browser. | Pemilik aplikasi |
Verifikasi otentikasi. | Masuk ke aplikasi menggunakan kredensi Amazon Cognito untuk memverifikasi alur otentikasi dan validasi JWT melalui API Gateway. | Pemilik aplikasi |
Verifikasi visual yang disematkan. | Konfirmasikan bahwa visual Quick Sight dimuat dengan benar di dalam aplikasi berdasarkan izin akses khusus pengguna. | Pemilik aplikasi |
Validasi konektivitas API dan Lambda. | Konfirmasikan bahwa aplikasi dapat berhasil memanggil | Pemilik aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Monitor dengan menggunakan CloudWatch. | Anda dapat menggunakan alat AWS observabilitas untuk memantau aplikasi dan untuk mempertahankan kinerja yang aman dan terukur dalam produksi. Tinjau log Lambda, metrik API Gateway, dan peristiwa autentikasi Amazon Cognito CloudWatch untuk memastikan kesehatan aplikasi dan mendeteksi anomali. | Administrator AWS |
Lacak AWS WAF dan CloudFront log. | Periksa AWS WAF log untuk permintaan yang diblokir atau mencurigakan dan log CloudFront akses untuk metrik kinerja dan caching. | Administrator AWS |
Pemecahan masalah
| Isu | Solusi |
|---|---|
Kesalahan “Domain tidak diizinkan” |
|
Kesalahan autentikasi | Kemungkinan penyebab:
Solusi:
|
Kesalahan API Gateway | Kemungkinan penyebab:
Solusi:
|
Visual Quick Sight tidak dimuat | Kemungkinan penyebab:
Solusi:
|
Kesalahan “Pengguna tidak memiliki akses” | Kemungkinan penyebab:
Solusi:
|
Sumber daya terkait
AWS dokumentasi
Tutorial dan video