Crie um aplicativo e veja insights de segurança

Neste guia de início rápido, explicamos como criar um aplicativo e ver insights de segurança para o build no painel Insights de segurança do Software Delivery Shield no console do Google Cloud.

Você vai:

  • Criar e conteinerizar um aplicativo Java usando o Cloud Build e enviar a imagem do contêiner para o repositório Docker do Artifact Registry.
  • Veja os seguintes insights de segurança para o build:

    • Nível da cadeia de suprimentos para artefatos de software (SLSA, na sigla em inglês), que identifica o nível de maturidade do processo de build do software de acordo com a especificação do SLSA .
    • Vulnerabilidades em artefatos de build.
    • Lista de materiais de software (SBOM, na sigla em inglês) para os artefatos de build.
    • Proveniência da versão, que é uma coleção de metadados verificáveis sobre uma versão. Ele inclui detalhes como os resumos das imagens criadas, os locais das origens de entrada, o conjunto de ferramentas, as etapas e a duração da versão.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Cloud Build, Artifact Registry, and Container Scanning APIs:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com

prepare o ambiente

  1. Defina o ID do projeto como uma variável de ambiente:

    export PROJECT_ID=$(gcloud config get project)
    
  2. Clone o repositório que contém o exemplo de código Java para criar e conteinerizar:

    git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git
    cd software-delivery-shield-demo-java/backend
    

Crie o repositório do Artifact Registry para sua imagem

  1. Crie um novo repositório do Docker denominado containers no local us-central1 e com a descrição "repositório do Docker":

    gcloud artifacts repositories create containers \
        --repository-format=docker \
        --location=us-central1 --description="Docker repository"
    
  2. Verifique se o repositório foi criado:

    gcloud artifacts repositories list
    

    Você verá containers na lista de repositórios exibidos.

Criar o aplicativo

Criar e conteinerizar o aplicativo Java usando o Cloud Build. O comando a seguir cria e conteineriza o aplicativo Java e armazena o contêiner criado no repositório Docker do Artifact Registry:

gcloud builds submit --config=cloudbuild.yaml --region=us-central1

Depois que a criação for concluída, você verá uma mensagem de status de sucesso semelhante à seguinte:

<pre class="none lang-sh">
DONE
-----------------------------------------------------------------------------
ID: 3e08565f-7f57-4449-bc68-51c46cf33d03
CREATE_TIME: 2022-09-19T15:41:07+00:00
DURATION: 54S
SOURCE: gs://sds-docs-project_cloudbuild/source/1663602066.777581-6ebe4b2d6fd741ffa18936d7f78055e9.tgz
IMAGES: us-central1-docker.pkg.dev/sds-docs-project/containers/java-guestbook-backend:quickstart
STATUS: SUCCESS
</pre>

Gerar um SBOM para a imagem criada

Um SBOM é um inventário completo de um aplicativo que identifica os pacotes de que seu software depende. O conteúdo pode incluir software de terceiros de fornecedores, artefatos internos e bibliotecas de código aberto.

Gere o SBOM para a imagem que você criou na seção anterior:

gcloud artifacts sbom export
    --uri=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart

Ver insights de segurança

A interface do Cloud Build no console do Google Cloud contém o painel Insights de segurança do Software Delivery Shield que exibe informações de segurança relacionadas ao build, como o nível SLSA, as vulnerabilidades nas dependências e a procedência da compilação.

Para ver o painel Insights de segurança do Software Delivery Shield, faça o seguinte:

  1. Abra a página Histórico de builds no Console do Google Cloud:

    Abrir a página "Histórico da versão"

  2. Selecione o projeto e clique em Abrir.

  3. No menu suspenso Região, selecione us-central1.

  4. Na tabela com as builds, localize a linha com o build que você acabou de executar.

  5. Na coluna Insights de segurança, clique em Ver.

Você verá o painel Insights de segurança do build:

Captura de tela do painel
do Software Delivery Shield

Esse painel mostra as seguintes informações:

  • Nível SLSA:esse build alcançou o nível 3 da SLSA. Clique no link Saiba mais para saber o que esse nível de segurança significa.

  • Vulnerabilidades:qualquer vulnerabilidade encontrada nos artefatos. Clique no nome da imagem (java-guestbook-backend) para ver os artefatos verificados em busca de vulnerabilidades.

  • Dependências para a imagem de contêiner criada no Artifact Registry.

  • Detalhes do build:detalhes da versão, como o builder e o link para visualizar registros.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.

  1. Desativar a API Container Scanning:

    gcloud services disable containerscanning.googleapis.com --force
    
  2. Exclua o repositório do Artifact Registry:

    gcloud artifacts repositories delete containers \
        --location=us-central1 --async
    

    Você excluiu o repositório criado como parte deste guia de início rápido.

A seguir