

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

# Jalankan pemindaian kode diferensial dengan S3
<a name="run-diff-scan-s3"></a>

Jalankan pemindaian kode diferensial (diff) untuk menganalisis hanya baris yang diubah dalam kode sumber Anda, daripada melakukan pemindaian repositori penuh. Pemindaian diferensial lebih cepat daripada pemindaian penuh dan menghasilkan temuan yang ditargetkan untuk perubahan kode tertentu, menjadikannya ideal untuk validasi pra-penggabungan dalam alur kerja pengembangan.

Tidak seperti tinjauan kode berbasis permintaan tarik yang dipicu secara otomatis oleh peristiwa penyedia kontrol sumber pihak ketiga (lihat[Tinjau temuan keamanan kode dalam permintaan tarik](review-code-findings-github.md)), pemindaian diferensial dimulai secara terprogram melalui AWS Security Agent API atau SDK. Anda mengunggah file diff terpadu ke S3 dan mereferensikannya saat memulai pekerjaan peninjauan kode.

## Cara kerja pemindaian diferensial
<a name="_how_differential_scans_work"></a>

Pemindaian diferensial menganalisis perubahan kode Anda dalam konteks penuh repositori Anda. Saat Anda membuat sumber peninjauan kode dengan kode sumber yang diunggah ke S3, pemindaian diferensial menggunakan repositori lengkap sebagai konteks sambil memfokuskan temuan secara khusus pada baris yang diubah di diff Anda. Ini memungkinkan pemindaian untuk mengidentifikasi masalah keamanan yang timbul dari bagaimana perubahan Anda berinteraksi dengan kode yang ada — seperti alur otentikasi yang rusak, penanganan data yang tidak aman di seluruh modul, atau perubahan yang mengekspos kerentanan yang ada.

Proses pemindaian:. Anda mengunggah file diff terpadu (output`git diff`) ke bucket S3 yang terhubung ke Ruang Agen Anda. Anda memanggil `StartCodeReviewJob` API dengan `diffSource` parameter yang menunjuk ke lokasi S3 diff Anda. AWS Security Agent hanya menganalisis kode yang diubah dalam perbedaan untuk kerentanan keamanan dan kepatuhan terhadap persyaratan keamanan organisasi Anda. Temuan mencakup garis yang diubah, dengan peringkat keparahan, lokasi kode, dan panduan remediasi.

## Prasyarat
<a name="_prerequisites"></a>

Sebelum Anda mulai, pastikan Anda memiliki:
+ Ruang Agen dengan peninjauan kode diaktifkan (lihat[Aktifkan peninjauan kode](enable-code-review-scan.md))
+ Sumber daya peninjauan kode sudah dibuat untuk repositori target, dengan kode sumber lengkap yang diunggah ke bucket S3 terhubung ke Ruang Agen Anda. Repositori lengkap menyediakan konteks yang memungkinkan analisis lebih dalam tentang bagaimana perubahan Anda berinteraksi dengan kode yang ada. Lihat [Buat ulasan kode](perform-code-review-scan.md) petunjuk tentang cara membuat tinjauan kode dan mengunggah kode sumber.
+ Bucket S3 yang terhubung ke Ruang Agen Anda
+ Izin IAM untuk mengunggah ke bucket S3 dan menelepon `securityagent:StartCodeReviewJob` 
+ File diff terpadu yang dihasilkan dari perubahan kode Anda (misalnya, output dari) `git diff main..feature-branch`

**Tip**  
Untuk hasil yang paling akurat, pastikan sumber peninjauan kode Anda memiliki versi terbaru dari kode sumber lengkap Anda yang diunggah ke S3. Pemindaian diff menggunakan repositori lengkap ini sebagai konteks untuk memahami arsitektur aplikasi, aliran data, dan kontrol keamanan yang ada saat menganalisis baris yang diubah.

## Langkah 1: Buat file diff
<a name="_step_1_generate_a_diff_file"></a>

Hasilkan perbedaan terpadu yang mewakili perubahan kode yang ingin Anda pindai.

```
git diff main..feature-branch > changes.diff
```

Atau, buat diff untuk perubahan bertahap:

```
git diff --cached > changes.diff
```

**Tip**  
File diff harus dalam format diff terpadu standar. AWS Security Agent mem-parsing jalur file dan mengubah baris dari header diff untuk mencakup analisisnya.

## Langkah 2: Unggah perbedaan ke S3
<a name="_step_2_upload_the_diff_to_s3"></a>

Unggah file diff ke bucket S3 yang terhubung ke Ruang Agen Anda.

```
aws s3 cp changes.diff s3://my-security-agent-bucket/diffs/changes.diff
```

**penting**  
Bucket S3 haruslah yang sudah terhubung ke Ruang Agen Anda. Peran layanan IAM yang terkait dengan Ruang Agen Anda harus memiliki akses baca ke lokasi ini. Lihat [Aktifkan peninjauan kode](enable-code-review-scan.md) petunjuk tentang menghubungkan bucket S3.

## Langkah 3: Mulai pekerjaan peninjauan kode diferensial
<a name="_step_3_start_a_differential_code_review_job"></a>

Panggil `StartCodeReviewJob` API dengan `diffSource` parameter untuk memulai pemindaian diferensial.

### Menggunakan AWS CLI
<a name="_using_the_aws_cli"></a>

```
aws securityagent start-code-review-job \
  --agent-space-id "your-agent-space-id" \
  --code-review-id "your-code-review-id" \
  --diff-source '{"s3Uri": "s3://my-security-agent-bucket/diffs/changes.diff"}'
```

### Menggunakan AWS SDK (Python)
<a name="_using_the_aws_sdk_python"></a>

```
import boto3

client = boto3.client('securityagent')

response = client.start_code_review_job(
    agentSpaceId='your-agent-space-id',
    codeReviewId='your-code-review-id',
    diffSource={
        's3Uri': 's3://my-security-agent-bucket/diffs/changes.diff'
    }
)

print(f"Job started: {response['codeReviewJobId']}")
```

### Menggunakan AWS SDK () JavaScript/TypeScript
<a name="_using_the_aws_sdk_javascripttypescript"></a>

```
import { SecurityAgentClient, StartCodeReviewJobCommand } from '@aws-sdk/client-securityagent';

const client = new SecurityAgentClient({ region: 'us-east-1' });

const response = await client.send(new StartCodeReviewJobCommand({
  agentSpaceId: 'your-agent-space-id',
  codeReviewId: 'your-code-review-id',
  diffSource: {
    s3Uri: 's3://my-security-agent-bucket/diffs/changes.diff',
  },
}));

console.log(`Job started: ${response.codeReviewJobId}`);
```

API segera kembali dengan a `codeReviewJobId` dan `status` dari`IN_PROGRESS`.

## Langkah 4: Pantau pemindaian
<a name="_step_4_monitor_the_scan"></a>

Polling kode meninjau status pekerjaan sampai selesai.

```
aws securityagent get-code-review-job \
  --agent-space-id "your-agent-space-id" \
  --code-review-id "your-code-review-id" \
  --code-review-job-id "the-job-id"
```

Pekerjaan berlangsung melalui fase yang sama dengan tinjauan kode lengkap: Preflight → Analisis statis → Finalisasi. Pemindaian diferensial biasanya selesai lebih cepat daripada pemindaian penuh karena mereka menganalisis lebih sedikit baris kode.

## Langkah 5: Tinjau temuan
<a name="_step_5_review_findings"></a>

Setelah pekerjaan selesai, buat daftar temuan untuk pekerjaan peninjauan kode.

```
aws securityagent list-findings \
  --agent-space-id "your-agent-space-id" \
  --code-review-id "your-code-review-id" \
  --code-review-job-id "the-job-id"
```

Setiap temuan meliputi:
+ Deskripsi masalah keamanan
+ Tingkat keparahan (Kritis, Tinggi, Sedang, atau Rendah)
+ Lokasi kode yang mereferensikan baris tertentu dalam diff
+ Alasan risiko menjelaskan dampak potensial
+ Panduan remediasi

Untuk informasi lebih lanjut tentang memahami dan bertindak berdasarkan temuan, lihat[Tinjau temuan dari tinjauan kode](review-code-scan-findings.md).

## Kuota dan batas
<a name="_quotas_and_limits"></a>
+ Jumlah maksimum file yang diubah dalam diff: 3.000 file atau 5 MB total ukuran diff
+ Temuan dibatasi pada 30 per pemindaian, diprioritaskan berdasarkan tingkat keparahan (Kritikal > Tinggi> Sedang > Rendah)

## Langkah selanjutnya
<a name="_next_steps"></a>

Setelah menjalankan pemindaian diferensial:
+ Tinjau temuan dan terapkan panduan remediasi (lihat[Tinjau temuan dari tinjauan kode](review-code-scan-findings.md))
+ Aktifkan komentar permintaan tarik untuk peninjauan kode otomatis pada setiap permintaan tarik (lihat[Aktifkan tinjauan kode permintaan tarik untuk GitHub repositori](enable-code-review.md))
+ Jalankan tinjauan kode lengkap secara berkala untuk menangkap masalah di luar perubahan individual (lihat[Buat ulasan kode](perform-code-review-scan.md))
+ Gunakan integrasi IDE untuk menjalankan pemindaian diferensial langsung dari lingkungan pengembangan Anda (lihat) [Jalankan pemindaian keamanan kode dari IDE Anda](code-review-ide-integration.md)