Periksa CloudFront distribusi Amazon untuk log akses, HTTPS, dan versi TLS - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Periksa CloudFront distribusi Amazon untuk log akses, HTTPS, dan versi TLS

SaiJeevan Devireddy dan Bijesh Bal, Amazon Web Services

Ringkasan

Pola ini memeriksa CloudFront distribusi Amazon untuk memastikan bahwa ia menggunakan HTTPS, menggunakan Transport Layer Security (TLS) versi 1.2 atau yang lebih baru, dan memiliki akses logging diaktifkan. CloudFront adalah layanan yang disediakan oleh Amazon Web Services (AWS) yang mempercepat distribusi konten web statis dan dinamis Anda, seperti.html, .css, .js, dan file gambar, kepada pengguna Anda. CloudFront mengirimkan konten Anda melalui jaringan pusat data di seluruh dunia yang disebut lokasi tepi. Saat pengguna meminta konten yang Anda sajikan CloudFront, permintaan akan diarahkan ke lokasi tepi yang memberikan latensi terendah (penundaan waktu), sehingga konten dikirimkan dengan performa terbaik.

Pola ini menyediakan fungsi AWS Lambda yang dimulai saat Amazon CloudWatch Events mendeteksi panggilan CloudFront CreateDistributionAPI,, atau. CreateDistributionWithTagsUpdateDistribution Logika kustom dalam fungsi Lambda mengevaluasi semua CloudFront distribusi yang dibuat atau diperbarui di akun AWS. Ini mengirimkan pemberitahuan pelanggaran dengan menggunakan Amazon Simple Notification Service (Amazon SNS) jika mendeteksi pelanggaran berikut:

  • Pemeriksaan global:

    • Sertifikat khusus tidak menggunakan TLS versi 1.2

    • Logging dinonaktifkan untuk distribusi

  • Cek asal:

    • Origin tidak dikonfigurasi dengan TLS versi 1.2

    • Komunikasi dengan asal diperbolehkan pada protokol selain HTTPS

  • Pemeriksaan perilaku:

    • Komunikasi perilaku default diperbolehkan pada protokol selain HTTPS

    • Komunikasi perilaku khusus diizinkan pada protokol selain HTTPS

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • Alamat email tempat Anda ingin menerima pemberitahuan pelanggaran

Batasan

  • Kontrol keamanan ini tidak memeriksa distribusi Cloudfront yang ada kecuali pembaruan telah dilakukan untuk distribusi.

  • CloudFront dianggap sebagai layanan global dan tidak terikat dengan Wilayah AWS tertentu. Namun, Amazon CloudWatch Logs dan AWS Cloudtrail API logging untuk layanan global terjadi di Wilayah AS Timur (Virginia N.). us-east-1 Oleh karena itu, kontrol keamanan untuk ini CloudFront harus digunakan dan dipelihara dius-east-1. Penerapan tunggal ini memantau semua distribusi untuk. CloudFront Jangan menerapkan kontrol keamanan di Wilayah AWS lainnya. (Penerapan di Wilayah lain akan mengakibatkan kegagalan untuk memulai CloudWatch Acara dan fungsi Lambda, dan tidak ada pemberitahuan SNS.)

  • Solusi ini telah melalui pengujian ekstensif dengan distribusi konten CloudFront web. Ini tidak mencakup distribusi streaming real-time messaging protocol (RTMP).

Arsitektur

Tumpukan teknologi target

  • Fungsi Lambda

  • Topik SNS

  • EventBridge Aturan Amazon

Arsitektur target

Workflow diagram showing Layanan AWS for distribution creation, event processing, and email notification.

Otomatisasi dan skala

  • Jika Anda menggunakan AWS Organizations, Anda dapat menggunakan AWS Cloudformation StackSets untuk menerapkan template terlampir di beberapa akun yang ingin Anda pantau.

Alat

Layanan AWS

  • AWS CloudFormation — CloudFormation adalah layanan yang membantu Anda memodelkan dan menyiapkan sumber daya AWS dengan menggunakan infrastruktur sebagai kode.

  • Amazon EventBridge — EventBridge menghadirkan aliran data real-time dari aplikasi Anda sendiri, aplikasi perangkat lunak sebagai layanan (SaaS), dan layanan AWS, merutekan data tersebut ke target seperti fungsi Lambda.

  • AWS Lambda — Lambda mendukung menjalankan kode tanpa menyediakan atau mengelola server.

  • Amazon S3 - Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang sangat skalabel yang dapat digunakan untuk berbagai solusi penyimpanan, termasuk situs web, aplikasi seluler, cadangan, dan danau data.

  • Amazon SNS — Amazon SNS mengkoordinasikan dan mengelola pengiriman atau pengiriman pesan antara penerbit dan klien, termasuk server web dan alamat email. Pelanggan menerima semua pesan yang dipublikasikan ke topik tempat mereka berlangganan, dan semua pelanggan topik menerima pesan yang sama.

Kode

Kode terlampir meliputi:

  • File zip yang berisi kode Lambda (index.py)

  • CloudFormation Template (file.yl) yang Anda jalankan untuk menyebarkan kode Lambda

Epik

TugasDeskripsiKeterampilan yang dibutuhkan
Buat bucket S3 untuk kode Lambda.

Di konsol Amazon S3, buat bucket S3 dengan nama unik yang tidak mengandung garis miring di depan. Nama bucket S3 unik secara global, dan namespace dibagikan oleh semua akun AWS. Bucket S3 Anda harus berada di Wilayah tempat Anda berencana untuk menerapkan kode Lambda.

Arsitek awan
Unggah kode Lambda ke bucket S3.

Unggah kode Lambda (file cloudfront_ssl_log_lambda.zip) yang disediakan di bagian Lampiran ke bucket S3 yang Anda buat di langkah sebelumnya.

Arsitek awan
TugasDeskripsiKeterampilan yang dibutuhkan
Menyebarkan CloudFormation template.

Di CloudFormation konsol AWS, di Wilayah AWS yang sama dengan bucket S3, terapkan CloudFormation template (cloudfront-ssl-logging.yl) yang disediakan di bagian Lampiran. 

Arsitek awan
Tentukan nama bucket S3.

Untuk parameter S3 Bucket, tentukan nama bucket S3 yang Anda buat di epik pertama.

Arsitek awan
Tentukan nama kunci Amazon S3 untuk file Lambda.

Untuk parameter Kunci S3, tentukan lokasi Amazon S3 dari file kode Lambda .zip di bucket S3 Anda. Jangan sertakan garis miring utama (misalnya, Anda dapat memasukkan lambda.zip atau controls/lambda.zip).

Arsitek awan
Berikan alamat email notifikasi.

Untuk parameter email Pemberitahuan, berikan alamat email tempat Anda ingin menerima pemberitahuan pelanggaran.

Arsitek awan
Tentukan tingkat logging.

Untuk parameter level Lambda Logging, tentukan level logging untuk fungsi Lambda Anda. Pilih salah satu nilai berikut: 

  • INFO untuk mendapatkan pesan informasi terperinci tentang kemajuan aplikasi.

  • ERROR untuk mendapatkan informasi tentang peristiwa kesalahan yang masih memungkinkan aplikasi untuk terus berjalan.

  • PERINGATAN untuk mendapatkan informasi tentang situasi yang berpotensi berbahaya.

Arsitek awan
TugasDeskripsiKeterampilan yang dibutuhkan
Konfirmasi langganan.

Ketika CloudFormation template telah berhasil digunakan, topik SNS baru dibuat dan pesan berlangganan dikirim ke alamat email yang Anda berikan. Anda harus mengonfirmasi langganan email ini untuk menerima pemberitahuan pelanggaran.

Arsitek awan

Lampiran

Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip