기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
S3를 사용하여 차등 코드 스캔 실행
전체 리포지토리 스캔을 수행하는 대신 차등(diff) 코드 스캔을 실행하여 소스 코드에서 변경된 줄만 분석합니다. 차등 스캔은 전체 스캔보다 빠르며 특정 코드 변경을 대상으로 하는 결과를 생성하므로 개발 워크플로에서 사전 병합 검증에 적합합니다.
타사 소스 제어 공급자 이벤트( 참조풀 요청에서 코드 보안 조사 결과 검토)에 의해 자동으로 트리거되는 풀 요청 기반 코드 검토와 달리 차등 스캔은 AWS Security Agent API 또는 SDK를 통해 프로그래밍 방식으로 시작됩니다. 통합 diff 파일을 S3에 업로드하고 코드 검토 작업을 시작할 때 참조합니다.
차등 스캔 작동 방식
차등 스캔은 리포지토리의 전체 컨텍스트에서 코드 변경 사항을 분석합니다. 소스 코드가 S3에 업로드된 상태에서 코드 검토 리소스를 생성하면 차등 스캔은 전체 리포지토리를 컨텍스트로 사용하는 동시에 특히 diff에서 변경된 줄에 조사 결과를 집중합니다. 이를 통해 스캔은 인증 흐름 중단, 모듈 간 안전하지 않은 데이터 처리, 기존 취약성을 노출하는 변경 등 변경 사항이 기존 코드와 상호 작용하는 방식에서 발생하는 보안 문제를 식별할 수 있습니다.
스캔 프로세스: . Agent Space에 연결된 S3 버킷에 통합 diff 파일(의 출력git diff)을 업로드합니다. diff의 S3 위치를 가리키는 diffSource 파라미터를 사용하여 StartCodeReviewJob API를 호출합니다. AWS Security Agent는 diff의 변경된 코드만 분석하여 보안 취약성과 조직의 보안 요구 사항 준수를 확인합니다. 결과는 심각도 등급, 코드 위치 및 문제 해결 지침과 함께 변경된 줄로 범위가 지정됩니다.
사전 조건
시작하기 전에 다음을 갖추었는지 확인하세요.
-
코드 검토가 활성화된 에이전트 공간( 참조코드 검토 활성화)
-
대상 리포지토리에 대해 이미 생성된 코드 검토 리소스로, 전체 소스 코드가 에이전트 스페이스에 연결된 S3 버킷에 업로드됩니다. 전체 리포지토리는 변경 사항이 기존 코드와 상호 작용하는 방식을 심층적으로 분석할 수 있는 컨텍스트를 제공합니다. 코드 검토 생성 및 소스 코드 업로드에 대한 지침은 코드 검토 생성 섹션을 참조하세요.
-
에이전트 스페이스에 연결된 S3 버킷
-
S3 버킷에 업로드하고 호출할 수 있는 IAM 권한
securityagent:StartCodeReviewJob -
코드 변경에서 생성된 통합 diff 파일(예:의 출력
git diff main..feature-branch)
작은 정보
가장 정확한 결과를 얻으려면 코드 검토 리소스에 전체 소스 코드의 최신 버전이 S3에 업로드되어 있는지 확인하세요. diff 스캔은이 전체 리포지토리를 컨텍스트로 사용하여 변경된 라인을 분석할 때 애플리케이션 아키텍처, 데이터 흐름 및 기존 보안 제어를 이해합니다.
1단계: diff 파일 생성
스캔하려는 코드 변경 사항을 나타내는 통합 diff를 생성합니다.
git diff main..feature-branch > changes.diff
또는 스테이징된 변경 사항에 대한 차이를 생성합니다.
git diff --cached > changes.diff
작은 정보
diff 파일은 표준 통합 diff 형식이어야 합니다. AWS Security Agent는 파일 경로를 구문 분석하고 diff 헤더에서 줄을 변경하여 분석 범위를 지정합니다.
2단계: S3에 차이 업로드
에이전트 스페이스에 연결된 S3 버킷에 diff 파일을 업로드합니다.
aws s3 cp changes.diff s3://my-security-agent-bucket/diffs/changes.diff
중요
S3 버킷은 에이전트 스페이스에 이미 연결된 버킷이어야 합니다. 에이전트 스페이스와 연결된 IAM 서비스 역할에는이 위치에 대한 읽기 액세스 권한이 있어야 합니다. S3 버킷 연결에 대한 지침은 코드 검토 활성화 섹션을 참조하세요.
3단계: 차등 코드 검토 작업 시작
diffSource 파라미터로 StartCodeReviewJob API를 호출하여 차등 스캔을 시작합니다.
AWS CLI 사용
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"}'
AWS SDK(Python) 사용
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']}")
AWS SDK(JavaScript/TypeScript) 사용
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는 status의 codeReviewJobId 및와 함께 즉시 반환됩니다IN_PROGRESS.
4단계: 스캔 모니터링
코드 검토 작업 상태가 완료될 때까지 폴링합니다.
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"
작업은 전체 코드 검토와 동일한 단계인 사전 처리 → 정적 분석 → 완료로 진행됩니다. 차등 스캔은 일반적으로 전체 스캔보다 더 빠르게 완료됩니다. 코드 줄을 더 적게 분석하기 때문입니다.
5단계: 조사 결과 검토
작업이 완료되면 코드 검토 작업에 대한 결과를 나열합니다.
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"
각 조사 결과에는 다음이 포함됩니다.
-
보안 문제에 대한 설명
-
심각도 수준(심각, 높음, 중간 또는 낮음)
-
diff의 특정 줄을 참조하는 코드 위치
-
잠재적 영향을 설명하는 위험 추론
-
수정 지침
조사 결과를 이해하고 이에 대한 조치를 취하는 방법에 대한 자세한 내용은 섹션을 참조하세요코드 검토의 결과 검토.
할당량 및 제한
-
diff의 최대 변경된 파일 수: 파일 3,000개 또는 총 diff 크기 5MB
-
결과는 심각도에 따라 우선순위가 지정된 스캔당 30개로 제한됩니다(심각 > 높음 > 중간 > 낮음).
다음 단계
차등 스캔을 실행한 후:
-
조사 결과 검토 및 문제 해결 지침 적용( 참조코드 검토의 결과 검토)
-
모든 풀 요청에 대한 자동 코드 검토를 위해 풀 요청 설명 활성화( 참조GitHub 리포지토리에 대한 풀 요청 코드 검토 활성화)
-
정기적으로 전체 코드 검토를 실행하여 개별 변경 사항 이외의 문제를 파악합니다( 참조코드 검토 생성).
-
IDE 통합을 사용하여 개발 환경에서 직접 차등 스캔을 실행합니다( 참조IDE에서 코드 보안 스캔 실행).