View a markdown version of this page

SEC01-BP06 Otomatiskan deployment kontrol keamanan standar - AWS Well-Architected Framework

SEC01-BP06 Otomatiskan deployment kontrol keamanan standar

Terapkan praktik DevOps modern saat Anda mengembangkan dan melakukan deployment kontrol keamanan standar di seluruh lingkungan AWS Anda.  Tentukan kontrol dan konfigurasi keamanan standar menggunakan templat Infrastruktur sebagai Kode (IaC), catat perubahan dalam sistem kontrol versi, uji perubahan sebagai bagian dari pipeline CI/CD, dan otomatiskan deployment perubahan ke lingkungan AWS Anda.

Hasil yang diinginkan: Templat IaC menetapkan kontrol keamanan standar dan meng-commit-nya ke sistem kontrol versi.  Pipeline CI/CD diterapkan untuk mendeteksi perubahan serta mengotomatiskan pengujian dan deployment lingkungan AWS Anda.  Pagar pembatas diterapkan untuk mendeteksi dan memperingatkan kesalahan konfigurasi dalam templat sebelum melanjutkan ke deployment.  Beban kerja di-deploy ke lingkungan yang menerapkan kontrol standar.  Tim memiliki akses untuk melakukan deployment konfigurasi layanan yang disetujui melalui mekanisme mandiri.  Strategi pencadangan dan pemulihan yang aman diterapkan untuk konfigurasi kontrol, skrip, dan data terkait.

Antipola umum:

  • Membuat perubahan pada kontrol keamanan standar Anda secara manual, melalui konsol web atau antarmuka baris perintah.

  • Mengandalkan tim beban kerja individual untuk secara manual mengimplementasikan kontrol yang ditentukan oleh tim pusat.

  • Mengandalkan tim keamanan pusat untuk melakukan deployment kontrol tingkat beban kerja atas permintaan tim beban kerja.

  • Mengizinkan individu atau tim yang sama untuk mengembangkan, menguji, dan melakukan deployment skrip otomatisasi kontrol keamanan tanpa pemisahan tugas atau pemeriksaan dan keseimbangan yang tepat. 

Manfaat menjalankan praktik terbaik ini: Penggunaan templat untuk menentukan kontrol keamanan standar memungkinkan Anda melacak dan membandingkan perubahan dari waktu ke waktu menggunakan sistem kontrol versi.  Penggunaan otomatisasi untuk menguji dan melakukan deployment perubahan akan menghasilkan standardisasi dan prediktabilitas, sehingga meningkatkan peluang deployment yang berhasil dan mengurangi tugas manual yang berulang.  Penyediaan mekanisme mandiri bagi tim beban kerja untuk melakukan deployment layanan dan konfigurasi yang disetujui akan mengurangi risiko kesalahan konfigurasi dan kesalahan penggunaan. Hal ini juga membantu mereka memasukkan kontrol lebih awal dalam proses pengembangan.

Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan: Sedang

Panduan implementasi

Saat mengikuti praktik yang dijelaskan dalam SEC01-BP01 Pisahkan beban kerja menggunakan akun, Anda akan mendapatkan beberapa Akun AWS untuk berbagai lingkungan yang Anda kelola menggunakan AWS Organizations.  Meskipun masing-masing lingkungan dan beban kerja ini mungkin memerlukan kontrol keamanan yang berbeda, Anda dapat menstandardisasi beberapa kontrol keamanan di seluruh organisasi Anda.  Contohnya termasuk mengintegrasikan penyedia identitas terpusat, menentukan jaringan dan firewall, serta mengonfigurasi lokasi standar untuk menyimpan dan menganalisis log.  Sama seperti Anda dapat menggunakan infrastruktur sebagai kode (IaC) untuk menerapkan ketelitian pengembangan kode aplikasi yang sama terhadap penyediaan infrastruktur, Anda juga dapat menggunakan IaC untuk menentukan dan melakukan deployment kontrol keamanan standar Anda.

Jika memungkinkan, tentukan kontrol keamanan Anda secara deklaratif, misalnya dalam AWS CloudFormation, lalu simpan dalam sistem kontrol sumber.  Gunakan praktik DevOps untuk mengotomatiskan deployment kontrol Anda untuk rilis yang lebih dapat diprediksi, pengujian otomatis menggunakan alat seperti AWS CloudFormation Guard, dan mendeteksi penyimpangan antara kontrol yang Anda deploy dan konfigurasi yang Anda inginkan.  Anda dapat menggunakan layanan seperti AWS CodePipeline, AWS CodeBuild, dan AWS CodeDeploy untuk membuat pipeline CI/CD. Pertimbangkan panduan dalam Mengatur Lingkungan AWS Anda Menggunakan Beberapa Akun untuk mengonfigurasi layanan ini di akunnya sendiri yang terpisah dari pipeline deployment lainnya.

Anda juga dapat menentukan templat untuk menstandardisasi penentuan dan deployment Akun AWS, layanan, dan konfigurasi.  Teknik ini memungkinkan tim keamanan pusat mengelola penentuan ini dan menyediakannya kepada tim beban kerja melalui pendekatan mandiri.  Salah satu cara untuk mencapai hal ini adalah menggunakan Service Catalog, yang memungkinkan Anda memublikasikan templat sebagai produk yang dapat dimasukkan oleh tim beban kerja ke dalam deployment pipeline mereka sendiri.  Jika Anda menggunakan AWS Control Tower, templat dan kontrol tertentu tersedia sebagai titik awal.  Control Tower juga menyediakan kemampuan Account Factory, sehingga tim beban kerja dapat membuat Akun AWS yang baru menggunakan standar yang Anda tentukan.  Kemampuan ini membantu meniadakan dependensi pada tim pusat untuk menyetujui dan membuat akun baru ketika akun tersebut diperlukan oleh tim beban kerja Anda.  Anda mungkin memerlukan akun ini untuk mengisolasi komponen beban kerja yang berbeda-beda berdasarkan berbagai alasan, seperti fungsi yang diberikan, sensitivitas data yang diproses, atau perilakunya.

Langkah implementasi

  1. Tentukan cara Anda akan menyimpan dan memelihara templat Anda dalam sistem kontrol versi.

  2. Buat pipeline CI/CD untuk menguji dan menerapkan templat Anda.  Tentukan pengujian untuk memeriksa kesalahan konfigurasi dan bahwa templat tersebut mematuhi standar perusahaan Anda.

  3. Buat katalog templat standar bagi tim beban kerja untuk melakukan deployment Akun AWS dan layanan sesuai dengan kebutuhan Anda.

  4. Implementasikan strategi pencadangan dan pemulihan yang aman untuk konfigurasi kontrol, skrip, dan data terkait Anda.

Sumber daya

Praktik terbaik terkait:

Dokumen terkait:

Contoh terkait:

Alat terkait: