View a markdown version of this page

Menggunakan Amazon Inspector Jenkins plugin - Amazon Inspector

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Amazon Inspector Jenkins plugin

JenkinsPlugin ini memanfaatkan biner Amazon Inspector SBOM Generator dan Amazon Inspector Scan API untuk menghasilkan laporan terperinci di akhir build Anda, sehingga Anda dapat menyelidiki dan memperbaiki risiko sebelum penerapan. Dengan Jenkins plugin Amazon Inspector, Anda dapat menambahkan pemindaian kerentanan Amazon Inspector ke Jenkins pipeline Anda. Pemindaian kerentanan Amazon Inspector dapat dikonfigurasi untuk melewati atau gagal eksekusi pipeline berdasarkan jumlah dan tingkat keparahan kerentanan yang terdeteksi. Anda dapat melihat versi terbaru Jenkins plugin di Jenkins pasar di https://plugins.jenkins.io/amazon-inspector-image-scanner/. Langkah-langkah berikut menjelaskan cara mengatur Jenkins plugin Amazon Inspector.

penting

Sebelum menyelesaikan langkah-langkah berikut, Anda harus memutakhirkan Jenkins ke versi 2.387.3 atau lebih tinggi agar plugin dapat berjalan.

Langkah 1. Menyiapkan Akun AWS

Konfigurasikan Akun AWS dengan peran IAM yang memungkinkan akses ke Amazon Inspector Scan API. Untuk petunjuk, lihat Menyiapkan AWS akun untuk menggunakan CI/CD integrasi Amazon Inspector.

Langkah 2. Instal Plugin Amazon Inspector Jenkins

Prosedur berikut menjelaskan cara menginstal plugin Amazon Inspector Jenkins dari Jenkins dasbor.

  1. Dari dasbor Jenkins, pilih Kel ola Jenkins, lalu pilih Kel ola Plugin.

  2. Pilih Tersedia.

  3. Dari tab Tersedia, cari Amazon Inspector Scan, lalu instal plugin.

(Opsional) Langkah 3. Tambahkan kredenSIAL docker ke Jenkins

catatan

Hanya tambahkan kredenSIAL docker jika image docker ada di repositori pribadi. Jika tidak, lewati langkah ini.

Prosedur berikut menjelaskan cara menambahkan kredenSIAL docker ke Jenkins dari Jenkins dasbor.

  1. Dari dasbor Jenkins, pilih Man age Jenkins, Cre dentials, dan kemudian System.

  2. Pilih kredenSIAL Global dan kemudian Tambahkan kredenSIAL.

  3. Untuk Jenis, pilih Nama pengguna dengan kata sandi.

  4. Untuk Lingkup, pilih Global (Jenkins, node, item, semua item anak, dll).

  5. Masukkan detail Anda, lalu pilih OK.

(Opsional) Langkah 4. Tambahkan AWS credentials

catatan

Hanya menambahkan AWS kredenSIAL jika Anda ingin mengotentikasi berdasarkan pengguna IAM. Jika tidak, lewati langkah ini.

Prosedur berikut menjelaskan cara menambahkan AWS kredenSIAL dari Jenkins dasbor.

  1. Dari dasbor Jenkins, pilih Man age Jenkins, Cre dentials, dan kemudian System.

  2. Pilih kredenSIAL Global dan kemudian Tambahkan kredenSIAL.

  3. Untuk Jenis, pilih AWS Credentials.

  4. Masukkan detail Anda, termasuk ID K unci Akses dan K unci Akses Rahasia, lalu pilih OK.

Langkah 5. Tambahkan dukungan CSS di a Jenkins script

Prosedur berikut menjelaskan cara menambahkan dukungan CSS dalam Jenkins skrip.

  1. Mulai ulang Jenkins.

  2. Dari Dasbor, pilih Kel ola Jenkins, Node, N Built-In ode , dan kemudian Konsol Skrip.

  3. Di kotak teks, tambahkan barisSystem.setProperty("hudson.model.DirectoryBrowserSupport.CSP", ""), lalu pilih J alankan.

Langkah 6. Tambahkan Amazon Inspector Scan ke build Anda

Anda dapat menambahkan Amazon Inspector Scan ke build Anda dengan menambahkan langkah build di proyek Anda atau dengan menggunakan pipeline Jenkins deklaratif.

Amazon Inspector Scan ke build Anda dengan menambahkan langkah build di proyek Anda

  1. Pada halaman konfigurasi, gulir ke bawah ke Langkah Bang un, dan pilih Tambahkan langkah pembuatan. Kemudian pilih Amazon Inspector Scan.

  2. Pilih antara dua metode instalasi inspektor-sbomgen: Otomatis atau Manual. Opsi otomatis memungkinkan plugin untuk mengunduh versi terbaru. Ini juga memastikan Anda selalu memiliki fitur terbaru, pembaruan keamanan, dan perbaikan bug.

    1. (Opsi 1) Pilih Otomatis untuk mengunduh versi terbaru dari inspector-sbomgen. Opsi ini secara otomatis mendeteksi sistem operasi dan arsitektur CPU yang saat ini digunakan.

    2. (Opsi 2) Pilih Manual jika Anda ingin mengatur biner Amazon Inspector SBOM Generator untuk pemindaian. Jika Anda memilih metode ini, pastikan untuk memberikan jalur lengkap ke versi inspektor-sbomgen yang diunduh sebelumnya.

    Untuk informasi selengkapnya, lihat Meng instal Amazon Inspector SBOM Generator (Sbomgen) di Amazon Inspector SBOM Generator.

  3. Lengkapi langkah berikut untuk menyelesaikan konfigurasi langkah pembuatan Amazon Inspector Scan:

    1. Masukkan Id Gambar Anda. Gambar bisa lokal, jarak jauh, atau diarsipkan. Nama gambar harus mengikuti konvensi Docker penamaan. Jika menganalisis gambar yang diekspor, berikan jalur ke file tar yang diharapkan. Lihat contoh jalur Id Gambar berikut:

      1. Untuk wadah lokal atau jarak jauh: NAME[:TAG|@DIGEST]

      2. Untuk file tar: /path/to/image.tar

    2. Pilih Wilayah AWS a untuk mengirim permintaan pemindaian.

    3. (Opsional) Untuk Nama Artefak Laporan, masukkan nama khusus untuk artefak yang dihasilkan selama proses pembuatan. Ini membantu mengidentifikasi dan mengelolanya secara unik.

    4. (Opsional) Untuk Le wati file, tentukan satu atau beberapa direktori yang ingin Anda kecualikan dari pemindaian. Pertimbangkan opsi ini untuk direktori yang tidak perlu dipindai karena ukurannya.

    5. (Opsional) Untuk kreden SIAL Docker, pilih Docker nama pengguna Anda. Lakukan ini hanya jika gambar kontainer Anda berada di repositori pribadi.

    6. (Opsional) Anda dapat menyediakan metode AWS otentikasi yang didukung berikut ini:

      1. (Opsional) Untuk peran IAM, berikan peran ARN (arn:aws:iam: :role/). AccountNumber RoleName

      2. (Opsional) Untuk kredenSIAL AWS, tentukan AWS kredenSIAL untuk diautentikasi berdasarkan pengguna IAM.

      3. (Opsional) Untuk nama AWS profil, berikan nama profil untuk diautentikasi menggunakan nama profil.

    7. (Opsional) Pilih Aktifkan ambang kerentanan. Dengan opsi ini, Anda dapat menentukan apakah build Anda gagal jika kerentanan yang dipindai melebihi nilai. Jika semua nilai sama0, build berhasil, terlepas dari berapa banyak kerentanan yang dipindai. Untuk skor EPSS, nilainya bisa dari 0 hingga 1. Jika kerentanan yang dipindai melebihi nilai, build gagal, dan semua CVE dengan skor EPSS di atas nilai ditampilkan di konsol.

  4. Pilih Simpan.

Tambahkan Amazon Inspector Scan ke build Anda menggunakan Jenkins pipa deklaratif

Anda dapat menambahkan Amazon Inspector Scan ke build menggunakan pipeline deklaratif Jenkins secara otomatis atau manual.

Untuk mengunduh pipa deklaratif SBOMgen secara otomatis
  • Untuk menambahkan Amazon Inspector Scan ke build, gunakan contoh sintaks berikut. Ganti IMAGE_PATH dengan jalur ke gambar Anda (sepertialpine:latest), IAM_ROLE dengan ARN dari peran IAM yang Anda konfigurasikan pada langkah 1, dan ID dengan ID Docker kredensi Anda jika Anda menggunakan repositori pribadi. Anda dapat secara opsional mengaktifkan ambang kerentanan dan menentukan nilai untuk setiap tingkat keparahan.

pipeline { agent any stages { stage('amazon-inspector-image-scanner') { steps { script { step([ $class: 'com.amazon.inspector.jenkins.amazoninspectorbuildstep.AmazonInspectorBuilder', archivePath: 'IMAGE_PATH', // Path to your container image or tar file awsRegion: 'REGION', // AWS region for scan requests iamRole: 'IAM ROLE', // IAM role ARN for authentication credentialId: 'Id', // Docker credentials (empty if public repo) awsCredentialId: 'AWS ID', // AWS credential ID for authentication awsProfileName: 'Profile Name', // AWS profile name to use sbomgenSkipFiles: '*.log,node_modules,/tmp/*', // Files/directories to exclude from scanning // Vulnerability threshold settings (updated parameter names) isSeverityThresholdEnabled: false, // Enable/disable build failure on vulnerability count countCritical: 0, // Max critical vulnerabilities before build fails countHigh: 0, // Max high vulnerabilities before build fails countMedium: 5, // Max medium vulnerabilities before build fails countLow: 10, // Max low vulnerabilities before build fails // EPSS (Exploit Prediction Scoring System) settings isEpssThresholdEnabled: false, // Enable/disable EPSS-based failure threshold epssThreshold: 0.7, // EPSS score threshold (0.0 to 1.0) // NEW FEATURE: CVE Suppression - ignore specific false positives isSuppressedCveEnabled: false, // Enable CVE suppression feature suppressedCveList: '', // Comma-separated list of CVEs to ignore in thresholds // NEW FEATURE: Auto-Fail CVEs - always fail on critical security issues isAutoFailCveEnabled: false, // Enable auto-fail CVE feature autoFailCveList: '' // Comma-separated list of CVEs that always fail build ]) } } } }
Untuk mengunduh pipa deklaratif SBOMgen secara manual
  • Untuk menambahkan Amazon Inspector Scan ke build, gunakan contoh sintaks berikut. Ganti SBOMGEN_PATH dengan jalur ke Amazon Inspector SBOM Generator yang Anda instal di langkah 3, IMAGE_PATH dengan jalur ke gambar Anda (sepertialpine:latest), IAM_ROLE dengan ARN dari peran IAM yang Anda konfigurasikan pada langkah 1, dan ID dengan ID Docker kredensi Anda jika Anda menggunakan repositori pribadi. Anda dapat secara opsional mengaktifkan ambang kerentanan dan menentukan nilai untuk setiap tingkat keparahan.

catatan

Tem Sbomgen patkan di direktori Jenkins, dan berikan path ke direktori Jenkins di plugin (seperti/opt/folder/arm64/inspector-sbomgen).

pipeline { agent any stages { stage('amazon-inspector-image-scanner') { steps { script { step([ $class: 'com.amazon.inspector.jenkins.amazoninspectorbuildstep.AmazonInspectorBuilder', archivePath: 'IMAGE_PATH', // Path to your container image or tar file awsRegion: 'REGION', // AWS region for scan requests iamRole: 'IAM ROLE', // IAM role ARN for authentication credentialId: 'Id', // Docker credentials (empty if public repo) awsCredentialId: 'AWS ID', // AWS credential ID for authentication awsProfileName: 'Profile Name', // AWS profile name to use sbomgenSkipFiles: '*.log,node_modules,/tmp/*', // Files/directories to exclude from scanning // Vulnerability threshold settings (updated parameter names) isSeverityThresholdEnabled: false, // Enable/disable build failure on vulnerability count countCritical: 0, // Max critical vulnerabilities before build fails countHigh: 0, // Max high vulnerabilities before build fails countMedium: 5, // Max medium vulnerabilities before build fails countLow: 10, // Max low vulnerabilities before build fails // EPSS (Exploit Prediction Scoring System) settings isEpssThresholdEnabled: false, // Enable/disable EPSS-based failure threshold epssThreshold: 0.7, // EPSS score threshold (0.0 to 1.0) // NEW FEATURE: CVE Suppression - ignore specific false positives isSuppressedCveEnabled: false, // Enable CVE suppression feature suppressedCveList: '', // Comma-separated list of CVEs to ignore in thresholds // NEW FEATURE: Auto-Fail CVEs - always fail on critical security issues isAutoFailCveEnabled: false, // Enable auto-fail CVE feature autoFailCveList: '' // Comma-separated list of CVEs that always fail build ]) } } } }

Plugin ini mencakup fitur untuk mengelola kerentanan keamanan.

Daftar CVE yang ditekan

Pemindaian kadang-kadang dapat mendeteksi kerentanan yang bukan ancaman aktual. Untuk mencegah kesalahan positif ini menghentikan build Anda, Anda dapat menambahkannya ke daftar yang ditekan.

isSuppressedCveEnabled: true, suppressedCveList: 'CVE-2023-1234,CVE-2023-5678'

Ini mengabaikan CV tertentu saat memeriksa apakah build Anda akan gagal. Anda hanya boleh menambahkan positif palsu ke daftar yang ditekan jika Anda mengatasinya. Setelah Anda menambahkan kerentanan ini ke daftar yang ditekan, CVE masih muncul di laporan keamanan Anda, tetapi tidak akan menyebabkan kegagalan build.

Auto-Fail Daftar CVE

Untuk kerentanan keamanan kritis, Anda dapat membuat daftar yang selalu menyebabkan build Anda gagal.

isAutoFailCveEnabled: true, autoFailCveList: 'CVE-2024-9999'

Ini selalu menyebabkan build Anda gagal, apa pun pengaturan yang Anda aktifkan. Anda hanya boleh membuat daftar ini untuk masalah keamanan prioritas tinggi yang tidak boleh digunakan. Daftar ini mengesampingkan semua pengaturan ambang batas lainnya untuk keamanan maksimum.

Langkah 7. Lihat laporan kerentanan Amazon Inspector Anda

  1. Selesaikan pembangunan baru proyek Anda.

  2. Setelah build selesai, pilih format output dari hasil. Jika Anda memilih HTML, Anda memiliki opsi untuk mengunduh laporan versi SBOM atau CSV JSON. Berikut ini menunjukkan contoh laporan HTML:

Contoh laporan kerentanan Inspektur Amazon.
catatan

Anda dapat menggunakan skrip yang lebih lama, karena plugin mendukung nama parameter lama. Namun, Anda akan menemukan peringatan di konsol yang menyarankan Anda memperbarui parameter ini ke yang lebih baru. Misalnya, jika Anda menggunakanisThresholdEnabled, Anda akan menemukan peringatan yang menyarankan Anda memperbarui parameter keisSeverityThresholdEnabled.

Pemecahan masalah

Berikut ini adalah kesalahan umum yang dapat Anda temui saat menggunakan plugin Amazon Inspector ScanJenkins.

Gagal memuat kredenSIAL atau kesalahan pengecualian sts

Kesalahan:

InstanceProfileCredentialsProvider(): Failed to load credentials or sts exception.

Resolusi

Dapatkan aws_access_key_id dan aws_secret_access_key untuk AWS akun Anda. Siapkan aws_access_key_id dan aws_secret_access_key masuk~/.aws/credentials.

Gagal memuat gambar dari sumber tarball, lokal, atau jarak jauh

Kesalahan:

2024/10/16 02:25:17 [ImageDownloadFailed]: failed to load image from tarball, local, or remote sources.

catatan

Kesalahan ini dapat terjadi jika plugin Jenkins tidak dapat membaca gambar kontainer, gambar kontainer tidak ditemukan di Docker mesin, dan gambar kontainer tidak ditemukan di registri wadah jarak jauh.

Penyelesaian:

Verifikasi yang berikut ini;

  • Pengguna plugin Jenkins memiliki izin membaca untuk gambar yang ingin Anda pindai.

  • Gambar yang ingin Anda pindai ada di Docker mesin.

  • URL gambar jarak jauh Anda benar.

  • Anda diautentikasi ke registri jarak jauh (jika ada).

Inspector-sbomgen kesalahan jalur

Kesalahan:

Exception:com.amazon.inspector.jenkins.amazoninspectorbuildstep.exception.SbomgenNotFoundException: There was an issue running inspector-sbomgen, is /opt/inspector/inspector-sbomgen the correct path?

Penyelesaian:

Selesaikan prosedur berikut untuk menyelesaikan masalah.

  1. Tempatkan arsitektur OS yang benar Inspector-sbomgen di Jenkins direktori Untuk informasi selengkapnya, lihat Amazon Inspector SBOM Generator.

  2. Berikan izin yang dapat dieksekusi ke biner menggunakan perintah berikut:chmod +x inspector-sbomgen.

  3. Berikan jalur Jenkins mesin yang benar di plugin, seperti/opt/folder/arm64/inspector-sbomgen.

  4. Simpan konfigurasi, dan jalankan Jenkins pekerjaan.