Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat laporan konsolidasi temuan keamanan Prowler dari beberapa Akun AWS
Mike Virgilio, Jay Durga, dan Andrea Di Fabio, Amazon Web Services
Ringkasan
Prowler
Meskipun ada banyak metode untuk menyebarkan dan memanfaatkan Prowler untuk penilaian, solusi ini telah dirancang untuk penyebaran cepat, analisis penuh dari semua akun dalam organisasi atau akun target yang ditentukan, dan pelaporan temuan keamanan yang dapat diakses. Dalam solusi ini, ketika Prowler menyelesaikan penilaian keamanan semua akun dalam organisasi, itu mengkonsolidasikan hasilnya. Ini juga menyaring pesan kesalahan yang diharapkan, seperti kesalahan yang terkait dengan pembatasan yang mencegah Prowler memindai bucket Amazon Simple Storage Service (Amazon S3) di akun yang disediakan. AWS Control Tower Hasil yang disaring dan terkonsolidasi dilaporkan dalam template Microsoft Excel yang disertakan dengan pola ini. Anda dapat menggunakan laporan ini untuk mengidentifikasi potensi peningkatan kontrol keamanan di organisasi Anda.
Solusi ini dirancang dengan mempertimbangkan hal-hal berikut:
AWS CloudFormation Template mengurangi upaya yang diperlukan untuk menyebarkan AWS sumber daya dalam pola ini.
Anda dapat menyesuaikan parameter dalam CloudFormation template dan skrip prowler_scan.sh pada saat penerapan untuk menyesuaikan template untuk lingkungan Anda.
Penilaian prowler dan kecepatan pelaporan dioptimalkan melalui pemrosesan paralel, hasil agregat Akun AWS, pelaporan terkonsolidasi dengan remediasi yang direkomendasikan, dan visualisasi yang dihasilkan secara otomatis.
Pengguna tidak perlu memantau kemajuan pemindaian. Ketika penilaian selesai, pengguna diberi tahu melalui topik Amazon Simple Notification Service (Amazon SNS) sehingga mereka dapat mengambil laporan.
Template laporan membantu Anda membaca dan menilai hanya hasil yang relevan untuk seluruh organisasi Anda.
Prasyarat dan batasan
Prasyarat
Sebuah Akun AWS untuk layanan dan alat keamanan hosting, dikelola sebagai akun anggota organisasi di AWS Organizations. Dalam pola ini, akun ini disebut sebagai akun keamanan.
Di akun keamanan, Anda harus memiliki subnet pribadi dengan akses internet keluar. Untuk petunjuk, lihat VPC dengan server di subnet pribadi dan NAT di dokumentasi Amazon Virtual Private Cloud (Amazon VPC). Anda dapat membuat akses internet dengan menggunakan gateway NAT yang disediakan di subnet publik.
Akses ke akun AWS Organizations manajemen atau akun yang telah mendelegasikan izin administrator untuk. CloudFormation Untuk petunjuk, lihat Mendaftarkan administrator yang didelegasikan dalam CloudFormation dokumentasi.
Aktifkan akses tepercaya antara AWS Organizations dan CloudFormation. Untuk petunjuk, lihat Mengaktifkan akses tepercaya dengan AWS Organizations dalam CloudFormation dokumentasi.
Batasan
Target Akun AWS harus dikelola sebagai organisasi di AWS Organizations. Jika Anda tidak menggunakan AWS Organizations, Anda dapat memperbarui CloudFormation template IAM- ProwlerExecRole .yaml dan skrip prowler_scan.sh untuk lingkungan Anda. Sebagai gantinya, Anda memberikan daftar Akun AWS IDs dan Wilayah tempat Anda ingin menjalankan skrip.
CloudFormation Template ini dirancang untuk menyebarkan instans Amazon Elastic Compute Cloud EC2 (Amazon) di subnet pribadi yang memiliki akses internet keluar. AWS Systems Manager Agen (Agen SSM) memerlukan akses keluar untuk mencapai titik akhir AWS Systems Manager layanan, dan Anda memerlukan akses keluar untuk mengkloning repositori kode dan menginstal dependensi. Jika Anda ingin menggunakan subnet publik, Anda harus memodifikasi template prowler-resources.yaml untuk mengaitkan alamat IP Elastis dengan instance. EC2
Versi produk
Prowler versi 4.0 atau yang lebih baru
Arsitektur

Diagram menunjukkan proses berikut:
Menggunakan Session Manager, kemampuan AWS Systems Manager, pengguna mengautentikasi ke EC2 instance dan menjalankan skrip prowler_scan.sh. Skrip shell ini melakukan langkah 2—8.
EC2 Instance mengasumsikan peran
ProwlerEC2RoleIAM, yang memberikan izin untuk mengakses bucket S3 dan untuk mengambil peranProwlerExecRoleIAM di akun lain di organisasi.EC2 Instance mengasumsikan peran
ProwlerExecRoleIAM dalam akun manajemen organisasi dan menghasilkan daftar akun dalam organisasi.EC2 Instance mengasumsikan peran
ProwlerExecRoleIAM dalam akun anggota organisasi (disebut akun beban kerja dalam diagram arsitektur) dan melakukan penilaian keamanan di setiap akun. Temuan disimpan sebagai file CSV dan HTML pada EC2 instance.catatan
File HTML adalah output dari penilaian Prowler. Karena sifat HTML, mereka tidak digabungkan, diproses, atau digunakan secara langsung dalam pola ini. Namun, ini mungkin berguna untuk tinjauan laporan akun individu.
EC2 Instance memproses semua file CSV untuk menghapus kesalahan yang diketahui dan diharapkan dan mengkonsolidasikan temuan yang tersisa ke dalam satu file CSV.
EC2 Instance mengemas hasil akun individual dan hasil agregat ke dalam file zip.
EC2 Instance mengunggah file zip ke bucket S3.
EventBridge Aturan mendeteksi unggahan file dan menggunakan topik Amazon SNS untuk mengirim email ke pengguna yang memberi tahu mereka bahwa penilaian telah selesai.
Pengguna mengunduh file zip dari bucket S3. Pengguna mengimpor hasil ke template Excel dan meninjau hasilnya.
Alat
Layanan AWS
Amazon Elastic Compute Cloud (Amazon EC2) menyediakan kapasitas komputasi yang dapat diskalakan di. AWS Cloud Anda dapat meluncurkan server virtual sebanyak yang Anda butuhkan dan dengan cepat meningkatkannya ke atas atau ke bawah.
Amazon EventBridge adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data waktu nyata dari berbagai sumber. Misalnya, AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS
AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.
AWS Organizationsadalah layanan manajemen akun yang membantu Anda mengkonsolidasikan beberapa Akun AWS ke dalam organisasi yang Anda buat dan kelola secara terpusat.
Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.
Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.
AWS Systems Managermembantu Anda mengelola aplikasi dan infrastruktur yang berjalan di AWS Cloud. Ini menyederhanakan aplikasi dan manajemen sumber daya, mempersingkat waktu untuk mendeteksi dan menyelesaikan masalah operasional, dan membantu Anda mengelola AWS sumber daya Anda dengan aman dalam skala besar. Pola ini menggunakan Session Manger, kemampuan Systems Manager.
Alat-alat lainnya
Prowler
adalah alat baris perintah sumber terbuka yang membantu Anda menilai, mengaudit, dan memantau akun Anda untuk kepatuhan terhadap praktik terbaik AWS keamanan serta kerangka kerja dan standar keamanan lainnya.
Repositori kode
Kode untuk pola ini tersedia dalam Penilaian Keamanan GitHub Multi-Akun melalui repositori Prowler
prowler_scan.sh - Skrip bash ini digunakan untuk memulai penilaian keamanan Prowler dari beberapa, Akun AWS secara paralel. Seperti yang didefinisikan dalam Prowler-Resources.yaml CloudFormationtemplate, skrip ini secara otomatis digunakan ke folder pada instance.
usr/local/prowlerEC2Prowler-Resources.yaml — Anda menggunakan CloudFormation template ini untuk membuat tumpukan di akun keamanan di organisasi. Template ini menyebarkan semua sumber daya yang diperlukan untuk akun ini untuk mendukung solusinya. Tumpukan ini harus digunakan sebelum template IAM- ProwlerExecRole .yaml. Kami tidak menyarankan Anda menyebarkan sumber daya ini di akun yang menampung beban kerja produksi penting.
catatan
Jika tumpukan ini dihapus dan digunakan kembali, Anda harus membangun kembali kumpulan
ProwlerExecRoletumpukan untuk membangun kembali dependensi lintas akun di antara peran IAM.IAM- ProwlerExecRole .yaml - Anda menggunakan CloudFormation templat ini untuk membuat kumpulan tumpukan yang menerapkan peran
ProwlerExecRoleIAM di semua akun di organisasi, termasuk akun manajemen.prowler-report-template.xlsm — Anda menggunakan template Excel ini untuk memproses temuan Prowler. Tabel pivot dalam laporan menyediakan kemampuan pencarian, bagan, dan temuan terkonsolidasi.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning repositori kode. |
| AWS DevOps |
Tinjau template. |
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menyediakan sumber daya di akun keamanan. | Menggunakan template prowler-resources.yaml, Anda membuat CloudFormation tumpukan yang menyebarkan semua sumber daya yang diperlukan di akun keamanan. Untuk petunjuk, lihat Membuat tumpukan dalam CloudFormation dokumentasi. Perhatikan hal berikut saat menerapkan template ini:
| AWS DevOps |
Menyediakan peran IAM di akun anggota. | Di akun AWS Organizations manajemen atau akun dengan izin administrator yang didelegasikan CloudFormation, gunakan template IAM- ProwlerExecRole .yaml untuk membuat kumpulan tumpukan. CloudFormation Kumpulan tumpukan menyebarkan peran
| AWS DevOps |
Menyediakan peran IAM dalam akun manajemen. | Menggunakan template IAM- ProwlerExecRole .yaml, Anda membuat CloudFormation tumpukan yang menerapkan peran
| AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Jalankan pemindaian. |
| Administrator AWS |
Ambil temuan Prowler. |
| AWS Umum |
Hentikan EC2 instance. | Untuk mencegah penagihan saat instance tidak aktif, hentikan EC2 instance yang menjalankan Prowler. Untuk petunjuknya, lihat Berhenti dan mulai instans Anda di EC2 dokumentasi Amazon. | AWS DevOps |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Impor temuan. |
| AWS Umum |
Selesaikan laporan. |
| AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Perbarui Prowler. | Jika Anda ingin memperbarui Prowler ke versi terbaru, lakukan hal berikut:
| AWS Umum |
Perbarui skrip prowler_scan.sh. | Jika Anda ingin memperbarui skrip prowler_scan.sh ke versi terbaru di repo, lakukan hal berikut:
catatanAnda mungkin menerima peringatan terkait dengan file yang dibuat secara lokal yang tidak ada dalam GitHub repo, seperti menemukan laporan. Anda dapat mengabaikan ini selama prowler_scan.sh menunjukkan bahwa perubahan yang disimpan secara lokal digabungkan kembali. | AWS Umum |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hapus semua sumber daya yang digunakan. | Anda dapat meninggalkan sumber daya yang digunakan di akun. Jika Anda mematikan EC2 instance saat tidak digunakan dan membiarkan bucket S3 kosong, ini mengurangi biaya pemeliharaan sumber daya untuk pemindaian masa depan. Jika Anda ingin menghentikan semua sumber daya, lakukan hal berikut:
| AWS DevOps |
Pemecahan Masalah
| Isu | Solusi |
|---|---|
Tidak dapat terhubung ke EC2 instance dengan menggunakan Session Manager. | Agen SSM harus dapat berkomunikasi dengan endpoint Systems Manager. Lakukan hal-hal berikut:
|
Saat menerapkan set tumpukan, CloudFormation konsol meminta Anda untuk melakukannya. | Ini menunjukkan bahwa akses tepercaya belum diaktifkan antara AWS Organizations dan CloudFormation. Akses tepercaya diperlukan untuk menerapkan set tumpukan yang dikelola layanan. Pilih tombol untuk mengaktifkan akses tepercaya. Untuk informasi selengkapnya, lihat Mengaktifkan akses tepercaya dalam CloudFormation dokumentasi. |
Sumber daya terkait
AWS dokumentasi
Menerapkan kontrol keamanan pada AWS (Panduan AWS Preskriptif)
Sumber daya lainnya
Prowler (
) GitHub
Informasi tambahan
Menghapus kesalahan secara terprogram
Jika hasilnya mengandung Access Denied kesalahan, Anda harus menghapusnya dari temuan. Kesalahan ini biasanya disebabkan oleh izin pengaruh eksternal yang mencegah Prowler menilai sumber daya tertentu. Misalnya, beberapa pemeriksaan gagal saat meninjau bucket S3 yang disediakan. AWS Control Tower Anda dapat mengekstrak hasil ini secara terprogram dan menyimpan hasil yang difilter sebagai file baru.
Perintah berikut menghapus baris yang berisi string teks tunggal (pola) dan kemudian output hasilnya ke file baru.
Untuk Linux atau macOS (Grep)
grep -v -i "Access Denied getting bucket" myoutput.csv > myoutput_modified.csv
Untuk Windows (PowerShell)
Select-String -Path myoutput.csv -Pattern 'Access Denied getting bucket' -NotMatch > myoutput_modified.csv
Perintah berikut menghapus baris yang cocok dengan lebih dari satu string teks dan kemudian menampilkan hasilnya ke file baru.
Untuk Linux atau macOS (Menggunakan pipa yang keluar di antara string)
grep -v -i 'Access Denied getting bucket\|Access Denied Trying to Get' myoutput.csv > myoutput_modified.csvUntuk Windows (Menggunakan koma di antara string)
Select-String -Path myoutput.csv -Pattern 'Access Denied getting bucket', 'Access Denied Trying to Get' -NotMatch > myoutput_modified.csv
Laporkan contoh
Gambar berikut adalah contoh lembar kerja Temuan dalam laporan temuan Prowler terkonsolidasi.

Gambar berikut adalah contoh lembar kerja Pass Fail dalam laporan temuan Prowler terkonsolidasi. (Secara default, hasil lulus dikecualikan dari output.)

Gambar berikut adalah contoh lembar kerja Keparahan dalam laporan temuan Prowler terkonsolidasi.
