CloudFront dengan WAF dan Lambda@Edge
Lampirkan AWS WAF untuk menyekat serangan web lazim dan jalankan transformasi permintaan atau respons ringan di pinggir dengan Lambda@Edge.
CloudFront dengan WAF dan Lambda@Edge ialah pelajaran AWS Solutions Architect percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran AWS Solutions Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Melindungi CloudFront dengan AWS WAF
AWS WAF (Tembok Api Aplikasi Web) menapis dan memantau permintaan HTTP/HTTPS yang sampai ke pengedaran CloudFront anda. Dengan melampirkan ACL Web WAF pada pengedaran anda, anda boleh menyekat eksploitasi web biasa—suntikan SQL, skrip silang tapak (XSS), bot berbahaya dan serangan OWASP Top 10—sebelum serangan itu sampai kepada sumber asal anda.
WAF beroperasi di lokasi pinggir CloudFront, bermakna permintaan berniat jahat ditolak di lokasi pinggir terdekat dan bukannya sampai kepada ALB atau pelayan aplikasi anda. Ini mengurangkan beban pada bahagian belakang anda dan menghentikan serangan lebih dekat dengan penyerang.
# Associate a WAF Web ACL with a CloudFront distribution
aws wafv2 associate-web-acl \
--web-acl-arn arn:aws:wafv2:us-east-1:123456789:global/webacl/MyACL/12345 \
--resource-arn arn:aws:cloudfront::123456789:distribution/EDFDVBD6EXAMPLEPeraturan dan Kumpulan Peraturan WAF
ACL Web WAF mengandungi peraturan dan kumpulan peraturan yang disusun mengikut turutan. Setiap satunya memadankan atribut permintaan dan mengambil tindakan (Allow, Block, Count, CAPTCHA). Peraturan dinilai mengikut keutamaan; tindakan peraturan pertama yang sepadan akan digunakan.
AWS menyediakan kumpulan peraturan terurus—set peraturan siap bina yang diselenggara oleh AWS dan penjual AWS Marketplace. AWS Managed Rules - Core Rule Set meliputi OWASP Top 10 tanpa sebarang konfigurasi. Kumpulan peraturan terurus dikemas kini oleh AWS apabila ancaman baharu muncul, sekali gus mengurangkan beban operasi anda.
# Create a Web ACL with AWS Managed Core Rule Set
aws wafv2 create-web-acl \
--name MyCloudFrontACL \
--scope CLOUDFRONT \
--default-action Allow={} \
--rules '[{
"Name": "CoreRuleSet",
"Priority": 1,
"Statement": {
"ManagedRuleGroupStatement": {
"VendorName": "AWS",
"Name": "AWSManagedRulesCommonRuleSet"
}
},
"OverrideAction": {"None": {}},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "CoreRuleSet"
}
}]' \
--visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=MyACL \
--region us-east-1Pengehadan Kadar dan Kawalan Bot WAF
Peraturan berasaskan kadar dalam WAF mengira permintaan daripada setiap IP sumber dalam tempoh 5 minit. Jika IP melebihi ambang (contohnya, 2,000 permintaan setiap 5 minit), WAF menyekat permintaan seterusnya daripada IP itu sehingga kadarnya menurun. Peraturan berasaskan kadar melindungi daripada serangan kekerasan, pengisian kelayakan dan serangan pengikisan DDoS mudah.
AWS WAF Bot Control ialah kumpulan peraturan terurus yang mengelaskan trafik kepada beberapa kategori: bot disahkan (Googlebot, Bingbot), pengikis, alat pemantauan dan trafik manusia. Anda boleh mengkonfigurasi tindakan yang berbeza bagi setiap kategori—benarkan bot enjin carian, cabar bot yang tidak dikenali dengan CAPTCHA, dan sekat pengikis berniat jahat.
Skop WAF: CLOUDFRONT berbanding REGIONAL
ACL Web WAF mempunyai skop sama ada CLOUDFRONT (global, untuk digunakan dengan CloudFront) atau REGIONAL (untuk digunakan dengan ALB, API Gateway, AppSync atau Kumpulan Pengguna Cognito dalam Region tertentu). ACL WAF berskop CloudFront mesti dicipta dalam Region us-east-1, tanpa mengira tempat trafik bermula, kerana CloudFront diuruskan dari Region tersebut.
Ini ialah perangkap penting dalam peperiksaan: jika anda mencipta ACL Web WAF di eu-west-1 dan cuba melampirkannya pada CloudFront, lampiran itu gagal. Sentiasa cipta ACL WAF CloudFront di us-east-1.
Pengenalan kepada Lambda@Edge
Lambda@Edge membolehkan anda menjalankan fungsi Lambda Node.js atau Python di lokasi pinggir CloudFront sebagai tindak balas kepada peristiwa CloudFront. Fungsi berjalan dalam tempoh milisaat selepas permintaan pengguna, tanpa menghala trafik kembali ke Region pusat untuk diproses.
Fungsi Lambda@Edge digunakan di Region us-east-1 tetapi direplikasi secara automatik ke semua lokasi pinggir CloudFront di seluruh dunia. Ini bermakna kod anda dilaksanakan sedekat mungkin dengan pengguna, membolehkan pemperibadian, pengesahan dan ujian A/B di lokasi pinggir dengan overhed kependaman yang minimum.
Titik Pencetus Lambda@Edge
Fungsi Lambda@Edge boleh memintas permintaan dan respons CloudFront pada empat titik dalam kitar hayat:
- Viewer Request: selepas CloudFront menerima permintaan daripada penonton, sebelum menyemak cache—gunakan untuk pengesahan, ubah hala dan manipulasi pengepala
- Origin Request: selepas cache tidak ditemui, sebelum menghantar kepada sumber asal—gunakan untuk penulisan semula URL dan pengepala tersuai kepada sumber asal
- Origin Response: selepas menerima respons daripada sumber asal, sebelum menyimpannya dalam cache—gunakan untuk menambah pengepala keselamatan dan mengubah suai respons
- Viewer Response: sebelum CloudFront menghantar respons kepada penonton—gunakan untuk menambah atau mengubah suai pengepala respons
Lambda@Edge berbanding CloudFront Functions
AWS menawarkan dua pilihan pengkomputeran pinggir dengan pertukaran yang berbeza:
- CloudFront Functions: pelaksanaan bawah milisaat, JavaScript sahaja, kos amat rendah (kira-kira 1/6 harga), hanya berjalan pada peristiwa Viewer Request dan Viewer Response, had masa pengkomputeran 1 ms, tiada akses VPC/rangkaian
- Lambda@Edge: masa pelaksanaan sehingga 30 saat (Viewer) / 30 saat (Origin), Node.js atau Python, keempat-empat titik pencetus, boleh membuat permintaan rangkaian, mempunyai akses kepada isi permintaan/respons
Gunakan CloudFront Functions untuk manipulasi pengepala mudah, penormalan URL dan pengiraan kunci cache. Gunakan Lambda@Edge untuk logik kompleks yang memerlukan panggilan rangkaian, pengiraan lebih lama atau pemprosesan di sisi sumber asal.
Kes Penggunaan Lambda@Edge
Pola Lambda@Edge yang biasa dalam peperiksaan SAA-C03:
- Pengesahan JWT di lokasi pinggir: fungsi Viewer Request mengesahkan pengepala Authorization; permintaan tidak dibenarkan mengembalikan 401 tanpa mencapai sumber asal
- Ujian A/B: Viewer Request menetapkan pengguna kepada kumpulan A atau B (melalui kuki) dan mengubah permintaan untuk mengambil
/a/page.htmlatau/b/page.html - Penulisan semula URL: Origin Request menulis semula URL yang bersih kepada laluan fail sebenar dalam S3
- Saiz semula imej dinamik: Origin Request membina permintaan kepada Lambda pemprosesan imej; Origin Response menyimpan imej yang diubah saiz dalam cache
- Pengepala keselamatan HTTP: Viewer Response menyuntik pengepala CSP, HSTS dan X-Frame-Options
Had Lambda@Edge
Lambda@Edge mempunyai beberapa sekatan berbanding Lambda standard:
- Fungsi mesti berada dalam Wilayah us-east-1
- Tiada sokongan VPC (tidak boleh mengakses sumber dalam VPC)
- Tiada pemboleh ubah persekitaran (benamkan konfigurasi dalam kod fungsi atau ambilnya daripada Parameter Store semasa permulaan sejuk)
- Tidak boleh menggunakan Lambda Layers
- Tamat masa peristiwa penonton: 5 saat; tamat masa peristiwa asal: 30 saat
- Had saiz pakej penggunaan: 1 MB (peristiwa penonton) / 50 MB (peristiwa asal)
Sekatan ini menjadikan Lambda@Edge tidak sesuai untuk pengiraan yang berjalan lama, operasi yang bergantung pada VPC atau fungsi yang memerlukan konfigurasi dinamik bagi setiap penggunaan.
WAF + Lambda@Edge: Keselamatan Berlapis
WAF dan Lambda@Edge mempunyai peranan keselamatan yang berbeza dan saling melengkapi:
- WAF: menyekat serangan berdasarkan tandatangan (suntikan SQL, XSS, pelaku berniat jahat yang diketahui, pengehad kadar)—peraturan terurus mengendalikan serangan lazim secara automatik
- Lambda@Edge: logik keselamatan perniagaan tersuai (pengesahan JWT, semakan sesi, pengesahan token akses)—fleksibel tetapi memerlukan usaha pembangunan
Senibina pertahanan berlapis: WAF menyekat corak serangan yang diketahui terlebih dahulu; Lambda@Edge mengesahkan pengesahan pada peringkat perniagaan; URL/kuki bertandatangan CloudFront mengehadkan akses kandungan; OAC memastikan S3 kekal peribadi. Setiap lapisan mencegah kelas serangan yang berbeza secara berasingan.
Pemantauan WAF dan Lambda@Edge
Pantau lapisan keselamatan edge anda dengan alat berikut:
- Log WAF: dayakan pengelogan permintaan penuh ke S3, CloudWatch Logs atau Kinesis Firehose untuk melihat peraturan yang sepadan dan trafik yang disekat
- Metrik WAF:
BlockedRequests,AllowedRequests,CountedRequestsbagi setiap peraturan dalam CloudWatch - Log Lambda@Edge: kumpulan CloudWatch Logs dicipta dalam setiap Wilayah tempat fungsi dilaksanakan; gunakan CloudWatch Insights untuk membuat pertanyaan merentas Wilayah
- Log Masa Nyata CloudFront: strim log akses ke Kinesis untuk analisis segera (berbanding log akses standard yang dikumpulkan setiap beberapa minit)
Semakan Pantas
Uji pemahaman anda tentang konsep AWS Solutions Architect (SAA-C03) daripada pelajaran ini.
Rumusan Pelajaran
Dalam pelajaran ini, anda telah mempelajari bahawa: AWS WAF menyekat serangan web lazim di edge CloudFront menggunakan kumpulan peraturan terurus dan tersuai, Lambda@Edge menjalankan kod tersuai pada empat titik pencetus CloudFront secara global, dan CloudFront Functions menawarkan pelaksanaan submilisaat untuk logik mudah pada sisi penonton. ACL WAF untuk CloudFront mesti dicipta dalam us-east-1. Seterusnya, kita akan meneroka Application, Network dan Gateway Load Balancer.
Pelajari AWS Solutions Architect dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Soalan Lazim
Adakah pelajaran “CloudFront dengan WAF dan Lambda@Edge” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran AWS Solutions Architect, termasuk “CloudFront dengan WAF dan Lambda@Edge”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus AWS Solutions Architect merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “CloudFront dengan WAF dan Lambda@Edge”?
Lampirkan AWS WAF untuk menyekat serangan web lazim dan jalankan transformasi permintaan atau respons ringan di pinggir dengan Lambda@Edge. Anda berlatih AWS Solutions Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan AWS Solutions Architect?
Tiada pengalaman terdahulu diperlukan. Pembelajaran AWS Solutions Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “CloudFront dengan WAF dan Lambda@Edge” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Edaran dan Asal CloudFront
- Tingkah Laku Cache dan Tetapan TTL
- URL Ditandatangani, Kuki Ditandatangani dan Sekatan Geografi
- CloudFront dengan WAF dan Lambda@Edge