

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon Inspector SBOM 생성기
<a name="sbom-generator"></a>

 소프트웨어 자재 명세서(SBOM)는 소프트웨어를 빌드하는 데 필요한 [구성 요소, 라이브러리 및 모듈을 정식으로 구조화한 목록](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/software-bill-of-materials-sbom.html)입니다. Amazon Inspector SBOM 생성기(Sbomgen)는 아카이브, 컨테이너 이미지, 디렉토리, 로컬 시스템, 컴파일된 Go 및 Rust 바이너리에 대한 SBOM을 생성하는 도구입니다. Sbomgen은 설치된 패키지에 대한 정보가 포함된 파일을 스캔합니다. Sbomgen에서 관련 파일을 찾으면 패키지 이름, 버전 및 기타 메타데이터를 추출합니다. 그런 다음 Sbomgen은 패키지 메타데이터를 CycloneDX SBOM으로 변환합니다. 사용자는 Sbomgen을 사용하여 CycloneDX SBOM을 파일 또는 STDOUT으로 생성하고 취약성 탐지를 위해 SBOM을 Amazon Inspector로 전송할 수 있습니다. 또한 배포 파이프라인의 일부로 컨테이너 이미지를 자동으로 스캔하는 [CI/CD 통합](https://docs.aws.amazon.com/inspector/latest/user/scanning-cicd.html)의 일부로 Sbomgen을 사용할 수도 있습니다.

 Amazon Inspector는 여러 관리형 스캔 기능에 Sbomgen를 사용합니다. Amazon Inspector는 [Amazon EBS 볼륨 분석을 통해 Amazon ECR 컨테이너 이미지 스캔](https://docs.aws.amazon.com/inspector/latest/user/scanning-ecr.html), [AWS Lambda 함수 스캔](https://docs.aws.amazon.com/inspector/latest/user/scanning-lambda.html) 및 Amazon Elastic Compute Cloud 인스턴스의 [에이전트 없는 스캔을](https://docs.aws.amazon.com/inspector/latest/user/scanning-ec2.html#agentless) 수행할 때 백Sbomgen그라운드에서 호출하여 취약성 평가에 사용되는 소프트웨어 인벤토리를 생성합니다. 이 페이지에 설명된 독립 실행형 Sbomgen 도구는 동일한 기본 기술을 제공하므로 SBOM 생성을 워크플로에 직접 통합할 수 있습니다.

## 지원되는 패키지 유형
<a name="sbomgen-supported"></a>

 Sbomgen은 다음 패키지 유형에 대한 인벤토리를 수집합니다.
+  Alpine APK 
+  Debian/Ubuntu DPKG 
+  Red Hat RPM 
+  C\# 
+  Go 
+  Java 
+  Node.js 
+  PHP 
+  Python 
+  Ruby 
+  Rust 

## 지원되는 컨테이너 이미지 구성 검사
<a name="sbomgen-supported-configuration"></a>

 Sbomgen은 독립 실행형 Dockerfile과 기존 이미지의 빌드 이력을 스캔하여 보안 문제를 점검할 수 있습니다. 자세한 내용은 [Amazon Inspector Dockerfile 검사](https://docs.aws.amazon.com/inspector/latest/user/dockerfile-checks.html)를 참조하세요.

## Sbomgen 설치하기
<a name="install-sbomgen"></a>

 Sbomgen은 Linux 운영 체제에서만 사용할 수 있습니다.

 Sbomgen이 로컬에 캐시된 이미지를 분석하려면 Docker가 설치되어 있어야 합니다. `.tar` 파일로 내보낸 이미지나 원격 컨테이너 레지스트리에서 호스팅된 이미지를 분석하는 데는 Docker가 필요하지 않습니다.

 Amazon Inspector는 최소한 다음 하드웨어 사양을 갖춘 시스템에서 Sbomgen을 실행할 것을 권장합니다.
+ 4x 코어 CPU
+ 8GB RAM

**Sbomgen을(를) 설치하려면**

1.  아키텍처에 맞는 올바른 URL에서 최신 Sbomgen zip 파일을 다운로드합니다.

    Linux AMD64: [https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/amd64/inspector-sbomgen.zip](https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/amd64/inspector-sbomgen.zip) 

    Linux ARM64: [https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/arm64/inspector-sbomgen.zip](https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/arm64/inspector-sbomgen.zip) 

    또는 [Amazon Inspector SBOM 생성기 zip 파일의 이전 버전](https://docs.aws.amazon.com/inspector/latest/user/sbom-generator-versions.html)을 다운로드할 수 있습니다.

1.  다음 명령을 사용하여 다운로드를 압축 해제합니다.

    `unzip inspector-sbomgen.zip` 

1.  추출된 디렉터리에서 다음 파일을 확인합니다.
   +  `inspector-sbomgen` - SBOM을 생성하기 위해 실행하는 도구입니다.
   +  `README.txt` - Sbomgen 사용 설명서입니다.
   +  `LICENSE.txt` - 이 파일에는 Sbomgen에 대한 소프트웨어 라이선스가 들어 있습니다.
   +  `licenses` - 이 폴더에는 Sbomgen에서 사용하는 서드 파티 패키지의 라이선스 정보가 들어 있습니다.
   +  `checksums.txt` - 이 파일은 Sbomgen 도구의 해시를 제공합니다.
   +  `sbom.json` - Sbomgen 도구용 CycloneDX SBOM입니다.
   +  `WhatsNew.txt` - 이 파일에는 요약된 변경 로그가 포함되어 있으므로 Sbomgen 버전 간의 주요 변경 사항과 개선 사항을 빠르게 확인할 수 있습니다.

1.  (선택 사항) 다음 명령을 사용하여 도구의 신뢰성과 무결성을 확인합니다.

    `sha256sum < inspector-sbomgen` 

   1.  결과를 `checksums.txt` 파일 콘텐츠와 비교하세요.

1.  다음 명령을 사용하여 도구에 실행 권한을 부여합니다.

    `chmod +x inspector-sbomgen` 

1.  다음 명령을 실행하여 Sbomgen이 성공적으로 설치되었는지 확인합니다.

    `./inspector-sbomgen --version` 

    다음과 유사한 출력 화면이 표시되어야 합니다.

    `Version: 1.X.X ` 

## Sbomgen 사용
<a name="using-sbomgen"></a>

 이 단원에서는 Sbomgen을 사용할 수 있는 다양한 방법에 대해 설명합니다. 기본 제공 예제를 통해 Sbomgen 사용 방법에 대해 자세히 알아볼 수 있습니다. 이러한 예제를 보려면 `list-examples` 명령을 실행합니다.

```
./inspector-sbomgen list-examples
```

### 컨테이너 이미지에 대한 SBOM 생성 및 결과 출력
<a name="w2aac39c13b7"></a>

 Sbomgen을 사용하여 컨테이너 이미지에 대한 SBOM을 생성하고 결과를 파일로 출력할 수 있습니다. 이 기능은 `container` 하위 명령을 사용하여 활성화할 수 있습니다.

**명령 예제**  
 다음 스니펫에서 {{`image:tag`}}는 이미지 ID로 바꾸고, {{`output_path.json`}}은 저장하려는 출력 경로로 바꿀 수 있습니다.

```
# generate SBOM for container image
./inspector-sbomgen container {{--image image:tag}} -o {{output_path.json}}
```

**참고**  
 스캔 시간과 성능은 이미지 크기와 계층 수에 따라 달라집니다. 이미지가 작을수록 Sbomgen 성능이 향상될 뿐만 아니라 잠재적인 공격 표면도 줄어듭니다. 이미지가 작을수록 이미지 빌드, 다운로드, 업로드 시간도 단축됩니다.

 와 Sbomgen 함께 [`ScanSbom`](https://docs.aws.amazon.com/inspector/v2/APIReference/API_scan_ScanSbom.html)를 사용하는 경우 Amazon Inspector 스캔 API는 5,000개 이상의 패키지가 포함된 SBOMs 처리하지 않습니다. 이 시나리오에서 Amazon Inspector 스캔 API는 HTTP 400 응답을 반환합니다.

 이미지에 대용량 미디어 파일 또는 디렉터리가 포함된 경우 `--skip-files` 인수를 사용하여 Sbomgen에서 이를 제외하는 것이 좋습니다.

**예: 일반적인 오류 사례**  
 컨테이너 이미지 스캔은 다음 오류로 인해 실패할 수 있습니다.
+  `InvalidImageFormat` - 잘못된 형식의 컨테이너 이미지를 손상된 TAR 헤더, 매니페스트 파일 또는 구성 파일로 스캔할 때 발생합니다.
+  `ImageValidationFailure` - 일치하지 않는 Content-Length 헤더, 잘못된 매니페스트 다이제스트 또는 실패한 SHA256 체크섬 확인과 같은 컨테이너 이미지 구성 요소에 대해 체크섬 또는 콘텐츠 길이 검증이 실패할 때 발생합니다.
+  `ErrUnsupportedMediaType` - 이미지 구성 요소에 지원되지 않는 미디어 유형이 포함된 경우 발생합니다. 지원되는 미디어 유형에 대한 자세한 내용은 [지원되는 운영 체제 및 미디어 유형](https://docs.aws.amazon.com/inspector/latest/user/scanning-ecr.html#ecr-supported-media)을 참조하세요.

 Amazon Inspector는 `application/vnd.docker.distribution.manifest.list.v2+json` 미디어 유형을 지원하지 않습니다. 그러나 Amazon Inspector는 매니페스트 목록을 지원합니다. 매니페스트 목록을 사용하는 이미지를 스캔할 때 `--platform` 인수와 함께 사용할 플랫폼을 명시적으로 지정할 수 있습니다. `--platform` 인수를 지정하지 않으면 Amazon Inspector SBOM 생성기가 실행 중인 플랫폼을 기반으로 매니페스트를 자동으로 선택합니다.

### 디렉터리 및 아카이브에서 SBOM 생성
<a name="w2aac39c13b9"></a>

 Sbomgen을 사용하여 디렉터리 및 아카이브에서 SBOM을 생성할 수 있습니다. 이 기능은 `directory` 또는 `archive` 하위 명령을 사용하여 활성화할 수 있습니다. Amazon Inspector는 다운로드한 git 리포지토리와 같은 프로젝트 폴더에서 SBOM을 생성하려는 경우에 이 특성을 사용할 것을 권장합니다.

**명령 예제 1**  
 다음 스니펫은 디렉터리 파일에서 SBOM을 생성하는 하위 명령을 보여줍니다.

```
# generate SBOM from directory
./inspector-sbomgen directory --path /path/to/dir -o /tmp/sbom.json
```

**명령 예제 2**  
 다음 스니펫은 아카이브 파일에서 SBOM을 생성하는 하위 명령을 보여줍니다. `.zip`, `.tar`, `.tar.gz` 아카이브 형식만 지원됩니다.

```
# generate SBOM from archive file (tar, tar.gz, and zip formats only)
./inspector-sbomgen archive --path testData.zip -o /tmp/sbom.json
```

### Go 또는 Rust 컴파일된 바이너리에서 SBOM 생성
<a name="w2aac39c13c11"></a>

 Sbomgen을 사용하여 컴파일된 Go 및 Rust 바이너리에서 SBOM을 생성할 수 있습니다. 이 기능은 `binary` 하위 명령을 통해 활성화할 수 있습니다.

```
./inspector-sbomgen binary --path /path/to/your/binary
```

### 탑재된 볼륨에서 SBOM 생성
<a name="w2aac39c13c13"></a>

 Amazon Inspector SBOM 생성기를 사용하여 탑재된 볼륨에서 SBOM을 생성할 수 있습니다. 이 기능은 `volume` 하위 명령을 사용하여 활성화할 수 있습니다. 시스템에 탑재된 Amazon EBS 볼륨과 같은 스토리지 볼륨을 분석하려는 경우이 특성을 사용하는 것이 좋습니다. 디렉터리 하위 명령과 달리 탑재 볼륨 스캔은 OS 패키지 및 OS 정보를 감지합니다.

 Amazon EBS 볼륨을 Amazon Inspector SBOM 생성기가 설치된 Amazon EC2 인스턴스에 연결하고 해당 인스턴스에 탑재하여 스캔할 수 있습니다. 현재 다른 Amazon EC2 인스턴스에서 사용 중인 Amazon EBS 볼륨의 경우 볼륨의 Amazon EBS 스냅샷을 생성한 다음 스캔 목적으로 해당 스냅샷에서 새 Amazon EBS 볼륨을 생성할 수 있습니다. Amazon EBS에 대한 자세한 내용은 *Amazon Elastic Block Store 사용 설명서*에서 [Amazon EBS란?](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) 섹션을 참조하세요.

**명령 예제**  
 다음 코드 조각은 탑재된 볼륨에서 SBOM을 생성하는 하위 명령을 보여줍니다. `--path` 인수는 볼륨이 탑재되는 루트 디렉터리를 지정해야 합니다.

```
# generate SBOM from mounted volume
./inspector-sbomgen volume --path /mount/point/of/volume/root
```

**명령 예제**  
 다음 코드 조각은 `--exclude-suffix` 인수가 있는 특정 파일 경로를 제외하면서 탑재된 볼륨에서 SBOM을 생성하는 하위 명령을 보여줍니다. `--exclude-suffix` 인수는 볼륨에 대량 파일(예: 로그 파일 또는 미디어 파일)이 포함된 경우 특히 유용합니다. 경로가 지정된 접미사로 끝나는 파일 및 디렉터리는 스캔에서 제외되므로 스캔 시간과 메모리 사용량을 줄일 수 있습니다.

```
# generate SBOM from mounted volume with exclusions
./inspector-sbomgen volume --path /mount/point/of/volume/root \
--exclude-suffix .log \
--exclude-suffix cache
```

 대상 볼륨의 모든 파일 경로는 원래 경로로 정규화됩니다. 예를 들어, 파일이 포함된 `/mnt/volume`에 탑재된 볼륨을 `/mnt/volume/var/lib/rpm/rpmdb.sqlite`에서 스캔할 때 경로는 생성된 SBOM에서 `/var/lib/rpm/rpmdb.sqlite`로 정규화됩니다.

### 취약성 식별을 위해 Amazon Inspector로 SBOM 전송
<a name="w2aac39c13c15"></a>

 SBOM을 생성하는 것 외에도 Amazon Inspector 스캔 API에서 한 번의 명령으로 스캔을 위해 SBOM을 전송할 수 있습니다. Amazon Inspector는 SBOM의 내용을 평가하여 취약성이 있는지 확인한 후 조사 결과를 Sbomgen에 반환합니다. 사용자의 입력에 따라 조사 결과를 표시하거나 파일에 기록할 수 있습니다.

**참고**  
 이 기능을 사용하려면에 `InspectorScan-ScanSbom` 대한 읽기 권한이 AWS 계정 있는 활성이 있어야 합니다.

 이 기능을 활성화하려면 `--scan-sbom` 인수를 Sbomgen CLI에 전달합니다. `--scan-sbom` 인수를 Sbomgen 하위 명령 `archive`, `binary`, `container`, `directory`, `localhost` 중 하나에 전달할 수도 있습니다.

**참고**  
 Amazon Inspector 스캔 API는 5,000개 이상의 패키지가 있는 SBOMs 처리하지 않습니다. 이 시나리오에서 Amazon Inspector 스캔 API는 HTTP 400 응답을 반환합니다.

 다음 AWS CLI 인수를 사용하여 AWS 프로필 또는 IAM 역할을 통해 Amazon Inspector에 인증할 수 있습니다.

```
--aws-profile {{profile}}
--aws-region {{region}}
--aws-iam-role-arn {{role_arn}}
```

 다음 환경 변수를 Sbomgen에 제공하여 Amazon Inspector에 인증할 수도 있습니다.

```
AWS_ACCESS_KEY_ID=$access_key \
AWS_SECRET_ACCESS_KEY=$secret_key \
AWS_DEFAULT_REGION=$region \
./inspector-sbomgen {{arguments}}
```

 응답 형식을 지정하려면 `--scan-sbom-output-format cyclonedx` 인수 또는 `--scan-sbom-output-format inspector` 인수를 사용합니다.

**명령 예제 1**  
 이 명령은 최신 Alpine Linux 릴리스에 대한 SBOM을 생성하고, SBOM을 스캔하고, 취약성 결과를 JSON 파일에 기록합니다.

```
./inspector-sbomgen container --image alpine:latest \
                          --scan-sbom \
                          --aws-profile {{your_profile}} \
                          --aws-region {{your_region}} \
                          --scan-sbom-output-format cyclonedx \
                          --outfile /tmp/inspector_scan.json
```

**명령 예제 2**  
 이 명령은 AWS 자격 증명을 환경 변수로 사용하여 Amazon Inspector에 인증합니다.

```
AWS_ACCESS_KEY_ID=$your_access_key \
AWS_SECRET_ACCESS_KEY=$your_secret_key \
AWS_DEFAULT_REGION=$your_region \
./inspector-sbomgen container --image alpine:latest \
                          -o /tmp/sbom.json \
                          --scan-sbom \
                          --scan-sbom-output-format inspector
```

**명령 예제 3**  
 이 명령은 IAM 역할에 대한 ARN을 사용하여 Amazon Inspector에 인증합니다.

```
./inspector-sbomgen container --image alpine:latest \
                          --scan-sbom \
                          --aws-profile your_profile \
                          --aws-region your_region \
                          --outfile /tmp/inspector_scan.json
                          --aws-iam-role-arn arn:aws:iam::123456789012:role/{{your_role}}
```

### 추가 스캐너를 사용하여 탐지 기능 향상
<a name="w2aac39c13c17"></a>

 Amazon Inspector SBOM 생성기는 사용 중인 명령을 기반으로 사전 정의된 스캐너를 적용합니다.

**기본 스캐너 그룹**  
 각 Amazon Inspector SBOM 생성기 하위 명령은 다음과 같은 기본 스캐너 그룹을 자동으로 적용합니다.
+  `directory` 하위 명령의 경우: 바이너리, 프로그래밍 언어 패키지, dockerfile 스캐너 그룹 
+  `localhost` 하위 명령의 경우: os, 프로그래밍 언어 패키지, 추가 에코시스템 스캐너 그룹 
+  `container` 하위 명령의 경우: os, 프로그래밍 언어 패키지, 추가 에코시스템, dockerfile, 바이너리 스캐너 그룹 

**특수 스캐너**  
 기본 스캐너 그룹 이외의 스캐너를 포함하려면 `--additional-scanners` 옵션과 추가할 스캐너 이름을 차례로 사용합니다. 다음은 이를 수행하는 방법을 보여주는 예제입니다.

```
# Add WordPress installation scanner to directory scan
./inspector-sbomgen directory --path /path/to/directory/ --additional-scanners wordpress-installation -o output.json
```

 다음은 쉼표로 구분된 목록으로 여러 스캐너를 추가하는 방법을 보여주는 예제 명령입니다.

```
./inspector-sbomgen container --image image:tag --additional-scanners scanner1,scanner2 -o output.json
```

### 스캔할 최대 파일 크기를 조정하여 컨테이너 스캔 최적화
<a name="w2aac39c13c19"></a>

 컨테이너 이미지를 분석하고 처리할 때 Sbomgen는 기본적으로 200MB 이하의 파일을 스캔합니다. 200MB보다 큰 파일에는 패키지 메타데이터가 거의 포함되지 않습니다. 200MB를 초과하는 Go 또는 Rust 바이너리를 인벤토리할 때 누락이 발생할 수 있습니다. 크기 제한을 조정하려면 `--max-file-size` 인수를 사용합니다. 이렇게 하면 대용량 파일을 포함하도록 제한을 늘리고 대용량 파일을 제외하여 리소스 사용량을 줄이기 위해 제한을 줄일 수 있습니다.

**예제**  
 다음 예제에서는 `--max-file-size` 인수를 사용하여 파일 크기를 늘리는 방법을 보여줍니다.

```
# Increase the file size limit to scan files up to 300 MB
./inspector-sbomgen container --image alpine:latest \
--outfile /tmp/sbom.json \
--max-file-size 300000000
```

 이 설정을 조정하면 디스크 사용량, 메모리 사용량 및 전체 스캔 기간을 제어하는 데 도움이 됩니다.

### 컨테이너 이미지 풀 크기 제한
<a name="w2aac39c13c21"></a>

 컨테이너 이미지를 스캔하면가 계층을 Sbomgen 다운로드하기 전에 크기가 큰 이미지를 거부할 수 있습니다.는 이미지 매니페스트에서 각 계층의 압축된 크기를 Sbomgen 읽고 설정한 제한과 비교하므로 제한을 초과하는 이미지는 계층을 다운로드하지 않고 거부됩니다. `--image-max-pull-size` 및 `--layer-max-pull-size` 인수를 사용하여 이러한 제한을 바이트 단위로 설정합니다.
+  `--image-max-pull-size` - 모든 계층의 압축된 크기가 지정된 바이트 수보다 많은 경우 이미지를 거부합니다.
+  `--layer-max-pull-size` - 단일 계층의 압축 크기가 지정된 바이트 수를 초과할 경우 이미지를 거부합니다.

**참고**  
 두 인수 모두 컨테이너 스캔에만 적용되며 서로 독립적입니다. 각 기본값은 제한을 비활성화`0`하는 입니다.

**예제**  
 다음 예제에서는 계층의 압축 크기가 50GiB(`53687091200`바이트)를 초과하거나 단일 계층의 압축 크기가 10GiB(`10737418240`바이트)를 초과하는 경우 이미지를 거부합니다.

```
# Reject an oversized image before downloading any layer
./inspector-sbomgen container --image image:tag \
--outfile /tmp/sbom.json \
--image-max-pull-size 53687091200 \
--layer-max-pull-size 10737418240
```

### 파일 시스템 휴리스틱을 사용하여 스크래치 이미지 감지
<a name="w2aac39c13c23"></a>

 Sbomgen가 컨테이너 이미지의 운영 체제를 식별할 수 없는 경우 `--enable-scratch-heuristics` 인수를 사용하여 파일 시스템에 scratch 이미지를 나타내는 신호가 있는지 검사할 수 있습니다. 신호가 두 개 이상 있는 경우 `scratch` 대신 운영 체제 구성 요소에 Sbomgen 레이블을 지정합니다`unknown`. 식별된 운영 체제에는 레이블이 다시 지정되지 않습니다.

**참고**  
 이 인수는 실험용이며 컨테이너 스캔에만 적용되며 기본적으로 비활성화되어 있습니다.

 Sbomgen는 다음 신호를 평가하고 운영 체제 구성 요소에서 `amazon:inspector:sbom_generator:scratch:heuristic:*` 속성으로 감지하는 각 신호를 기록합니다.
+  `missing_lib_dir` - `/lib` 디렉터리가 없습니다.
+  `missing_bin_dir` - `/bin` 디렉터리가 없습니다.
+  `missing_var_dir` - `/var` 디렉터리가 없습니다.
+  `missing_shell` - 대화형 셸이 없습니다(, `sh`, `bash`, `zsh`, 또는 `ash` `dash`는 `/bin` 또는에서 `busybox` 찾을 수 없음`/usr/bin`).

**예제**  
 다음 예제에서는 `--enable-scratch-heuristics` 인수를 사용하는 방법을 보여줍니다.

```
# enable scratch image detection heuristics
./inspector-sbomgen container --image image:tag \
--outfile /tmp/sbom.json \
--enable-scratch-heuristics
```

**참고**  
 이 동작은 휴리스틱이며 거짓 긍정을 생성할 수 있습니다. 운영 체제 구성 요소만 변경합니다.

### 실행 중인 프로세스 메타데이터 수집
<a name="w2aac39c13c25"></a>

 localhost를 스캔할 때 `--collect-processes` 인수를 사용하여 호스트에서 Sbomgen 수집하는 실행 중인 프로세스에 대한 메타데이터로 구성 요소에 태그를 지정할 수 있습니다. 이렇게 하면 인벤토리 구성 요소를 해당 구성 요소에서 실행 중인 프로세스와 연관시킬 수 있습니다.

**참고**  
 이 인수는 기본적으로 옵트인되어 비활성화되어 있으며 localhost 스캔에만 적용됩니다. 다른 스캔 유형에 제공할 경우는 경고를 Sbomgen 기록하고 무시합니다.

 구성 요소가 실행 중인 프로세스와 일치하면는 해당 구성 요소에 다음 속성을 Sbomgen 추가합니다. 여기서 {{pid}}는 프로세스 ID입니다.
+  `amazon:inspector:sbom_generator:host:process_id:{{pid}}:path` - 일치하는 실행 프로세스의 실행 경로입니다. 예: `/usr/sbin/sshd`.
+  `amazon:inspector:sbom_generator:host:process_id:{{pid}}:started_at` - 프로세스가 시작된 시간, RFC 3339 형식(UTC), 예: `2026-08-26T15:43:40Z`.

**예제**  
 다음 예제에서는 `--collect-processes` 인수를 사용하는 방법을 보여줍니다.

```
# Tag components with running process metadata
./inspector-sbomgen localhost \
--outfile /tmp/sbom.json \
--collect-processes
```

### 진행률 표시기 비활성화
<a name="w2aac39c13c27"></a>

 Sbomgen은 CI/CD 환경에서 과도한 슬래시 문자를 초래할 수 있는 회전 진행률 표시기를 표시합니다.

```
INFO[2024-02-01 14:58:46]coreV1.go:53: analyzing artifact
|
\
/
|
\
/
INFO[2024-02-01 14:58:46]coreV1.go:62: executing post-processors
```

 `--disable-progress-bar` 인수를 사용하여 진행률 표시기를 비활성화할 수 있습니다.

```
./inspector-sbomgen container --image alpine:latest \
--outfile /tmp/sbom.json \
--disable-progress-bar
```

## Sbomgen을 사용하여 프라이빗 레지스트리에 인증
<a name="authenticating-private-registry"></a>

 프라이빗 레지스트리 인증 자격 증명을 제공하면 프라이빗 레지스트리에서 호스팅되는 컨테이너에서 SBOM을 생성할 수 있습니다. 이러한 자격 증명은 다음 방법을 통해 제공할 수 있습니다.

### 캐시된 자격 증명을 사용하여 인증(권장)
<a name="w2aac39c15b5"></a>

 이 방법을 사용하려면 컨테이너 레지스트리에 인증해야 합니다. 예를 들어 Docker를 사용하는 경우 Docker loging 명령 `docker login`을 사용하여 컨테이너 레지스트리에 인증할 수 있습니다.

1.  컨테이너 레지스트리에 인증합니다. 예를 들어 Docker를 사용하는 경우 Docker `login` 명령을 사용하여 레지스트리에 인증할 수 있습니다.

1.  컨테이너 레지스트리에 인증한 후 레지스트리에 있는 컨테이너 이미지에 Sbomgen을 사용합니다. 다음 예를 사용하려면 {{`image:tag`}}를 스캔할 이미지의 이름으로 바꾸세요.

```
./inspector-sbomgen container --image {{image:tag}}
```

### 대화형 방법을 사용한 인증
<a name="w2aac39c15b7"></a>

 이 방법의 경우 사용자 이름을 파라미터로 제공하면 Sbomgen에서 필요할 때 보안 암호 입력을 요구하는 메시지를 표시합니다.

 다음 예를 사용하려면 {{`image:tag`}}는 스캔할 이미지의 이름으로 바꾸고, {{`your_username`}}은 해당 이미지에 액세스할 수 사용자 이름으로 바꿉니다.

```
./inspector-sbomgen container --image {{image:tag}} --username {{your_username}}
```

### 비대화형 방법을 사용한 인증
<a name="w2aac39c15b9"></a>

 이 방법의 경우 암호 또는 레지스트리 토큰을 `.txt` 파일에 저장합니다.

**참고**  
 현재 사용자는 이 파일을 읽을 수만 있어야 합니다. 파일에는 암호 또는 토큰이 한 줄에 포함되어야 합니다.

 다음 예를 사용하려면 {{`your_username`}}은 사용자 이름으로, {{`password.txt`}}는 암호 또는 토큰이 한 줄에 포함된 `.txt` 파일로, {{`image:tag`}}는 스캔할 이미지의 이름으로 바꿉니다.

```
INSPECTOR_SBOMGEN_USERNAME={{your_username}} \
INSPECTOR_SBOMGEN_PASSWORD=`cat {{password.txt}}` \
./inspector-sbomgen container --image {{image:tag}}
```

## Sbomgen의 예시 출력
<a name="sbom-examples"></a>

다음은 Sbomgen을 사용하여 인벤토리에 추가된 컨테이너 이미지에 대한 SBOM의 예입니다.

### 컨테이너 이미지 SBOM
<a name="container-sbom-example"></a>

```
{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "serialNumber": "urn:uuid:828875ef-8c32-4777-b688-0af96f3cf619",
  "version": 1,
  "metadata": {
    "timestamp": "2023-11-17T21:36:38Z",
    "tools": [
      {
        "vendor": "Amazon Web Services, Inc. (AWS)",
        "name": "Amazon Inspector SBOM Generator",
        "version": "1.0.0",
        "hashes": [
          {
            "alg": "SHA-256",
            "content": "10ab669cfc99774786301a745165b5957c92ed9562d19972fbf344d4393b5eb1"
          }
        ]
      }
    ],
    "component": {
      "bom-ref": "comp-1",
      "type": "container",
      "name": "fedora:latest",
      "properties": [
        {
          "name": "amazon:inspector:sbom_generator:image_id",
          "value": "sha256:c81c8ae4dda7dedc0711daefe4076d33a88a69a28c398688090c1141eff17e50"
        },
        {
          "name": "amazon:inspector:sbom_generator:layer_diff_id",
          "value": "sha256:eddd0d48c295dc168d0710f70364581bd84b1dda6bb386c4a4de0b61de2f2119"
        }
      ]
    }
  },
  "components": [
    {
      "bom-ref": "comp-2",
      "type": "library",
      "name": "dnf",
      "version": "4.18.0",
      "purl": "pkg:pypi/dnf@4.18.0",
      "properties": [
        {
          "name": "amazon:inspector:sbom_generator:source_file_scanner",
          "value": "python-pkg"
        },
        {
          "name": "amazon:inspector:sbom_generator:source_package_collector",
          "value": "python-pkg"
        },
        {
          "name": "amazon:inspector:sbom_generator:source_path",
          "value": "/usr/lib/python3.12/site-packages/dnf-4.18.0.dist-info/METADATA"
        },
        {
          "name": "amazon:inspector:sbom_generator:is_duplicate_package",
          "value": "true"
        },
        {
          "name": "amazon:inspector:sbom_generator:duplicate_purl",
          "value": "pkg:rpm/fedora/python3-dnf@4.18.0-2.fc39?arch=noarch&distro=39&epoch=0"
        }
      ]
    },
    {
      "bom-ref": "comp-3",
      "type": "library",
      "name": "libcomps",
      "version": "0.1.20",
      "purl": "pkg:pypi/libcomps@0.1.20",
      "properties": [
        {
          "name": "amazon:inspector:sbom_generator:source_file_scanner",
          "value": "python-pkg"
        },
        {
          "name": "amazon:inspector:sbom_generator:source_package_collector",
          "value": "python-pkg"
        },
        {
          "name": "amazon:inspector:sbom_generator:source_path",
          "value": "/usr/lib64/python3.12/site-packages/libcomps-0.1.20-py3.12.egg-info/PKG-INFO"
        },
        {
          "name": "amazon:inspector:sbom_generator:is_duplicate_package",
          "value": "true"
        },
        {
          "name": "amazon:inspector:sbom_generator:duplicate_purl",
          "value": "pkg:rpm/fedora/python3-libcomps@0.1.20-1.fc39?arch=x86_64&distro=39&epoch=0"
        }
      ]
    }
  ]
}
```