Mengamankan Azure Pipelines

Layanan Azure DevOps | Azure DevOps Server 2022 | 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 seimbang dengan memberi tim fleksibilitas dan kekuatan yang mereka butuhkan untuk menjalankan alur mereka sendiri.

Catatan

Azure Pipelines adalah salah satu dari kumpulan Layanan Azure DevOps, semuanya dibangun di atas infrastruktur aman yang sama di Azure. Untuk memahami konsep utama sekeliling keamanan untuk semua Layanan Azure DevOps, lihat Gambaran Umum Perlindungan Data Azure DevOps dan Keamanan dan Identitas Azure DevOps.

Secara tradisional, organisasi menerapkan keamanan melalui penguncian draconian. Kode, alur, dan lingkungan produksi memiliki batasan yang parah pada akses dan penggunaan. 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 berulah seolah-olah lawan memiliki akses kontributor ke beberapa (jika tidak semua) repositori.

Tujuan dalam hal ini adalah untuk mencegah iklan tersebut menjalankan kode berbahaya dalam alur. Kode berbahaya dapat mencuri rahasia atau lingkungan produksi yang rusak. Tujuan lain adalah untuk mencegah paparan lateral terhadap proyek, alur, dan repositori lain dari alur yang disusupi.

Alur YAML menawarkan keamanan terbaik untuk Azure Pipelines Anda. Berbeda dengan alur build dan rilis klasik, alur YAML:

  • Dapat berupa kode yang ditinjau. Alur YAML tidak berbeda dari bagian kode lainnya. Anda dapat mencegah aktor jahat memperkenalkan langkah-langkah berbahaya di alur Anda dengan memberlakukan penggunaan Permintaan Pull untuk menggabungkan perubahan. Kebijakan cabang memudahkan Anda untuk menyiapkan ini.
  • Menyediakan manajemen akses sumber daya. Pemilik sumber daya memutuskan apakah alur YAML dapat mengakses sumber daya atau tidak. Serangan kontrol fitur keamanan ini seperti mencuri repositori lain. Persetujuan dan pemeriksaan menyediakan kontrol akses untuk setiap eksekusi alur.
  • Mendukung parameter runtime. Parameter runtime membantu Anda menghindari sejumlah masalah keamanan yang terkait dengan variabel, seperti Injeksi Argumen.

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. Seri ini juga mengasumsikan keakraban dengan Azure Pipelines, konstruksi keamanan Azure DevOps inti, dan Git.

Topik yang dicakup: