Amazon Inspector를 사용하여 SBOM 내보내기
소프트웨어 자재 명세서(SBOM)는 코드베이스에 있는 모든 오픈 소스 및 타사 소프트웨어 구성 요소의 중첩된 인벤토리입니다. Amazon Inspector는 사용 환경의 개별 리소스에 대한 SBOM을 제공합니다. Amazon Inspector 콘솔 또는 Amazon Inspector API를 사용하여 리소스에 대한 SBOM을 생성할 수 있습니다. Amazon Inspector에서 지원하고 모니터링하는 모든 리소스에 대한 SBOM을 내보낼 수 있습니다. 내보낸 SBOM은 소프트웨어 공급에 대한 정보를 제공합니다. AWS 환경의 적용 범위를 평가하여 리소스 상태를 검토할 수 있습니다. 이 단원에서는 SBOM을 구성하고 내보내는 방법에 대해 설명합니다.
참고
현재 Amazon Inspector는 Windows Amazon EC2 인스턴스에 대한 SBOM 내보내기를 지원하지 않습니다.
Amazon Inspector 형식
Amazon Inspector는 CycloneDX 1.4 및 SPDX 2.3 호환 형식으로 SBOM 내보내기를 지원합니다. Amazon Inspector는 선택한 Amazon S3 버킷에 SBOM을 JSON
파일로 내보냅니다.
참고
Amazon Inspector에서 내보내는 SPDX 형식은 SPDX 2.3을 사용하는 시스템과 호환되지만, Creative Commons Zero(CC0) 필드가 포함되어 있지 않습니다. 이 필드가 포함되어 있으면 사용자가 자료를 재배포하거나 편집할 수 있기 때문입니다.
{ "bomFormat": "CycloneDX", "specVersion": "1.4", "version": 1, "metadata": { "timestamp": "2023-06-02T01:17:46Z", "component": null, "properties": [ { "name": "imageId", "value": "sha256:c8ee97f7052776ef223080741f61fcdf6a3a9107810ea9649f904aa4269fdac6" }, { "name": "architecture", "value": "arm64" }, { "name": "accountId", "value": "111122223333" }, { "name": "resourceType", "value": "AWS_ECR_CONTAINER_IMAGE" } ] }, "components": [ { "type": "library", "name": "pip", "purl": "pkg:pypi/pip@22.0.4?path=usr/local/lib/python3.8/site-packages/pip-22.0.4.dist-info/METADATA", "bom-ref": "98dc550d1e9a0b24161daaa0d535c699" }, { "type": "application", "name": "libss2", "purl": "pkg:dpkg/libss2@1.44.5-1+deb10u3?arch=ARM64&epoch=0&upstream=libss2-1.44.5-1+deb10u3.src.dpkg", "bom-ref": "2f4d199d4ef9e2ae639b4f8d04a813a2" }, { "type": "application", "name": "liblz4-1", "purl": "pkg:dpkg/liblz4-1@1.8.3-1+deb10u1?arch=ARM64&epoch=0&upstream=liblz4-1-1.8.3-1+deb10u1.src.dpkg", "bom-ref": "9a6be8907ead891b070e60f5a7b7aa9a" }, { "type": "application", "name": "mawk", "purl": "pkg:dpkg/mawk@1.3.3-17+b3?arch=ARM64&epoch=0&upstream=mawk-1.3.3-17+b3.src.dpkg", "bom-ref": "c2015852a729f97fde924e62a16f78a5" }, { "type": "application", "name": "libgmp10", "purl": "pkg:dpkg/libgmp10@6.1.2+dfsg-4+deb10u1?arch=ARM64&epoch=2&upstream=libgmp10-6.1.2+dfsg-4+deb10u1.src.dpkg", "bom-ref": "52907290f5beef00dff8da77901b1085" }, { "type": "application", "name": "ncurses-bin", "purl": "pkg:dpkg/ncurses-bin@6.1+20181013-2+deb10u3?arch=ARM64&epoch=0&upstream=ncurses-bin-6.1+20181013-2+deb10u3.src.dpkg", "bom-ref": "cd20cfb9ebeeadba3809764376f43bce" } ], "vulnerabilities": [ { "id": "CVE-2022-40897", "affects": [ { "ref": "a74a4862cc654a2520ec56da0c81cdb3" }, { "ref": "0119eb286405d780dc437e7dbf2f9d9d" } ] } ] }
{ "name": "409870544328/EC2/i-022fba820db137c64/ami-074ea14c08effb2d8", "spdxVersion": "SPDX-2.3", "creationInfo": { "created": "2023-06-02T21:19:22Z", "creators": [ "Organization: 409870544328", "Tool: Amazon Inspector SBOM Generator" ] }, "documentNamespace": "EC2://i-022fba820db137c64/AMAZON_LINUX_2/null/x86_64", "comment": "", "packages": [{ "name": "elfutils-libelf", "versionInfo": "0.176-2.amzn2", "downloadLocation": "NOASSERTION", "sourceInfo": "/var/lib/rpm/Packages", "filesAnalyzed": false, "externalRefs": [{ "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", "referenceLocator": "pkg:rpm/elfutils-libelf@0.176-2.amzn2?arch=X86_64&epoch=0&upstream=elfutils-libelf-0.176-2.amzn2.src.rpm" }], "SPDXID": "SPDXRef-Package-rpm-elfutils-libelf-ddf56a513c0e76ab2ae3246d9a91c463" }, { "name": "libcurl", "versionInfo": "7.79.1-1.amzn2.0.1", "downloadLocation": "NOASSERTION", "sourceInfo": "/var/lib/rpm/Packages", "filesAnalyzed": false, "externalRefs": [{ "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", "referenceLocator": "pkg:rpm/libcurl@7.79.1-1.amzn2.0.1?arch=X86_64&epoch=0&upstream=libcurl-7.79.1-1.amzn2.0.1.src.rpm" }, { "referenceCategory": "SECURITY", "referenceType": "vulnerability", "referenceLocator": "CVE-2022-32205" } ], "SPDXID": "SPDXRef-Package-rpm-libcurl-710fb33829bc5106559bcd380cddb7d5" }, { "name": "hunspell-en-US", "versionInfo": "0.20121024-6.amzn2.0.1", "downloadLocation": "NOASSERTION", "sourceInfo": "/var/lib/rpm/Packages", "filesAnalyzed": false, "externalRefs": [{ "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", "referenceLocator": "pkg:rpm/hunspell-en-US@0.20121024-6.amzn2.0.1?arch=NOARCH&epoch=0&upstream=hunspell-en-US-0.20121024-6.amzn2.0.1.src.rpm" }], "SPDXID": "SPDXRef-Package-rpm-hunspell-en-US-de19ae0883973d6cea5e7e079d544fe5" }, { "name": "grub2-tools-minimal", "versionInfo": "2.06-2.amzn2.0.6", "downloadLocation": "NOASSERTION", "sourceInfo": "/var/lib/rpm/Packages", "filesAnalyzed": false, "externalRefs": [{ "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", "referenceLocator": "pkg:rpm/grub2-tools-minimal@2.06-2.amzn2.0.6?arch=X86_64&epoch=1&upstream=grub2-tools-minimal-2.06-2.amzn2.0.6.src.rpm" }, { "referenceCategory": "SECURITY", "referenceType": "vulnerability", "referenceLocator": "CVE-2021-3981" } ], "SPDXID": "SPDXRef-Package-rpm-grub2-tools-minimal-c56b7ea76e5a28ab8f232ef6d7564636" }, { "name": "unixODBC-devel", "versionInfo": "2.3.1-14.amzn2", "downloadLocation": "NOASSERTION", "sourceInfo": "/var/lib/rpm/Packages", "filesAnalyzed": false, "externalRefs": [{ "referenceCategory": "PACKAGE-MANAGER", "referenceType": "purl", "referenceLocator": "pkg:rpm/unixODBC-devel@2.3.1-14.amzn2?arch=X86_64&epoch=0&upstream=unixODBC-devel-2.3.1-14.amzn2.src.rpm" }], "SPDXID": "SPDXRef-Package-rpm-unixODBC-devel-1bb35add92978df021a13fc9f81237d2" } ], "relationships": [{ "spdxElementId": "SPDXRef-DOCUMENT", "relatedSpdxElement": "SPDXRef-Package-rpm-elfutils-libelf-ddf56a513c0e76ab2ae3246d9a91c463", "relationshipType": "DESCRIBES" }, { "spdxElementId": "SPDXRef-DOCUMENT", "relatedSpdxElement": "SPDXRef-Package-rpm-yajl-8476ce2db98b28cfab2b4484f84f1903", "relationshipType": "DESCRIBES" }, { "spdxElementId": "SPDXRef-DOCUMENT", "relatedSpdxElement": "SPDXRef-Package-rpm-unixODBC-devel-1bb35add92978df021a13fc9f81237d2", "relationshipType": "DESCRIBES" } ], "SPDXID": "SPDXRef-DOCUMENT" }
SBOM용 필터
SBOM을 내보낼 때 필터를 포함시켜 리소스의 특정 하위 집합에 대한 보고서를 생성할 수 있습니다. 필터를 제공하지 않으면 지원되는 모든 활성 리소스의 SBOM을 내보냅니다. 또한 위임 관리자인 경우 여기에 모든 멤버를 위한 리소스도 포함됩니다. 다음과 같은 필터를 사용할 수 있습니다.
-
AccountID - 이 필터는 특정 계정 ID와 연결된 리소스의 SBOM을 내보내는 데 사용할 수 있습니다.
-
EC2 인스턴스 태그 - 이 필터는 특정 태그가 있는 EC2 인스턴스의 SBOM을 내보내는 데 사용할 수 있습니다.
-
함수 이름 - 이 필터는 특정 Lambda 함수의 SBOM을 내보내는 데 사용할 수 있습니다.
-
이미지 태그 - 이 필터는 특정 태그가 있는 컨테이너 이미지의 SBOM을 내보내는 데 사용할 수 있습니다.
-
Lambda 함수 태그 - 이 필터는 특정 태그가 있는 Lambda 함수의 SBOM을 내보내는 데 사용할 수 있습니다.
-
리소스 유형 - 이 필터는 리소스 유형(EC2/ECR/Lambda)을 필터링하는 데 사용할 수 있습니다.
-
리소스 ID - 이 필터는 특정 리소스의 SBOM을 내보내는 데 사용할 수 있습니다.
-
리포지토리 이름 - 이 필터는 특정 리포지토리에 있는 컨테이너 이미지의 SBOM을 생성하는 데 사용할 수 있습니다.
SBOM 구성 및 내보내기
SBOM을 내보내려면 먼저 Amazon Inspector에서 사용할 수 있는 Amazon S3 버킷과 AWS KMS 키를 구성해야 합니다. 필터를 사용하여 리소스의 특정 하위 집합에 대한 SBOM을 내보낼 수 있습니다. AWS Organization 내 여러 계정의 SBOM을 내보내려면 Amazon Inspector 위임 관리자로 로그인한 상태에서 다음 단계를 수행합니다.
사전 조건
Amazon Inspector에서 적극적으로 모니터링하고 있는 지원 리소스
Amazon Inspector에서 객체를 추가할 수 있도록 허용하는 정책으로 구성된 Amazon S3 버킷. 정책 구성에 대한 자세한 내용은 내보내기 권한 구성을 참조하세요.
Amazon Inspector에서 보고서를 암호화하는 데 사용할 수 있도록 허용하는 정책으로 구성된 AWS KMS 키. 정책 구성에 대한 자세한 내용은 Configure an AWS KMS key for export를 참조하세요.
참고
이전에 결과 내보내기용 Amazon S3 버킷과 AWS KMS 키를 구성한 경우 동일한 버킷과 키를 SBOM 내보내기에 사용할 수 있습니다.
원하는 액세스 방법을 선택하여 SBOM을 내보냅니다.