Mengamankan Azure Pipelines
| Layanan Azure DevOps Azure DevOps Server 2020
Azure Pipelines menimbulkan tantangan keamanan yang unik. Anda dapat menggunakan alur untuk menjalankan skrip atau menyebarkan kode ke lingkungan produksi. Tetapi Anda ingin memastikan alur CI / CD Anda tidak menjadi jalan untuk menjalankan kode berbahaya. Anda juga ingin memastikan hanya kode yang ingin Anda sebarkan yang disebarkan. Keamanan harus diimbangi dengan memberi tim fleksibilitas dan kekuatan yang mereka butuhkan untuk menjalankan jaringan pipa mereka sendiri.
Catatan
Azure Pipelines adalah salah satu di antara kumpulan Layanan Azure DevOps, semuanya dibangun di atas infrastruktur aman yang sama di Azure. Untuk memahami konsep utama seputar keamanan untuk semua Layanan Azure DevOps, lihat Azure DevOps Ikhtisar Perlindungan Data dan Keamanan dan Identitas Azure DevOps.
Secara tradisional, organisasi menerapkan keamanan melalui penguncian yang kejam. Kode, pipa, dan lingkungan produksi memiliki pembatasan akses dan penggunaan yang ketat. Dalam organisasi kecil dengan beberapa pengguna dan proyek, sikap ini relatif mudah dikelola. Namun, itu tidak terjadi di organisasi yang lebih besar. Di mana banyak pengguna memiliki akses kontributor ke kode, seseorang harus "mengasumsikan pelanggaran". Dengan asumsi pelanggaran berarti berperilaku seolah-olah musuh memiliki akses kontributor ke beberapa (jika tidak semua) repositori.
Tujuan dalam hal ini adalah untuk mencegah musuh menjalankan kode berbahaya dalam pipa. Kode berbahaya dapat mencuri rahasia atau merusak lingkungan produksi. Tujuan lain adalah untuk mencegah paparan lateral ke proyek lain, pipa, dan repositori dari pipa yang dikompromikan.
Rangkaian artikel ini menguraikan rekomendasi untuk membantu Anda menyusun alur CI/CD berbasis YAML yang aman. Ini juga mencakup tempat-tempat di mana Anda dapat melakukan trade-off antara keamanan dan fleksibilitas. Serial ini juga mengasumsikan keakraban dengan Azure Pipelines, inti Azure DevOps konstruksi keamanan, dan Git.
Topik yang dibahas: