

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

# Menggunakan plugin Amazon Inspector Jenkins
<a name="cicd-jenkins"></a>

 JenkinsPlugin ini memanfaatkan biner [Amazon Inspector SBOM](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html#sbomgen-supported) Generator dan Amazon Inspector Scan API untuk menghasilkan laporan terperinci di akhir build, sehingga Anda dapat menyelidiki dan memulihkan risiko sebelum penerapan. Dengan Jenkins plugin Amazon Inspector, Anda dapat menambahkan pemindaian kerentanan Amazon Inspector ke pipeline Anda. Jenkins Pemindaian kerentanan Amazon Inspector dapat dikonfigurasi untuk lulus 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/](https://plugins.jenkins.io/amazon-inspector-image-scanner/). Langkah-langkah berikut menjelaskan cara mengatur plugin Amazon Inspector Jenkins. 

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

## Langkah 1. Mengatur sebuah Akun AWS
<a name="cicd-jenkins-enable"></a>

 Konfigurasikan Akun AWS dengan peran IAM yang memungkinkan akses ke Amazon Inspector Scan API. Untuk petunjuk, lihat [Menyiapkan AWS akun untuk menggunakan integrasi Amazon Inspector CI/CD](configure-cicd-account.md). 

## Langkah 2. Instal Plugin Amazon Inspector Jenkins
<a name="cicd-jenkins-install-jenkins-plugin"></a>

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

1.  Dari dasbor Jenkins, pilih **Kelola Jenkins**, lalu pilih **Kelola** Plugin. 

1.  Pilih **Tersedia**. 

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

## (Opsional) Langkah 3. Tambahkan kredensi docker ke Jenkins
<a name="cicd-jenkins-add-jenkins"></a>

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

 Prosedur berikut menjelaskan cara menambahkan kredensyal docker dari dasbor. Jenkins Jenkins 

1.  **Dari dasbor Jenkins, pilih **Manage Jenkins**, **Credentials, dan kemudian System.**** 

1.  Pilih **Kredensial global** lalu **Tambahkan** kredensyal. 

1.  Untuk **Jenis**, pilih **Nama pengguna dengan kata sandi**. 

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

1.  Masukkan detail Anda, lalu pilih **OK**. 

## (Opsional) Langkah 4. Tambahkan AWS kredensi
<a name="cicd-jenkins-add-aws-credentials"></a>

**catatan**  
 Hanya tambahkan AWS kredensyal jika Anda ingin mengautentikasi berdasarkan pengguna IAM. Jika tidak, lewati langkah ini. 

 Prosedur berikut menjelaskan cara menambahkan AWS kredensyal dari dasbor. Jenkins 

1.  **Dari dasbor Jenkins, pilih **Manage Jenkins**, **Credentials, dan kemudian System.**** 

1.  Pilih **Kredensial global** lalu **Tambahkan** kredensyal. 

1.  Untuk **Jenis**, pilih **AWS Credentials**. 

1.  Masukkan detail Anda, termasuk **ID Kunci Akses** dan **Kunci Akses Rahasia**, lalu pilih **OK**. 

## Langkah 5. Tambahkan dukungan CSS dalam Jenkins skrip
<a name="cicd-jenkins-add-css-support"></a>

 Prosedur berikut menjelaskan cara menambahkan dukungan CSS dalam Jenkins skrip. 

1.  Mulai ulang Jenkins. 

1.  Dari Dashboard, pilih **Manage Jenkins**, **Nodes**, **Built-in Node**, dan kemudian **Script Console**. 

1.  Di kotak teks, tambahkan baris`System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")`, lalu pilih **Jalankan**. 

## Langkah 6. Tambahkan Amazon Inspector Scan ke build Anda
<a name="cicd-jenkins-add-inspector-scan"></a>

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

### Amazon Inspector Scan ke build Anda dengan menambahkan langkah build dalam proyek Anda
<a name="w2aac39c17c19b5"></a>

1.  Pada halaman konfigurasi, gulir ke bawah ke **Build Steps**, dan pilih **Add build step**. Kemudian pilih **Amazon Inspector** Scan. 

1.  ****Pilih antara dua metode instalasi inspector-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 sedang digunakan. 

   1.  (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 inspector-sbomgen yang diunduh sebelumnya. 

    [Untuk informasi selengkapnya, lihat [Menginstal Amazon Inspector SBOM Generator (Sbomgen) di Amazon Inspector SBOM](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html#install-sbomgen) Generator.](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html) 

1.  Selesaikan yang berikut ini untuk menyelesaikan konfigurasi langkah pembuatan Amazon Inspector Scan: 

   1.  Masukkan **Id Gambar** Anda. Gambar dapat berupa 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]` 

      1.  Untuk file tar: `/path/to/image.tar` 

   1.  Pilih **Wilayah AWS**untuk mengirim permintaan pemindaian melalui. 

   1.  (Opsional) Untuk **Laporkan Nama Artifact, masukkan nama** kustom untuk artefak yang dihasilkan selama proses pembuatan. Ini membantu mengidentifikasi dan mengelolanya secara unik. 

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

   1.  (Opsional) Untuk **kredensyal Docker**, pilih nama pengguna Anda. Docker Lakukan ini hanya jika gambar kontainer Anda ada di repositori pribadi. 

   1.  (Opsional) Anda dapat memberikan metode AWS otentikasi yang didukung berikut: 

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

      1.  (Opsional) Untuk kredensyal **AWS, tentukan AWS kredensyal** yang akan diautentikasi berdasarkan pengguna IAM. 

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

   1.  (Opsional) Pilih **Aktifkan ambang kerentanan**. Dengan opsi ini, Anda dapat menentukan apakah build gagal jika kerentanan yang dipindai melebihi nilai. Jika semua nilai sama`0`, 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 CVEs dengan skor EPSS di atas nilai ditampilkan di konsol. 

1.  Pilih **Simpan**. 

### Tambahkan Amazon Inspector Scan ke build Anda menggunakan pipeline deklaratif Jenkins
<a name="w2aac39c17c19b7"></a>

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

**Untuk mengunduh pipeline SBOMGen deklaratif secara otomatis**
+  Untuk menambahkan Amazon Inspector Scan ke build, gunakan sintaks contoh berikut. Ganti *IMAGE\$1PATH* dengan jalur ke gambar Anda (seperti*alpine:latest*), *IAM\$1ROLE* dengan ARN dari peran IAM yang Anda konfigurasikan pada langkah 1, dan *ID* dengan ID Docker kredenal Anda jika Anda menggunakan repositori pribadi. Anda dapat mengaktifkan ambang kerentanan secara opsional 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 pipeline SBOMGen deklaratif secara manual**
+  Untuk menambahkan Amazon Inspector Scan ke build, gunakan sintaks contoh berikut. Ganti *SBOMGEN\$1PATH* dengan jalur ke Amazon Inspector SBOM Generator yang Anda instal di langkah 3, *IMAGE\$1PATH* dengan jalur ke gambar Anda (seperti*alpine:latest*), *IAM\$1ROLE* dengan ARN peran IAM yang Anda konfigurasikan pada langkah 1, dan *ID* dengan ID Docker kredenal Anda jika Anda menggunakan repositori pribadi. Anda dapat mengaktifkan ambang kerentanan secara opsional dan menentukan nilai untuk setiap tingkat keparahan. 

**catatan**  
 Tempatkan Sbomgen di direktori Jenkins, dan berikan jalur 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 terkadang dapat mendeteksi kerentanan yang bukan ancaman aktual. Untuk mencegah kesalahan positif ini menghentikan build, Anda dapat menambahkannya ke daftar yang *ditekan*. 

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

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

**Daftar CVE Gagal Otomatis**  
 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 harus 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
<a name="cicd-jenkin-view-vulnerability-report"></a>

1.  Selesaikan pembangunan baru proyek Anda. 

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

![\[Contoh laporan kerentanan Amazon Inspector.\]](http://docs.aws.amazon.com/id_id/inspector/latest/user/images/report.png)


**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 menggunakan`isThresholdEnabled`, Anda akan menemukan peringatan yang menyarankan Anda memperbarui parameter ke`isSeverityThresholdEnabled`. 

## Pemecahan masalah
<a name="jenkins-troubleshooting"></a>

 Berikut ini adalah kesalahan umum yang dapat Anda temui saat menggunakan plugin Amazon Inspector Scan untuk. Jenkins 

### Gagal memuat kredensi atau kesalahan pengecualian sts
<a name="w2aac39c17c23b5"></a>

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

**Resulltion**  
 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 tarball, lokal, atau sumber jarak jauh
<a name="w2aac39c17c23b7"></a>

**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 kontainer jarak jauh. 

**Penyelesaian:**  
 Verifikasi hal berikut; 
+  Pengguna plugin Jenkins telah membaca izin 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). 

### Kesalahan jalur inspektor-sbomgen
<a name="w2aac39c17c23b9"></a>

**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 Inspector-SBOMGEN yang benar di Jenkins direktori Untuk informasi selengkapnya, lihat Amazon Inspector SBOM Generator.](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html) 

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

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

1.  Simpan konfigurasi, dan jalankan Jenkins pekerjaan. 