SEC11-BP05 Pusatkan layanan untuk paket dan dependensi
Berikan layanan terpusat agar tim Anda dapat memperoleh paket perangkat lunak dan dependensi lainnya. Hal ini akan memungkinkan validasi paket sebelum paket disertakan dalam perangkat lunak yang Anda tulis, dan memberikan sumber data untuk analisis perangkat lunak yang digunakan dalam organisasi Anda.
Hasil yang diinginkan: Anda membangun beban kerja Anda dari paket perangkat lunak eksternal selain kode yang Anda tulis. Hal ini akan mempermudah Anda untuk mengimplementasikan fungsionalitas yang berulang kali digunakan, seperti pengurai JSON atau pustaka enkripsi. Anda memusatkan sumber untuk paket dan dependensi ini sehingga tim keamanan Anda dapat memvalidasinya sebelum digunakan. Anda menggunakan pendekatan ini sehubungan dengan alur pengujian manual dan otomatis untuk meningkatkan keyakinan terhadap kualitas perangkat lunak yang sedang Anda kembangkan.
Anti-pola umum:
-
Anda menarik paket dari repositori arbitrer di internet.
-
Anda tidak menguji paket baru sebelum menyediakannya kepada builder.
Manfaat menjalankan praktik terbaik ini:
-
Pemahaman lebih baik mengenai paket apa yang digunakan di perangkat lunak yang sedang dibangun.
-
Dapat memberi tahu tim beban kerja saat paket perlu diperbarui berdasarkan pemahaman siapa yang menggunakan apa.
-
Menurunkan risiko terjadinya penyertaan paket bermasalah di perangkat lunak Anda.
Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Sedang
Panduan implementasi
Sediakan layanan tersentralisasi untuk paket dan dependensi dengan cara yang mudah digunakan bagi builder. Layanan tersentralisasi dapat dipusatkan secara logis daripada diimplementasikan sebagai sistem monolitik. Pendekatan ini memungkinkan Anda menyediakan layanan dengan cara yang memenuhi kebutuhan builder Anda. Anda harus menerapkan cara-cara yang efisien untuk menambahkan paket ke repositori ketika ada pembaruan yang terjadi atau ada persyaratan baru yang muncul. Layanan-layanan AWS seperti AWS CodeArtifact
Langkah-langkah implementasi
Implementasikan layanan repositori tersentralisasi secara logis yang tersedia di semua lingkungan tempat perangkat lunak dikembangkan.
Sertakan akses ke repositori sebagai bagian dari proses vending Akun AWS.
Buat otomatisasi untuk menguji paket sebelum paket dipublikasikan ke sebuah repositori.
Pertahankan metrik paket yang paling sering digunakan, bahasa, dan tim dengan jumlah perubahan tertinggi.
-
Sediakan mekanisme otomatis untuk tim builder guna meminta paket baru dan memberikan umpan balik.
-
Pindai paket secara rutin di repositori Anda untuk mengidentifikasi adanya potensi dampak masalah yang baru ditemukan.
Sumber daya
Praktik-praktik terbaik terkait:
Dokumen terkait:
Contoh terkait:
-
Mempercepat deployment di AWS dengan tata kelola yang efektif
-
Perkuat keamanan paket Anda menggunakan toolkit CodeArtifact Package Origin Control
-
Menerbitkan Modul Node.js di AWS CodeArtifact dengan menggunakan AWS CodePipeline
(GitHub) -
Distribusikan paket.NET NuGet privat dengan AWS CodeArtifact
(GitHub)
Video terkait: