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. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. Instale a CLI do Google Cloud.
  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  5. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  6. Ative as APIs Cloud Build, Artifact Registry, and Container Scanning:

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  7. Instale a CLI do Google Cloud.
  8. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  9. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  10. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  11. Ative as APIs Cloud Build, Artifact Registry, and Container Scanning:

    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