Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kirim peringatan dari AWS Network Firewall ke saluran Slack
Venki Srivatsav dan Aromal Raj Jayarajan, Amazon Web Services
Ringkasan
Pola ini menjelaskan cara menerapkan firewall dengan menggunakan Amazon Web Services (AWS) Network Firewall dengan model penyebaran terdistribusi dan cara menyebarkan peringatan yang dihasilkan oleh AWS Network Firewall ke saluran Slack yang dapat dikonfigurasi.
Standar kepatuhan seperti Payment Card Industry Data Security Standard (PCI DSS) mengharuskan Anda menginstal dan memelihara firewall untuk melindungi data pelanggan. Di AWS Cloud, virtual private cloud (VPC) dianggap sama dengan jaringan fisik dalam konteks persyaratan kepatuhan ini. Anda dapat menggunakan Network Firewall untuk memantau lalu lintas jaringan antara VPCs dan untuk melindungi beban kerja Anda yang berjalan di VPCs diatur oleh standar kepatuhan. Network Firewall memblokir akses atau menghasilkan peringatan ketika mendeteksi akses tidak sah dari orang lain VPCs di akun yang sama. Namun, Network Firewall mendukung sejumlah tujuan untuk mengirimkan peringatan. Tujuan ini mencakup bucket Amazon Simple Storage Service (Amazon S3), grup log Amazon, dan CloudWatch aliran pengiriman Amazon Data Firehose. Setiap tindakan lebih lanjut pada notifikasi ini memerlukan analisis offline dengan menggunakan Amazon Athena atau Amazon Kinesis.
Pola ini menyediakan metode untuk menyebarkan peringatan yang dihasilkan oleh Network Firewall ke saluran Slack yang dapat dikonfigurasi untuk tindakan lebih lanjut dalam waktu dekat. Anda juga dapat memperluas fungsionalitas ke mekanisme peringatan lainnya seperti PagerDuty, Jira, dan email. (Kustomisasi tersebut berada di luar cakupan pola ini.)
Prasyarat dan batasan
Prasyarat
Saluran Slack (lihat Memulai
di pusat bantuan Slack) Hak istimewa yang diperlukan untuk mengirim pesan ke saluran
URL titik akhir Slack dengan token API (pilih aplikasi Anda dan pilih
webhook masuk untuk melihat URL-nya; untuk informasi selengkapnya, lihat Membuat Webhook Masuk dalam dokumentasi Slack API) Instans pengujian Amazon Elastic Compute Cloud (Amazon EC2) di subnet beban kerja
Aturan uji di Network Firewall
Lalu lintas aktual atau simulasi untuk memicu aturan pengujian
Bucket S3 untuk menyimpan file sumber yang akan digunakan
Batasan
Saat ini solusi ini hanya mendukung rentang Classless Inter-Domain Routing (CIDR) tunggal sebagai filter untuk sumber dan tujuan. IPs
Arsitektur
Tumpukan teknologi target
Satu VPC
Empat subnet (dua untuk firewall dan dua untuk beban kerja)
gateway internet
Empat tabel rute dengan aturan
Bucket S3 digunakan sebagai tujuan peringatan, dikonfigurasi dengan kebijakan bucket dan pengaturan acara untuk menjalankan fungsi Lambda
Fungsi Lambda dengan peran eksekusi, untuk mengirim pemberitahuan Slack
Rahasia AWS Secrets Manager untuk menyimpan URL Slack
Firewall jaringan dengan konfigurasi peringatan
Saluran kendur
Arsitektur target
Pola ini mengatur firewall jaringan terdesentralisasi dengan integrasi Slack. Arsitektur ini terdiri dari VPC dengan dua Availability Zones. VPC mencakup dua subnet yang dilindungi dan dua subnet firewall dengan titik akhir firewall jaringan. Semua lalu lintas yang masuk dan keluar dari subnet yang dilindungi dapat dipantau dengan membuat kebijakan dan aturan firewall. Firewall jaringan dikonfigurasi untuk menempatkan semua peringatan dalam ember S3. Bucket S3 ini dikonfigurasi untuk memanggil fungsi Lambda saat menerima put acara. Fungsi Lambda mengambil URL Slack yang dikonfigurasi dari Secrets Manager dan mengirimkan pesan notifikasi ke ruang kerja Slack.

Untuk informasi selengkapnya tentang arsitektur ini, lihat postingan blog AWS Model penerapan untuk AWS Network Firewall
Alat
Layanan AWS
AWS Network Firewall adalah firewall jaringan yang stateful, dikelola, dan layanan deteksi dan pencegahan intrusi untuk AWS Cloud VPCs . Anda dapat menggunakan Network Firewall untuk memfilter lalu lintas di perimeter VPC Anda dan melindungi beban kerja Anda di AWS.
AWS Secrets Manager adalah layanan untuk penyimpanan dan pengambilan kredensi. Dengan menggunakan Secrets Manager, Anda dapat mengganti kredensi hardcode dalam kode Anda, termasuk kata sandi, dengan panggilan API ke Secrets Manager untuk mengambil rahasia secara terprogram. Pola ini menggunakan Secrets Manager untuk menyimpan URL Slack.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek. Anda dapat menggunakan Amazon S3 untuk menyimpan dan mengambil data sebanyak apa pun kapan pun, dari mana pun di web. Pola ini menggunakan Amazon S3 untuk menyimpan CloudFormation template dan skrip Python untuk fungsi Lambda. Ini juga menggunakan bucket S3 sebagai tujuan peringatan firewall jaringan.
AWS CloudFormation membantu Anda memodelkan dan menyiapkan sumber daya AWS Anda, menyediakannya dengan cepat dan konsisten, serta mengelolanya sepanjang siklus hidupnya. Anda dapat menggunakan template untuk mendeskripsikan sumber daya Anda dan dependensinya, dan meluncurkan dan mengonfigurasinya bersama-sama sebagai tumpukan, alih-alih mengelola sumber daya secara individual. Pola ini menggunakan AWS CloudFormation untuk secara otomatis menerapkan arsitektur terdistribusi untuk Firewall Manager.
Kode
Kode untuk pola ini tersedia di GitHub, di repositori Network Firewall Slack Integrationsrc folder repositori, Anda akan menemukan:
Satu set CloudFormation file dalam format YAMAL. Anda menggunakan template ini untuk menyediakan komponen untuk pola ini.
File sumber Python (
slack-lambda.py) untuk membuat fungsi Lambda.Paket penyebaran arsip.zip (
slack-lambda.py.zip) untuk mengunggah kode fungsi Lambda Anda.
Untuk menggunakan file-file ini, ikuti instruksi di bagian selanjutnya.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat ember S3. |
Untuk informasi selengkapnya, lihat Membuat bucket di dokumentasi Amazon S3. | Pengembang aplikasi, Pemilik aplikasi, administrator Cloud |
Unggah CloudFormation template dan kode Lambda. |
| Pengembang aplikasi, Pemilik aplikasi, administrator Cloud |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Luncurkan CloudFormation template. | Buka CloudFormation konsol AWS Untuk informasi selengkapnya tentang penerapan CloudFormation templat, lihat Membuat tumpukan di CloudFormation konsol AWS dalam CloudFormation dokumentasi. | Pengembang aplikasi, Pemilik aplikasi, administrator Cloud |
Lengkapi parameter dalam template. | Tentukan nama tumpukan dan konfigurasikan nilai parameter. Untuk daftar parameter, deskripsinya, dan nilai default, lihat CloudFormation parameter di bagian Informasi tambahan. | Pengembang aplikasi, Pemilik aplikasi, administrator Cloud |
Buat tumpukan. |
| Pengembang aplikasi, Pemilik aplikasi, administrator Cloud |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Uji penyebaran. | Gunakan CloudFormation konsol AWS atau AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) untuk memverifikasi bahwa sumber daya yang tercantum di bagian tumpukan teknologi Target telah dibuat. Jika CloudFormation template gagal diterapkan dengan sukses, periksa nilai yang Anda berikan untuk | Pengembang aplikasi, Pemilik aplikasi, administrator Cloud |
Fungsionalitas uji. | 1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/ 2. Buat EC2 instance di salah satu subnet yang dilindungi. Pilih Amazon Linux 2 AMI (HVM) untuk digunakan sebagai server HTTPS. Untuk petunjuknya, lihat Meluncurkan instance di EC2 dokumentasi Amazon. catatanAmazon Linux 2 mendekati akhir dukungan. Untuk informasi selengkapnya, lihat Amazon Linux 2 FAQs 3. Gunakan data pengguna berikut untuk menginstal server web pada EC2 instance:
4. Buat aturan firewall jaringan berikut: Aturan tanpa kewarganegaraan:
Aturan stateful:
5. Dapatkan IP publik dari server web yang Anda buat di langkah 3. 6. Akses IP publik di browser. Anda akan melihat pesan berikut di browser:
Anda juga akan mendapatkan notifikasi di saluran Slack. Pemberitahuan mungkin tertunda, tergantung pada ukuran pesan. Untuk tujuan pengujian, pertimbangkan untuk menyediakan filter CIDR yang tidak terlalu sempit (misalnya, nilai CIDR dengan/32 akan dianggap terlalu sempit, dan /8 akan terlalu luas). Untuk informasi selengkapnya, lihat bagian Memfilter perilaku di Informasi tambahan. | Pengembang aplikasi, Pemilik aplikasi, administrator Cloud |
Sumber daya terkait
Model penerapan untuk AWS Network Firewall
(postingan blog AWS) Kebijakan AWS Network Firewall (dokumentasi AWS)
Integrasi Slack Firewall Jaringan
(GitHub repositori) Buat ruang kerja Slack (pusat
bantuan Slack)
Informasi tambahan
CloudFormation parameter
Parameter | Deskripsi | Nilai default atau sampel |
|---|---|---|
| Nama VPC yang akan dibuat. | Inspeksi |
| Rentang CIDR untuk VPC untuk dibuat. | 10.0.0.0/16 |
| Bagaimana EC2 instance didistribusikan di seluruh perangkat keras fisik. Pilihannya adalah | default |
| Availability Zone pertama untuk infrastruktur. | us-timur-2a |
| Availability Zone kedua untuk infrastruktur. | us-timur-2b |
| Rentang CIDR untuk subnet firewall pertama (minimum /28). | 10.0.1.0/24 |
| Rentang CIDR untuk subnet firewall kedua (minimum /28). | 10.0.2.0/24 |
| Rentang CIDR untuk subnet pertama yang dilindungi (beban kerja). | 10.0.3.0/24 |
| Rentang CIDR untuk subnet kedua yang dilindungi (beban kerja). | 10.0.4.0/24 |
| Nama bucket S3 yang ada tempat Anda mengunggah kode sumber Lambda. | kita-w2- yourname-lambda-functions |
| Awalan bucket S3 tempat Anda mengunggah kode sumber Lambda. | uji aod |
| Nama rahasia yang menyimpan URL Slack. | SlackEnpoint-Cfn |
| Nama saluran Slack yang Anda buat. | pemberitahuan somename |
| Nama pengguna Slack. | Pengguna Slack |
| Ini bisa menjadi kunci apa saja. Kami menyarankan Anda menggunakan default. | WebHooURL |
| Nilai URL Slack. | https://hooks.slack.com/services/T??? 9T?? /A031885 JRM7 /9D4Y |
| Nama bucket S3 yang akan digunakan sebagai tujuan peringatan firewall jaringan. Ember ini akan dibuat untuk Anda. | kita-w2- yourname-security-aod-alerts |
| Nama tag untuk rahasianya. | AppName |
| Nilai tag untuk nama tag yang ditentukan. | LambdaSlackIntegration |
| Filter untuk rentang CIDR tujuan. Untuk informasi selengkapnya, lihat bagian selanjutnya, Filter perilaku. | 10.0.0.0/16 |
| Bendera untuk menunjukkan apakah akan mengecualikan atau menyertakan kecocokan tujuan. Untuk informasi lebih lanjut, lihat bagian selanjutnya. Nilai yang valid adalah | memasukkan |
| Filter untuk rentang CIDR sumber untuk diperingatkan. Untuk informasi lebih lanjut, lihat bagian selanjutnya. | 118.2.0.0/16 |
| Bendera untuk mengecualikan atau menyertakan kecocokan sumber. Untuk informasi lebih lanjut, lihat bagian selanjutnya. | memasukkan |
Perilaku filter
Jika Anda belum mengonfigurasi filter apa pun di AWS Lambda, semua peringatan yang dihasilkan akan dikirim ke saluran Slack Anda. Sumber dan tujuan peringatan IPs yang dihasilkan dicocokkan dengan rentang CIDR yang Anda konfigurasikan saat Anda menerapkan templat. CloudFormation Jika kecocokan ditemukan, kondisi diterapkan. Jika sumber atau tujuan berada dalam rentang CIDR yang dikonfigurasi dan setidaknya salah satunya dikonfigurasi dengan kondisiinclude, peringatan akan dihasilkan. Tabel berikut memberikan contoh nilai CIDR, kondisi, dan hasil.
CIDR yang dikonfigurasi | Peringatan IP | Dikonfigurasi | Pemberitahuan | |
|---|---|---|---|---|
Sumber | 10.0.0.0/16 | 10.0.0.25 | memasukkan | Ya |
Destinasi | 100.0.0.0/16 | 202.0.0.13 | memasukkan |
CIDR yang dikonfigurasi | Peringatan IP | Dikonfigurasi | Pemberitahuan | |
|---|---|---|---|---|
Sumber | 10.0.0.0/16 | 10.0.0.25 | mengecualikan | Tidak |
Destinasi | 100.0.0.0/16 | 202.0.0.13 | memasukkan |
CIDR yang dikonfigurasi | Peringatan IP | Dikonfigurasi | Pemberitahuan | |
|---|---|---|---|---|
Sumber | 10.0.0.0/16 | 10.0.0.25 | memasukkan | Ya |
Destinasi | 100.0.0.0/16 | 100.0.0.13 | memasukkan |
CIDR yang dikonfigurasi | Peringatan IP | Dikonfigurasi | Pemberitahuan | |
|---|---|---|---|---|
Sumber | 10.0.0.0/16 | 90.0.0.25 | memasukkan | Ya |
Destinasi | Null | 202.0.0.13 | memasukkan |
CIDR yang dikonfigurasi | Peringatan IP | Dikonfigurasi | Pemberitahuan | |
|---|---|---|---|---|
Sumber | 10.0.0.0/16 | 90.0.0.25 | memasukkan | Tidak |
Destinasi | 100.0.0.0/16 | 202.0.0.13 | memasukkan |