Exportação de SBOMs com o Amazon Inspector - Amazon Inspector

Exportação de SBOMs com o Amazon Inspector

Uma SBOM (lista de materiais de software) é um inventário aninhado de todos os componentes de software de código aberto e de terceiros na sua base de código. O Amazon Inspector fornece SBOMs para recursos individuais no seu ambiente. Você pode usar o console do Amazon Inspector ou a API do Amazon Inspector para gerar SBOMs para seus recursos. Você pode exportar as SBOMs para todos os recursos compatíveis monitorados pelo Amazon Inspector. As SBOMs exportadas fornecem informações sobre seu fornecimento de software. Você pode revisar o status de seus recursos ao avaliar a cobertura de seu ambiente da AWS. Esta seção descreve como configurar e exportar SBOMs.

nota

No momento, o Amazon Inspector não comporta a exportação de SBOMs para instâncias do Amazon EC2 no Windows.

Formatos do Amazon Inspector

O Amazon Inspector suporta a exportação de SBOMs nos formatos compatíveis com CycloneDX 1.4 e SPDX 2.3. O Amazon Inspector exporta os SBOMs como arquivos do JSON ao bucket do Amazon S3 que você escolher.

nota

As exportações no formato SPDX do Amazon Inspector são compatíveis com sistemas que usam o SPDX 2.3, no entanto, elas não contêm o campo CC0 (Creative Commons Zero). Isso ocorre porque a inclusão desse campo permitiria que os usuários redistribuíssem ou editassem o material.

{ "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" }

Filtros para SBOMs

Ao exportar os SBOMs, você poderá incluir filtros para criar relatórios para subconjuntos específicos de recursos. Se não fornecer um filtro, os SBOMs de todos os recursos ativos compatíveis serão exportados. E se você for um administrador delegado, isso também inclui recursos para todos os membros. Os seguintes filtros estão disponíveis:

  • AccountID: esse filtro pode ser usado para exportar os SBOMs para quaisquer recursos associados a uma ID de conta específica.

  • Tag de instância do EC2: esse filtro pode ser usado para exportar os SBOMs para instâncias do EC2 com tags específicas.

  • Nome da função: esse filtro pode ser usado para exportar os SBOMs para funções do Lambda específicas.

  • Tag de imagem: esse filtro pode ser usado para exportar SBOMs para imagens de contêineres com tags específicas.

  • Tag de função do Lambda: esse filtro pode ser usado para exportar SBOMs para funções do Lambda com tags específicas.

  • Tipo de recurso: esse filtro pode ser usado para filtrar o tipo de recurso: EC2/ECR/Lambda.

  • ID do recurso: esse filtro pode ser usado para exportar um SBOM para um recurso específico.

  • Nome do repositório: esse filtro pode ser usado para gerar os SBOMs para imagens de contêiner em repositórios específicos.

Configurar e exportar os SBOMs

Para exportar SBOMs, deverá primeiro configurar um bucket do Amazon S3 e uma chave AWS KMS que o Amazon Inspector possa usar. Use filtros para exportar os SBOMs para subconjuntos específicos de seus recursos. Para exportar os SBOMs para várias contas em uma Organização da AWS, siga estas etapas enquanto estiver conectado como administrador delegado do Amazon Inspector.

Pré-requisitos
  • Recursos compatíveis que estão sendo monitorados ativamente pelo Amazon Inspector.

  • Um bucket do Amazon S3 configurado com uma política que permite ao Amazon Inspector adicionar objetos a. Para obter informações sobre como configurar a política, consulte Configurar permissões de exportação.

  • Uma chave AWS KMS configurada com uma política que permite que o Amazon Inspector use para criptografar seus relatórios. Para obter informações sobre como configurar a política, consulte Configurar uma chave AWS KMS para exportação.

nota

Se você já tiver configurado um bucket do Amazon S3 e uma chave AWS KMS para exportação de descobertas, use o mesmo bucket e chave para exportação SBOM.

Selecione o método de acesso preferido para exportar um SBOM.

Console
  1. Faça login usando suas credenciais e abra o console do Amazon Inspector em https://console.aws.amazon.com/inspector/v2/home.

  2. Ao usar o seletor da Região da AWS no canto superior direito da página, selecione a região com os recursos para os quais você deseja exportar o SBOM.

  3. No painel de navegação, escolha Exportação de SBOMs.

  4. (Opcional) Na página Exportar os SBOMs, use o menu Adicionar filtro para selecionar um subconjunto de recursos para os quais criar relatórios. Se nenhum filtro for fornecido, o Amazon Inspector exportará relatórios para todos os recursos ativos. Se você for um administrador delegado, isso incluirá todos os recursos ativos em sua organização.

  5. Em Configuração de exportação, selecione o formato que você deseja para o SBOM.

  6. Insira um URI do Amazon S3 ou escolha Procurar no Amazon S3 para selecionar um local do Amazon S3 para armazenar o SBOM.

  7. Insira uma chave AWS KMS configurada para o Amazon Inspector usar para criptografar seus relatórios.

API
  • Para exportar os SBOMs para seus recursos de forma programática, use a operação CreateSbomExport da API do Amazon Inspector.

    Em sua solicitação, use o parâmetro reportFormat para especificar o formato de saída do SBOM, escolha CYCLONEDX_1_4 ou SPDX_2_3. O parâmetro s3Destination é obrigatório, e você deve especificar um bucket do S3 configurado com uma política que permita que o Amazon Inspector grave nele. Opcionalmente, use os parâmetros resourceFilterCriteria para limitar o escopo do relatório a recursos específicos.

AWS CLI
  • Para exportar SBOMs para seus recursos usando AWS Command Line Interface, execute o seguinte comando:

    aws inspector2 create-sbom-export --report-format FORMAT --s3-destination bucketName=amzn-s3-demo-bucket1,keyPrefix=PREFIX,kmsKeyArn=arn:aws:kms:Region:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

    Na solicitação, substitua FORMAT pelo formato de sua preferência, CYCLONEDX_1_4 ou SPDX_2_3. Em seguida, substitua o user input placeholders do destino do S3 pelo nome do bucket S3 a ser exportado, o prefixo a ser usado para a saída no S3 e o ARN da chave KMS que você está usando para criptografar os relatórios.