Security Hub Compliance Analyzer (SHCA) menghasilkan artefak untuk mendukung akreditasi Sistem Informasi Kerangka Manajemen Risiko (RMF) Departemen Pertahanan. Memanfaatkan dokumentasi yang disediakan Amazon Web Services, memetakan Kontrol NIST800-53-Rev-5 ke ID Kontrol Keamanan AWS Security Hub, SHCA meminta kepatuhan lingkungan saat ini dari Security Hub dan menghasilkan file zip yang disimpan di Amazon S3 yang berisi artefak diskrit dalam CSV, JSON, OCSF menyediakan artefak kepada SecOps untuk diimpor ke alat RMF.
Hub Keamanan dengan dan Publikasi Khusus NIST 800-53 Revisi 5 Standar Keamanan dan berjalan setidaknya 24 jam untuk membuahkan hasil
** Untuk informasi lebih lanjut tentang mengaktifkan standar ini, kunjungi Mengaktifkan dan menonaktifkan standar keamanan )
Semua temuan dalam Security Hub diekstraksi dan disimpan di JSON.
Temuan terbaru dari setiap kontrol/id sumber daya di JSON ditulis ke file CSV untuk analisis dan keterbacaan yang lebih baik
Ringkasan semua kontrol dibuat dari file CSV dengan mengikuti metodologi berikut
Langkah ini membuat file untuk setiap kontrol NIST SP 800-53 berdasarkan status kontrol tersebut dan menyimpannya dalam dua folder:
Selain itu, langkah ini mengambil dan menyertakan berbagai file dari bucket S3. Folder dan isinya adalah:
File-file ini menyediakan data komprehensif tentang status keamanan sumber daya AWS, berdasarkan pemeriksaan keamanan otomatis NIST SP 800-53 Security Hub.
Inilah yang perlu Anda instal untuk menggunakan AWS CDK.
Memvalidasi Instalasi Python 3.7 atau lebih baru, pip, virtualenv, dan Node.js di Linux
node --version
Semua pengembang AWS CDK, bahkan mereka yang bekerja dengan Python, Java, atau C#, memerlukan Node.js 14.15.0 atau lebih baru. Semua bahasa yang didukung menggunakan backend yang sama, yang berjalan di Node.js. Kami merekomendasikan versi dukungan aktif jangka panjang. Organisasi Anda mungkin memiliki rekomendasi berbeda.
Prasyarat lainnya bergantung pada bahasa yang Anda gunakan untuk mengembangkan aplikasi AWS CDK dan adalah sebagai berikut:
python3 --version
pip3 --version
virtualenv --version
wget --version
jq --version
npm install -g aws-cdk
Jalankan perintah berikut untuk memverifikasi instalasi yang benar dan mencetak nomor versi AWS CDK.
cdk --version
File cdk.json
memberi tahu CDK Toolkit cara menjalankan aplikasi.
Proyek ini diatur seperti proyek Python standar. Proses inisialisasi juga membuat virtualenv dalam proyek ini, disimpan di bawah direktori .venv
. Untuk membuat virtualenv, diasumsikan ada python3
(atau python
untuk Windows) yang dapat dieksekusi di jalur Anda dengan akses ke paket venv
. Jika karena alasan apa pun pembuatan virtualenv otomatis gagal, Anda dapat membuat virtualenv secara manual.
Untuk membuat virtualenv secara manual di MacOS dan Linux:
$ python3 -m venv .venv
Setelah proses init selesai dan virtualenv dibuat, Anda dapat menggunakan langkah berikut untuk mengaktifkan virtualenv Anda.
$ source .venv/bin/activate
Jika Anda menggunakan platform Windows, Anda akan mengaktifkan virtualenv seperti ini:
% .venvScriptsactivate.bat
Setelah virtualenv diaktifkan, Anda dapat menginstal dependensi yang diperlukan.
$ pip install -r requirements-deploy.txt
Unduh AWS Lambda Layer untuk AWS SDK for Pandas (AWS Wrangler) dan letakkan di lokasi berikut: Lihat README.md untuk informasi lebih lanjut.
bash update_aws_wrangler.sh
Penerapan tumpukan dengan AWS CDK memerlukan bucket Amazon S3 khusus dan kontainer lainnya agar tersedia untuk AWS CloudFormation selama penerapan. Membuat ini disebut bootstrap. Untuk melakukan bootstrap, keluarkan:
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
Pada titik ini Anda sekarang dapat mensintesis templat CloudFormation untuk kode ini.
$ cdk synth
Ubah nilai berikut di cdk.json
- "environment": "shca"
- Beri nama deskriptif untuk penerapan SHCA. Nilainya bisa berapa pun dan tidak memengaruhi fungsionalitas. Ini untuk memberi label sumber daya SHCA dalam Akun AWS. - "vpc_cidr": "10.30.0.0/24"
- Menetapkan rentang CIDR untuk VPC kecil yang dibuat agar fungsi Lambda dapat dijalankan, agar tidak membuat [Lambda.3] Fungsi Lambda harus ada dalam temuan VPC. Pilih rentang CIDR yang belum digunakan di lingkungan Anda. - "schedule_frekuensi_hari": 7
- Pengaturan ini menentukan seberapa sering Anda ingin SHCA membuat pelaporan kepatuhan. - "send_failure_notification_email": true
atau false
- Jika true
, email akan dikirim ke alamat yang diberikan di failure_notification_email
. - "failure_notification_email": [email protected]
- Alamat email ini akan menerima notifikasi jika SHCA gagal dijalankan.
Dari sini Anda memiliki dua opsi tentang cara menginstal SHCA (CloudShell atau CDK)
Jika Anda tidak memiliki akses ke laptop atau lingkungan pengembangan tempat Anda dapat menginstal prasyarat di atas, layanan CloudShell dapat digunakan untuk menerapkan SHCA. Selain itu, dengan menggunakan kredensial sementara dari AWS IAM Identity Center, kami dapat menggunakan satu CloudShell di sebuah akun untuk melakukan panggilan API CloudFormation dan menerapkan kode ke akun mana pun yang dapat Anda akses.
CloudShell disetujui oleh DISA untuk digunakan di lingkungan IL2-IL5, termasuk wilayah Komersial dan GovCloud. Silakan berkonsultasi dengan personel kepatuhan organisasi Anda untuk memastikan bahwa CloudShell disetujui untuk digunakan dalam Penerapan AWS organisasi Anda.
Unduh kode sumber seperti shca-main.zip, dari cabang utama repo ini.
Navigasikan ke layanan CloudShell di Akun AWS yang akan Anda gunakan untuk bertindak sebagai lingkungan penerapan Anda. Pastikan Anda memiliki cukup ruang di CloudShell sebelum melakukan penerapan. Jika Anda kehabisan ruang, itu akan gagal.
Unggah kode sumber ke CloudShell. Buka zip file dan cd ke direktori shca-main
:
unzip shca-main.zip && cd shca-main
Tempelkan kredensial sementara dari Pusat Identitas AWS IAM untuk akun yang ingin Anda terapkan SHCA ke dalamnya . AWS CDK akan menggunakan kredensial sementara ini (sekarang ditetapkan sebagai variabel lingkungan) untuk menerapkan kode ke akun yang benar dan ditargetkan, bahkan jika Anda menggunakan CloudShell dari akun lain.
Jalankan aws sts get-caller-identity
dan verifikasi bahwa nomor utama dan akun sesuai dengan nilai yang Anda harapkan.
Berikan izin eksekusi dan jalankan ./cloud_shell_deployment.sh
chmod +x cloud_shell_deployment.sh && ./cloud_shell_deployment.sh
Masukkan y
ketika CDK meminta Anda memasukkan shell dua kali .
$ cdk deploy
cdk ls
mencantumkan semua tumpukan di aplikasicdk synth
memancarkan templat CloudFormation yang disintesiscdk deploy
menyebarkan tumpukan ini ke akun/wilayah AWS default Andacdk diff
membandingkan tumpukan yang diterapkan dengan status saat inicdk docs
membuka dokumentasi CDK Setelah SHCA diterapkan:
Arahkan ke Fungsi Langkah/Layanan Mesin Negara:
Pilih YOUR-ENVIRONMENT-NAME-State-Machine
Jika Anda baru saja menerapkan SHCA untuk pertama kalinya, verifikasi bahwa mesin status telah berhasil dijalankan dengan melihat eksekusinya. Jika mesin negara berhasil dijalankan, lanjutkan ke langkah 6 . Jika tidak, untuk menjalankan SHCA sesuai permintaan, pilih "Mulai eksekusi":
Pilih "Mulai eksekusi" lagi di jendela pop-up. Biarkan semua nilai default.
Gulir ke bagian bawah halaman dan tunggu hingga semua langkah berhasil diselesaikan. Anda akan melihat "Eksekusi Berhasil" di bagian bawah setelah selesai.
Navigasikan ke konsol Amazon S3 dan Temukan dan pilih bucket bernama "-resources-%YOUR_ACCOUNT_NUMBER%"
Dalam keranjang ini, navigasikan ke customer/compliance_scraper/
Unduh file zip artefak terbaru.
Tinjau file yang ada di dalam zip
Lihat KONTRIBUSI untuk informasi lebih lanjut.
Proyek ini dilisensikan di bawah Lisensi Apache-2.0.