Bagikan melalui


Praktik terbaik keamanan

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Saat Anda menangani informasi dan data, terutama dalam solusi berbasis cloud seperti Azure DevOps Services, keamanan harus menjadi prioritas utama Anda. Meskipun Microsoft memastikan keamanan infrastruktur cloud yang mendasar, mengonfigurasi keamanan dalam Azure DevOps adalah tanggung jawab Anda.

Meskipun tidak wajib, memasukkan praktik terbaik dapat secara signifikan meningkatkan pengalaman dan meningkatkan keamanan Anda. Rekomendasi berikut dirancang untuk membantu Anda mempertahankan lingkungan Azure DevOps yang aman.

Mengamankan lingkungan Azure DevOps Anda

Gunakan praktik terbaik berikut untuk menghapus pengguna, meninjau peristiwa audit, dan mengintegrasikan dengan ID Microsoft Entra.

Menghapus pengguna

  • Hapus pengguna yang tidak aktif dari akun MSA:
    • Jika organisasi Anda menggunakan akun MSA, hapus langsung pengguna yang tidak aktif dari organisasi.
    • Sayangnya, tidak ada cara lain untuk mencegah akses bagi pengguna ini.
    • Perlu diingat bahwa Anda tidak dapat membuat kueri untuk item kerja yang ditetapkan ke akun MSA yang dihapus.
  • Nonaktifkan atau hapus akun pengguna Microsoft Entra:
    • Jika organisasi Anda tersambung ke ID Microsoft Entra, Anda dapat menonaktifkan atau menghapus akun pengguna Microsoft Entra sambil menjaga akun pengguna Azure DevOps tetap aktif.
    • Pendekatan ini memungkinkan Anda untuk terus mengkueri riwayat item kerja menggunakan ID pengguna Azure DevOps Anda.
  • Mencabut PAT pengguna:
    • Tinjau dan cabut TRO pengguna yang ada secara teratur.
    • PATs adalah token autentikasi penting, dan mengelolanya dengan aman sangat penting.
  • Cabut izin khusus yang diberikan kepada pengguna individual:
    • Mengaudit dan mencabut izin khusus apa pun yang diberikan ke akun pengguna individual.
    • Pastikan bahwa izin selaras dengan prinsip hak istimewa paling sedikit.
  • Menetapkan ulang pekerjaan dari pengguna yang dihapus:
    • Sebelum menghapus pengguna, menetapkan ulang item kerja apa pun yang mereka tangani.
    • Distribusikan beban kerja di antara anggota tim saat ini.

Menggunakan ID Microsoft Entra

  • Bidang tunggal untuk identitas:
    • Dengan menyambungkan Azure DevOps ke ID Microsoft Entra, Anda membuat sistem identitas terpadu.
    • Konsistensi di seluruh layanan mengurangi kebingungan dan meminimalkan risiko keamanan yang timbul dari kesalahan konfigurasi manual.
  • Tata kelola end-to-end:
    • Memanfaatkan ID Microsoft Entra memungkinkan Anda menerapkan tata kelola yang mendetail.
    • Tetapkan peran dan izin yang berbeda untuk grup Microsoft Entra tertentu di berbagai cakupan sumber daya.
    • Pendekatan ini memastikan akses terkontrol dan selaras dengan praktik terbaik keamanan.
  • Fitur keamanan:
    • MICROSOFT Entra ID memungkinkan fitur keamanan tambahan, seperti:
      • Autentikasi Multifaktor (MFA): Tingkatkan autentikasi pengguna dengan memerlukan beberapa faktor (misalnya, kata sandi dan verifikasi telepon).
      • Kebijakan akses bersyarah: Tentukan aturan akses berdasarkan kondisi (misalnya, lokasi, perangkat, atau tingkat risiko).

Untuk informasi lebih lanjut, baca artikel berikut:

Meninjau peristiwa audit

Setelah organisasi Anda didukung oleh Microsoft Entra, lakukan tugas berikut untuk meningkatkan keamanan dan memantau pola penggunaan:

  • Aktifkan audit:
    • Dalam kebijakan Keamanan Anda, aktifkan audit.
    • Audit membantu melacak dan mencatat peristiwa yang terkait dengan tindakan, izin, dan perubahan pengguna.
  • Meninjau peristiwa audit secara teratur:
    • Tinjau log audit secara berkala.
    • Cari pola penggunaan yang tidak terduga, terutama oleh administrator dan pengguna lain.

Mengamankan jaringan Anda

Fungsi berikut adalah cara efektif untuk meningkatkan keamanan jaringan Anda saat Anda bekerja dengan Azure DevOps.

  • Daftar IP yang diizinkan:
    • Siapkan daftar yang diizinkan untuk membatasi akses ke alamat IP tertentu.
    • Hanya izinkan lalu lintas dari sumber tepercaya, mengurangi permukaan serangan.
  • Enkripsi:
    • Selalu gunakan enkripsi untuk data saat transit dan saat tidak aktif.
    • Amankan saluran komunikasi menggunakan protokol seperti HTTPS.
  • Validasi sertifikat:
    • Validasi sertifikat saat membuat koneksi.
    • Pastikan bahwa sertifikat valid dan dikeluarkan oleh otoritas tepercaya.
  • Firewall aplikasi web (WAF):
    • Terapkan WAF untuk memfilter, memantau, dan memblokir lalu lintas berbasis web berbahaya.
    • WAF memberikan lapisan perlindungan tambahan terhadap serangan umum.

Untuk informasi selengkapnya, lihat Praktik terbaik manajemen aplikasi.


Izin terlingkup

Sistem menangani izin di berbagai tingkat—individu, koleksi, proyek, dan objek—dan menetapkannya ke satu atau beberapa grup bawaan secara default. Untuk meningkatkan keamanan, lakukan tindakan berikut:

  • Menyediakan akses minimal: Memberi pengguna dan layanan akses minimum yang diperlukan untuk melakukan fungsi bisnis mereka.
  • Nonaktifkan pewarisan:
    • Jika memungkinkan, nonaktifkan pewarisan.
    • Pewarisan secara tidak sengaja dapat memberikan akses atau izin kepada pengguna yang tidak terduga karena sifatnya yang diizinkan secara default.
    • Untuk informasi selengkapnya, lihat bagian tentang pewarisan izin

Untuk informasi selengkapnya tentang izin, lihat artikel berikut ini:

Izin tingkat proyek

  • Batasi akses ke proyek dan repositori:
    • Untuk mengurangi risiko kebocoran informasi sensitif dan menyebarkan kode yang tidak aman ke produksi, batasi akses ke proyek dan repositori.
    • Gunakan grup keamanan bawaan atau grup keamanan kustom untuk mengelola izin. Untuk informasi selengkapnya, lihat Memberikan atau membatasi izin untuk tugas tertentu.
  • Nonaktifkan "Izinkan proyek publik":
    • Di pengaturan kebijakan organisasi Anda, nonaktifkan opsi untuk membuat proyek publik.
    • Layanan Azure DevOps memungkinkan Anda beralih visibilitas proyek dari publik ke privat (dan sebaliknya).
    • Pengguna yang belum masuk ke organisasi Anda memiliki akses baca-saja ke proyek publik.
    • Pengguna yang masuk dapat diberikan akses ke proyek privat dan membuat perubahan yang diizinkan.
  • Batasi pembuatan proyek:
    • Mencegah pengguna membuat proyek baru untuk mempertahankan kontrol atas lingkungan Anda.

Akses tamu eksternal

  • Blokir akses tamu eksternal:
    • Nonaktifkan kebijakan "Izinkan undangan dikirim ke domain apa pun" untuk mencegah akses tamu eksternal.
    • Pertimbangkan langkah ini jika tidak ada kebutuhan bisnis untuk tamu eksternal.
  • Gunakan email atau UPN yang berbeda untuk akun pribadi dan bisnis Anda:
    • Meskipun diizinkan, gunakan alamat email atau nama prinsipal pengguna (UPN) yang berbeda untuk akun pribadi dan bisnis.
    • Praktik ini menghilangkan ambiguitas saat membedakan antara akun pribadi dan akun terkait kerja Anda.
  • Mengelompokkan pengguna tamu eksternal:
    • Tempatkan semua pengguna tamu eksternal dalam satu grup Microsoft Entra.
    • Kelola izin untuk grup ini dengan tepat.
    • Hapus penetapan langsung untuk memastikan aturan grup berlaku untuk pengguna ini. Untuk informasi selengkapnya, lihat Menambahkan aturan grup untuk menetapkan tingkat akses.
    • Mengevaluasi ulang aturan secara teratur pada tab Aturan grup di halaman Pengguna. Pertimbangkan perubahan keanggotaan grup apa pun di ID Microsoft Entra yang mungkin memengaruhi organisasi Anda. ID Microsoft Entra dapat memakan waktu hingga 24 jam untuk memperbarui keanggotaan grup dinamis. Aturan secara otomatis dievaluasi ulang setiap 24 jam dan setiap kali aturan grup berubah.

Untuk informasi selengkapnya, lihat Tamu B2B di ID Microsoft Entra.


Mengelola grup keamanan

Grup keamanan dan pengguna

Tabel berikut ini memperlihatkan rekomendasi untuk menetapkan izin ke grup keamanan dan grup pengguna.

Melakukan Jangan
Gunakan ID Microsoft Entra, Direktori Aktif, atau grup keamanan Windows saat Anda mengelola banyak pengguna. Jangan ubah izin default untuk grup Pengguna Valid Proyek. Grup ini dapat mengakses dan melihat informasi proyek.
Saat Anda menambahkan tim, pertimbangkan izin apa yang ingin Anda tetapkan kepada anggota tim yang perlu membuat dan memodifikasi jalur area, jalur perulangan, dan kueri. Jangan tambahkan pengguna ke beberapa grup keamanan yang berisi tingkat izin yang berbeda. Dalam kasus tertentu, tingkat izin Tolak dapat mengambil alih tingkat izin Izinkan .
Saat Anda menambahkan banyak tim, pertimbangkan untuk membuat grup kustom Administrator Tim tempat Anda mengalokasikan subset izin yang tersedia untuk Administrator Proyek. Jangan ubah penetapan default yang dibuat ke grup Pengguna Valid Proyek. Jika Anda menghapus atau mengatur Tampilkan informasi tingkat instans ke Tolak untuk salah satu grup Pengguna Valid Proyek, tidak ada pengguna dalam grup yang dapat mengakses proyek, koleksi, atau penyebaran apa pun yang Anda tetapkan izinnya.
Pertimbangkan untuk memberikan izin Kontribusi folder kueri item kerja kepada pengguna atau grup yang memerlukan kemampuan untuk membuat dan berbagi kueri item kerja untuk proyek. Jangan tetapkan izin yang dicatat sebagai Tetapkan hanya ke akun layanan ke akun pengguna.
Jaga grup sekecil mungkin. Akses harus dibatasi, dan grup harus sering diaudit.
Manfaatkan peran bawaan dan default ke Kontributor untuk pengembang. Admin ditetapkan ke kelompok keamanan Administrator Proyek untuk izin yang lebih tinggi, yang memungkinkannya mengonfigurasi izin keamanan.

Untuk informasi selengkapnya, lihat Grup pengguna yang valid.

Akses just-in-time untuk grup admin

Jika Anda memiliki akses Administrator Koleksi Proyek dan Administrator Proyek, Anda dapat mengubah konfigurasi organisasi atau proyek Anda. Untuk meningkatkan keamanan untuk grup administrator bawaan ini, pertimbangkan untuk menerapkan akses just-in-time menggunakan grup Microsoft Entra Privileged Identity Management (PIM). Pendekatan ini memungkinkan Anda untuk memberikan izin yang ditinggikan hanya jika diperlukan, mengurangi risiko yang terkait dengan akses permanen.

Mengonfigurasi akses

  1. Buat grup yang dapat ditetapkan peran di ID Microsoft Entra.
  2. Tambahkan grup Microsoft Entra Anda ke grup Azure DevOps.

Catatan

Saat Anda mengonfigurasi akses just-in-time menggunakan grup Microsoft Entra Privileged Identity Management (PIM), pastikan bahwa setiap pengguna dengan akses yang ditinggikan juga mempertahankan akses standar ke organisasi. Dengan cara ini, mereka dapat melihat halaman yang diperlukan dan merefresh izin sesuai kebutuhan.

Menggunakan akses

  1. Aktifkan akses Anda.
  2. Refresh izin Anda di Azure DevOps.
  3. Ambil tindakan yang memerlukan akses administrator.

Catatan

Pengguna telah meningkatkan akses di Azure DevOps hingga 1 jam setelah akses grup PIM mereka dinonaktifkan.

Akun layanan cakupan

  • Memahami akun layanan
  • Buat akun layanan tujuan tunggal:
    • Setiap layanan harus memiliki akun khusus untuk meminimalkan risiko.
    • Hindari menggunakan akun pengguna reguler sebagai akun layanan.
  • Ikuti konvensi penamaan dan dokumentasi:
    • Gunakan nama yang jelas dan deskriptif untuk akun layanan.
    • Dokumentasikan tujuan dan layanan terkait mereka.
  • Identifikasi dan nonaktifkan akun layanan yang tidak digunakan:
    • Tinjau dan identifikasi akun secara teratur tidak lagi digunakan.
    • Nonaktifkan akun yang tidak digunakan sebelum mempertimbangkan penghapusan.
  • Batasi hak istimewa:
    • Batasi hak istimewa akun layanan hingga minimum yang diperlukan.
    • Hindari hak masuk interaktif untuk akun layanan.
  • Gunakan identitas terpisah untuk pembaca laporan:
    • Jika Anda menggunakan akun domain untuk akun layanan, gunakan identitas yang berbeda untuk pembaca laporan.
    • Isolasi izin untuk mencegah akses yang tidak perlu. Untuk informasi selengkapnya, lihat Akun layanan dan dependensi.
  • Gunakan akun lokal untuk penginstalan grup kerja:
    • Saat menginstal komponen dalam grup kerja, gunakan akun lokal untuk akun pengguna.
    • Hindari akun domain dalam skenario ini. Untuk informasi selengkapnya, lihat Persyaratan akun layanan.
  • Manfaatkan koneksi layanan:
    • Gunakan koneksi layanan jika memungkinkan.
    • Mereka menyediakan cara yang aman untuk terhubung ke layanan tanpa meneruskan variabel rahasia langsung ke build.
    • Batasi koneksi ke kasus penggunaan tertentu.
  • Memantau aktivitas akun layanan:
    • Menerapkan audit dan membuat aliran audit.

Untuk informasi selengkapnya, lihat Jenis koneksi layanan umum.

Koneksi layanan cakupan

  • Cakupan koneksi layanan Azure Resource Manager :
    • Untuk membatasi akses, lingkup koneksi layanan Anda ke sumber daya dan grup tertentu. Hindari memberikan hak kontributor yang luas di seluruh langganan Azure.
    • Gunakan federasi identitas beban kerja untuk autentikasi. Ini memungkinkan koneksi layanan bebas rahasia di Azure Pipelines.
  • Gunakan federasi identitas beban kerja:
    • Federasi identitas beban kerja menggunakan OpenID Connect (OIDC) untuk mengautentikasi dengan sumber daya Azure tanpa menggunakan rahasia.
    • Anda dapat membuat federasi identitas beban kerja secara otomatis atau manual. Pertimbangkan pendekatan ini jika:
      • Anda memiliki peran Pemilik untuk langganan Azure Anda.
      • Anda tidak tersambung ke lingkungan Azure Stack atau Azure US Government.
      • Setiap tugas ekstensi Marketplace yang Anda gunakan mendukung federasi identitas beban kerja1.
  • Cakupan grup sumber daya:
    • Pastikan bahwa grup sumber daya hanya berisi Virtual Machines (VM) atau sumber daya yang diperlukan untuk proses build.
  • Hindari koneksi layanan klasik Azure:
    • Koneksi layanan klasik tidak memiliki opsi cakupan. Pilih koneksi layanan Azure Resource Manager modern sebagai gantinya.
  • Gunakan akun layanan tim khusus tujuan:
    • Autentikasi koneksi layanan menggunakan akun layanan tim khusus tujuan untuk menjaga keamanan dan kontrol.

Untuk informasi selengkapnya, lihat Jenis koneksi layanan umum.


Memilih cara autentikasi yang tepat

Pilih metode autentikasi Anda dari sumber berikut:

Pertimbangkan perwakilan layanan

Jelajahi alternatif seperti perwakilan layanan dan identitas terkelola:

  • Perwakilan layanan:
    • Mewakili objek keamanan dalam aplikasi Microsoft Entra.
    • Tentukan apa yang dapat dilakukan aplikasi di penyewa tertentu.
    • Siapkan selama pendaftaran aplikasi di portal Azure.
    • Dikonfigurasi untuk mengakses sumber daya Azure, termasuk Azure DevOps.
    • Berguna untuk aplikasi yang membutuhkan akses dan kontrol tertentu.
  • Identitas terkelola:
    • Mirip dengan perwakilan layanan aplikasi.
    • Berikan identitas untuk sumber daya Azure.
    • Izinkan layanan yang mendukung autentikasi Microsoft Entra untuk berbagi kredensial.
    • Azure menangani manajemen dan rotasi kredensial secara otomatis.
    • Ideal ketika Anda menginginkan manajemen detail login yang mulus.

Gunakan PAT dengan hemat

  • Cakupan PATs ke peran tertentu:
    • Tetapkan PATs hanya izin yang diperlukan untuk tugas tertentu. Hindari memberikan akses global ke beberapa organisasi atau repositori.
    • CAKUP PATS memastikan bahwa mereka memiliki hak istimewa minimum yang diperlukan, mengurangi risiko penyalahgunaan yang tidak disengaja.
  • Hindari menulis atau mengelola izin pada build dan rilis:
    • PATs tidak boleh menulis atau mengelola izin pada build, rilis, atau sumber daya penting lainnya.
    • Membatasi izin ini membantu mencegah tindakan yang tidak diinginkan yang dapat memengaruhi alur atau penyebaran Anda.
  • Atur tanggal kedaluwarsa dan rahasiakan PAT:
    • Selalu tetapkan tanggal kedaluwarsa untuk EK. Tinjau dan perbarui secara teratur sesuai kebutuhan.
    • Perlakukan PATs sebagai kritis sebagai kata sandi. Jaga kerahasiaannya dan hindari membagikannya secara publik atau hardcoding dalam kode aplikasi Anda.
  • Hindari hardcoding PATs dalam kode aplikasi:
    • Meskipun mungkin tampak nyaman, hindari menyematkan PATs langsung dalam kode Anda.
    • Sebagai gantinya, gunakan file konfigurasi aman atau variabel lingkungan untuk menyimpan dan mengambil PATs secara dinamis.
  • Mengaudit dan mencabut PAT yang tidak digunakan secara teratur:
    • Administrator harus secara berkala meninjau semua PAT menggunakan REST API.
    • Cabut PAT apa pun yang tidak lagi diperlukan atau tidak memenuhi kriteria yang direkomendasikan.

Untuk informasi selengkapnya, lihat artikel berikut ini:


Amankan Artefak Azure

  • Pastikan Anda memahami perbedaan antara admin umpan, proyek, dan koleksi proyek. Untuk informasi selengkapnya, lihat Mengonfigurasi pengaturan Azure Artifacts.
  • Atur izin umpan.

Mengamankan Azure Boards

Amankan Azure Pipelines

Kebijakan

  • Memerlukan peninjau di luar pemohon asli:
    • Memiliki setidaknya satu peninjau di luar pemohon asli memastikan proses peninjauan yang lebih menyeluruh.
    • Pemberi persetujuan berbagi kepemilikan bersama atas perubahan dan harus bertanggung jawab sama atas dampak potensial.
  • Perlu build CI untuk lulus:
    • Memerlukan build Integrasi Berkelanjutan (CI) untuk diteruskan sebelum menggabungkan PR menetapkan garis besar untuk kualitas kode.
    • Pemeriksaan CI mencakup kode linting, pengujian unit, dan pemindaian keamanan (misalnya, pemeriksaan virus dan kredensial).
  • Larang persetujuan mandiri oleh pemohon asli:
    • Mencegah pemohon PR asli menyetujui perubahan mereka sendiri.
    • Tindakan ini memastikan proses peninjauan yang tidak bias dan menghindari potensi konflik kepentingan.
  • Larang penyelesaian PR bahkan dengan suara "tunggu" atau "tolak":
    • Bahkan jika beberapa peninjau memilih untuk menunggu atau menolak, cegah penyelesaian PR.
    • Tindakan ini mendorong alamat semua umpan balik sebelum menggabungkan.
  • Reset suara peninjau kode pada perubahan yang didorong:
    • Ketika perubahan terbaru didorong ke PR, reset suara peninjau.
    • Tindakan ini memastikan bahwa peninjau mengevaluasi ulang kode yang diperbarui.
  • Kunci alur rilis ke cabang produksi tertentu:
    • Batasi alur rilis ke cabang tertentu (biasanya produksi atau utama).
    • Hindari penyebaran yang tidak disengaja dari cabang lain.
  • Terapkan variabel yang dapat diatur pada waktu antrean:
    • Aktifkan opsi "Terapkan yang dapat diatur pada waktu antrean" untuk variabel alur.
    • Tindakan ini mencegah pengguna mengesampingkan nilai variabel selama eksekusi alur.
  • Larang penimpaan variabel di editor:
    • Untuk variabel yang diatur di editor alur, larang penimpaan pengguna.
    • Tindakan ini mempertahankan konsistensi dan mencegah perubahan yang tidak diinginkan.

Agen

  • Berikan izin dengan hemat:
    • Batasi izin ke sekumpulan akun terkecil yang diperlukan.
    • Hindari akses yang terlalu permisif, mengurangi permukaan serangan.
  • Firewall pembatasan untuk agen yang dapat digunakan:
    • Konfigurasikan firewall agar sebatas mungkin sambil tetap memungkinkan agen berfungsi.
    • Menyerang keseimbangan antara keamanan dan kegunaan.
  • Memperbarui kumpulan agen secara teratur:
    • Selalu perbarui armada agen Anda dengan memperbarui agen secara teratur.
    • Tindakan ini memastikan bahwa kode yang rentan tidak berjalan, mengurangi risiko eksploitasi.
  • Kumpulan agen terpisah untuk artefak produksi:
    • Gunakan kumpulan agen yang berbeda untuk membangun artefak yang ditujukan untuk produksi.
    • Mengisolasi artefak produksi membantu mencegah penyebaran yang tidak disengaja dari cabang non-produksi.
  • Kumpulan sensitif segmen:
    • Buat kumpulan terpisah untuk beban kerja sensitif dan tidak sensitif.
    • Hanya izinkan kredensial dalam definisi build yang terkait dengan kumpulan yang sesuai.

Definisi

  • Gunakan YAML untuk definisi alur:
    • YAML (Namun Bahasa Markup Lain) adalah pendekatan yang direkomendasikan untuk menentukan alur.
    • Ini menawarkan keterlacakan untuk perubahan, sehingga lebih mudah untuk melacak modifikasi dari waktu ke waktu.
    • Selain itu, alur YAML dapat mematuhi pedoman persetujuan dan praktik kontrol versi.
  • Batasi akses edit ke definisi alur:
    • Batasi akses untuk mengedit definisi alur ke akun minimum yang diperlukan.
    • Dengan demikian, Anda mengurangi risiko perubahan yang tidak disengaja atau tidak sah.

Input

  • Sertakan pemeriksaan kewarasan untuk variabel dalam skrip build:
    • Terapkan pemeriksaan kewarasan dalam skrip build Anda untuk mengurangi potensi serangan injeksi perintah melalui variabel yang dapat diatur.
    • Pemeriksaan ini dapat memvalidasi nilai input dan mencegah perintah yang tidak diinginkan atau berbahaya.
  • Batasi jumlah variabel build "dapat diatur pada waktu rilis":
    • Atur variabel build sesegera mungkin agar "diatur pada waktu rilis."
    • Meminimalkan jumlah variabel tersebut mengurangi permukaan serangan dan menyederhanakan manajemen konfigurasi.

Tugas

  • Hindari sumber daya yang diambil dari jarak jauh:
    • Jika memungkinkan, hindari mengambil sumber daya dari URL eksternal selama proses build Anda.
    • Jika sumber daya jarak jauh diperlukan, gunakan penerapan versi dan pemeriksaan hash untuk memastikan integritas.
  • Hindari rahasia pengelogan:
    • Jangan pernah mencatat informasi sensitif, seperti rahasia atau kredensial, di log build Anda.
    • Rahasia pengelogan dapat mengeksposnya secara tidak sengaja dan membahayakan keamanan.
  • Gunakan Azure Key Vault untuk rahasia:
    • Alih-alih menyimpan rahasia langsung dalam variabel alur, gunakan Azure Key Vault.
    • Key Vault menyediakan cara yang aman untuk mengelola dan mengambil rahasia secara terpusat.
  • Batasi build yang berjalan terhadap cabang atau tag arbitrer:
    • Untuk alur penting keamanan, batasi pengguna agar tidak menjalankan build terhadap cabang atau tag apa pun.
    • Tentukan cabang atau tag resmi tertentu untuk mencegah eksekusi yang tidak disengaja atau tidak sah.
  • Nonaktifkan pewarisan untuk izin alur:
    • Izin yang diwariskan dapat terlalu luas dan mungkin tidak mencerminkan kebutuhan Anda secara akurat.
    • Nonaktifkan pewarisan dan atur izin secara eksplisit agar selaras dengan persyaratan keamanan Anda.
  • Batasi cakupan otorisasi pekerjaan:
    • Selalu batasi cakupan otorisasi pekerjaan hingga minimum yang diperlukan.
    • Menyempurnakan izin berdasarkan tugas tertentu yang dilakukan oleh setiap pekerjaan.

Repositori dan cabang

  • Memerlukan jumlah minimum peninjau:
    • Aktifkan kebijakan "Memerlukan jumlah minimum peninjau" untuk memastikan bahwa setiap permintaan pull menerima ulasan dari setidaknya dua pemberi persetujuan.
    • Ini mempromosikan tinjauan kode dan akuntabilitas menyeluruh.
  • Mengonfigurasi kebijakan keamanan khusus repositori:
    • Alih-alih kebijakan di seluruh proyek, sesuaikan kebijakan keamanan dengan setiap repositori atau cabang.
    • Kebijakan yang disesuaikan mengurangi risiko, menerapkan standar manajemen perubahan, dan meningkatkan kualitas kode.
  • Isolasi rahasia produksi dalam brankas kunci terpisah:
    • Simpan rahasia produksi secara terpisah di Azure Key Vault.
    • Batasi akses ke dasar yang perlu diketahui untuk mempertahankan pemisahan dari build non-produksi.
  • Memisahkan lingkungan pengujian dari produksi:
    • Hindari mencampur lingkungan pengujian dengan produksi.
    • Pastikan kredensial dan rahasia tidak digunakan dalam konteks non-produksi.
  • Nonaktifkan forking:
    • Menonaktifkan forking membantu mengelola keamanan.
    • Fork dapat berkembang biak, sehingga menantang untuk melacak keamanan di semua salinan.
  • Hindari memberikan rahasia ke build fork:
    • Menahan diri dari berbagi rahasia dengan build fork.
    • Rahasia harus tetap rahasia dan tidak diekspos ke fork.
  • Pertimbangkan untuk memicu build fork secara manual:
    • Memicu build secara manual untuk fork daripada mengizinkan pemicu otomatis.
    • Ini memberikan kontrol yang lebih baik atas pemeriksaan keamanan.
  • Gunakan agen yang dihosting Microsoft untuk build fork:
    • Manfaatkan agen yang dihosting Microsoft untuk build fork.
    • Agen-agen ini dipertahankan dan aman.
  • Pindai definisi build produksi di repositori Git:
    • Periksa definisi build produksi secara teratur yang disimpan di repositori Git proyek Anda.
    • Pindai info masuk atau informasi sensitif apa pun.
  • Mengonfigurasi pemeriksaan kontrol cabang untuk konteks produksi:
    • Siapkan pemeriksaan kontrol cabang untuk membatasi penggunaan koneksi sensitif (misalnya, prod-connection) ke alur yang berjalan dalam konteks cabang produksi.
    • Ini memastikan otorisasi yang tepat dan mencegah penyalahgunaan yang tidak disengaja.

Untuk informasi selengkapnya, lihat Pertimbangan keamanan lainnya.

Amankan Azure Repos

Paket Pengujian Azure yang Aman

Integrasi GitHub yang Aman

  • Gunakan alur OAuth alih-alih PAT:
    • Nonaktifkan autentikasi berbasis PAT untuk koneksi layanan GitHub.
    • Pilih alur OAuth, yang memberikan keamanan dan integrasi yang lebih baik.
  • Hindari identitas admin atau pemilik:
    • Jangan pernah mengautentikasi koneksi layanan GitHub menggunakan identitas yang merupakan administrator atau pemilik repositori apa pun.
    • Batasi izin ke tingkat yang diperlukan.
  • Hindari lingkup penuh PAT GitHub:
    • Jangan menggunakan GitHub PAT cakupan penuh untuk mengautentikasi koneksi layanan.
    • Gunakan token dengan izin minimum yang diperlukan.
  • Hindari akun GitHub pribadi sebagai koneksi layanan:
    • Jangan gunakan akun GitHub pribadi sebagai koneksi layanan di Azure DevOps.
    • Sebagai gantinya, buat akun layanan khusus atau gunakan akun tingkat organisasi.