Mengamankan Azure Pipelines
Layanan Azure DevOps | Azure DevOps Server 2022 | Azure DevOps Server 2020
Azure Pipelines menghadirkan tantangan keamanan yang berbeda. Meskipun alur memungkinkan Anda menjalankan skrip atau menyebarkan kode ke lingkungan produksi, sangat penting untuk mencegahnya menjadi saluran untuk kode berbahaya. Menyeimbangkan keamanan dengan fleksibilitas dan daya yang diperlukan oleh tim pengembangan sangat penting.
Catatan
Azure Pipelines adalah bagian dari rangkaian Layanan Azure DevOps, semuanya dibangun di atas infrastruktur yang aman dalam Azure. Untuk mendapatkan pemahaman komprehensif tentang konsep keamanan di semua Layanan Azure DevOps, sebaiknya lihat sumber daya berikut:
Secara tradisional, organisasi memberlakukan keamanan melalui penguncian yang ketat. Kode, alur, dan lingkungan produksi menghadapi pembatasan akses yang parah. Meskipun pendekatan ini bekerja dengan baik di organisasi kecil dengan pengguna dan proyek terbatas, organisasi yang lebih besar menghadapi realitas yang berbeda. Dengan banyak kontributor memiliki akses ke kode, prinsip 'asumsikan pelanggaran' menjadi penting. Ini melibatkan operasi seolah-olah lawan memiliki akses kontributor ke repositori, mengharuskan kewaspadaan yang dikuatkan.
Untuk mencapai tujuan keamanan, pertimbangkan poin-poin berikut:
Cegah eksekusi kode berbahaya:
- Pastikan bahwa alur Anda dikonfigurasi untuk mencegah eksekusi kode berbahaya yang tidak sah, yang mencakup tugas-tugas berikut:
- Batasi akses ke rahasia dan kredensial sensitif.
- Validasi parameter input dan argumen untuk mencegah perilaku yang tidak diinginkan.
- Tinjau dan audit skrip alur untuk potensi risiko keamanan secara teratur.
- Terapkan praktik keamanan seperti:
- Gunakan kueri berparameter dalam skrip untuk mencegah injeksi SQL.
- Loloskan karakter khusus dalam argumen untuk menghindari injeksi perintah shell.
- Batasi izin untuk koneksi layanan alur.
- Pertimbangkan untuk menggunakan alur YAML, yang memberikan kontrol halus atas eksekusi dan kurang rentan terhadap risiko keamanan.
- Pastikan bahwa alur Anda dikonfigurasi untuk mencegah eksekusi kode berbahaya yang tidak sah, yang mencakup tugas-tugas berikut:
Mitigasi paparan lateral:
- Isolasi alur untuk mencegah pergerakan lateral dalam proyek dan repositori organisasi Anda.
- Batasi akses hanya ke repositori dan sumber daya yang diperlukan untuk setiap alur.
- Pantau aktivitas alur dan siapkan pemberitahuan untuk perilaku mencurigakan.
- Tinjau dan perbarui izin untuk meminimalkan paparan secara teratur.
Gunakan Alur YAML:
- Alur YAML menawarkan keuntungan berikut dalam hal keamanan:
- Tentukan langkah dan dependensi alur secara eksplisit.
- Kontrol versi untuk definisi alur.
- Hapus visibilitas ke dalam konfigurasi alur.
- Mengurangi risiko kesalahan konfigurasi yang tidak disengaja.
- Peninjauan kode dan permintaan pull:
- Perlakukan alur YAML seperti kode lainnya.
- Menerapkan permintaan pull untuk menggabungkan perubahan untuk mencegah langkah-langkah berbahaya.
- Gunakan kebijakan cabang untuk menyiapkan proses peninjauan ini.
- Manajemen akses sumber daya:
- Pemilik sumber daya mengontrol apakah alur YAML dapat mengakses sumber daya tertentu.
- Fitur keamanan ini mencegah serangan seperti mencuri repositori lain.
- Persetujuan dan pemeriksaan menyediakan kontrol akses untuk setiap eksekusi alur.
- Parameter runtime:
- Parameter runtime membantu menghindari masalah keamanan yang terkait dengan variabel, seperti Injeksi Argumen.
- Pertimbangkan untuk memigrasikan alur yang ada ke format YAML untuk meningkatkan keamanan dan keberlanjutan.
- Alur YAML menawarkan keuntungan berikut dalam hal keamanan:
Keamanan adalah proses yang sedang berlangsung, dan penilaian dan pembaruan reguler sangat penting. Alur YAML menawarkan keamanan terbaik untuk Azure Pipelines Anda.
Artikel berikut menguraikan rekomendasi untuk membantu Anda mengembangkan alur berbasis YAML yang aman: