SEC11-BP06 Lakukan deployment perangkat lunak secara terprogram - Pilar Keamanan

SEC11-BP06 Lakukan deployment perangkat lunak secara terprogram

Lakukan deployment perangkat lunak secara terprogram jika memungkinkan. Pendekatan ini mengurangi kemungkinan terjadinya kegagalan deployment atau masalah tak terduga karena kesalahan manusia.

Hasil yang diinginkan: Meminimalkan campur tangan manusia dari data adalah prinsip utama pengembangan yang aman di AWS Cloud. Prinsip ini termasuk cara Anda melakukan deployment pada perangkat lunak.

Dengan tidak bergantung pada orang untuk men-deploy perangkat lunak, Anda akan mendapatkan manfaat peningkatan kredibilitas bahwa apa yang Anda uji adalah apa yang di-deploy, dan deployment dilakukan secara konsisten setiap kali dijalankan. Perangkat lunak tidak perlu diubah agar berfungsi di lingkungan yang berbeda. Menggunakan prinsip pengembangan aplikasi dua belas faktor, terutama eksternalisasi konfigurasi, memungkinkan Anda men-deploy kode yang sama ke beberapa lingkungan tanpa memerlukan perubahan. Menandatangani paket perangkat lunak secara kriptografis adalah cara yang baik untuk memastikan bahwa tidak ada yang berubah di antara lingkungan. Keseluruhan hasil dari pendekatan ini adalah penurunan risiko proses perubahan dan peningkatan konsistensi rilis perangkat lunak.

Antipola umum:

  • Men-deploy perangkat lunak secara manual ke tahap produksi.

  • Melakukan perubahan secara manual ke perangkat lunak agar dapat menyesuaikan dengan lingkungan yang berbeda.

Manfaat menjalankan praktik terbaik ini:

  • Peningkatan kredibilitas dalam proses rilis perangkat lunak.

  • Penurunan risiko kegagalan perubahan yang berdampak pada fungsionalitas bisnis.

  • Peningkatan jadwal rilis karena risiko terhadap perubahan lebih rendah.

  • Kapabilitas pengembalian (rollback) otomatis untuk peristiwa tidak terduga selama deployment.

  • Kemampuan untuk membuktikan secara kriptografis bahwa perangkat lunak yang diuji adalah perangkat lunak yang di-deploy.

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

Panduan implementasi

Buat struktur Akun AWS Anda untuk menghapus akses manusia yang persisten dari lingkungan dan gunakan alat CI/CD untuk melakukan deployment. Rancang aplikasi Anda sehingga data konfigurasi khusus lingkungan diperoleh dari sumber eksternal, seperti AWS Systems Manager Parameter Store. Tanda tangani paket setelah paket diuji, dan validasikan tanda tangan ini selama deployment. Konfigurasikan pipeline CI/CD Anda untuk mendorong kode aplikasi dan menggunakan canary untuk mengonfirmasi deployment yang berhasil. Gunakan alat seperti AWS CloudFormation atau AWS CDK untuk menentukan infrastruktur Anda, lalu gunakan AWS CodeBuild dan AWS CodePipeline untuk melakukan operasi CI/CD.

Langkah implementasi

  • Bangun pipeline CI/CD yang ditetapkan dengan baik untuk menyederhanakan proses deployment.

  • Menggunakan AWS CodeBuild dan AWS Code Pipeline untuk menyediakan kemampuan CI/CD mempermudah untuk mengintegrasikan pengujian keamanan ke jalur Anda.

  • Ikuti panduan pemisahan lingkungan di laporan resmi Mengatur Lingkungan AWS Anda Menggunakan Beberapa Akun.

  • Pastikan tidak ada akses manusia yang persisten ke lingkungan tempat beban kerja produksi berjalan.

  • Rancang aplikasi Anda untuk mendukung eksternalisasi data konfigurasi.

  • Pertimbangkan untuk men-deploy menggunakan model deployment blue/green.

  • Implementasikan canary untuk memvalidasi deployment perangkat lunak yang berhasil.

  • Gunakan alat kriptografis seperti AWS Signer atau AWS Key Management Service (AWS KMS) untuk menandatangani dan memverifikasi paket perangkat lunak yang Anda deploy.

Sumber daya

Praktik Terbaik Terkait:

Dokumen terkait:

Video terkait:

Contoh terkait: