Crie um aplicativo e veja insights de segurança

Este guia de início rápido explica como criar um aplicativo e conferir insights de segurança para a versão no painel Insights de segurança do Software Delivery Shield no console do Google Cloud.

Você vai:

  • Crie e conteinerize um aplicativo Java usando o Cloud Build e envie a imagem do contêiner para o repositório do Artifact Registry Docker.
  • Confira os seguintes insights de segurança para o build:

    • Nível de Níveis 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 do software (SBOM, na sigla em inglês) para os artefatos do build.
    • Procedência do build, que é uma coleção de metadados verificáveis sobre um build. Ele inclui detalhes como os resumos das imagens construídas, o locais de origem de entrada, o conjunto de ferramentas de build, as etapas de build e o duraçã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. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  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. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  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
    

Criar o repositório do Artifact Registry para sua imagem

  1. Crie um novo repositório do Docker chamado containers no local us-central1 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ê vai encontrar containers na lista de repositórios exibidos.

Criar o aplicativo

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

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

Depois que o build for concluído, uma mensagem de status de sucesso semelhante a esta será exibida:

<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 uma lista de materiais de software para a imagem criada

Uma 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 criada 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 as Painel Security Insights do Software Delivery Shield que mostra as informações de segurança informações relacionadas ao build, como o nível de SLSA, quaisquer vulnerabilidades da dependências e procedência do build.

Para acessar o painel Insights de segurança do Software Delivery Shield:

  1. Abra a página Histórico do build no console do Google Cloud:

    Abrir a página "Histórico de builds"

  2. Selecione o projeto e clique em Abrir.

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

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

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

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: esta versão alcançou o nível 3 de SLSA. Clique no link Saiba mais para saber o que esse nível de segurança significa.

  • Vulnerabilidades: todas as vulnerabilidades encontradas nos seus artefatos. Clique no nome da imagem (java-guestbook-backend) para conferir os artefatos que foram verificados quanto a vulnerabilidades.

  • Dependências da imagem do contêiner criado no Artifact Registry.

  • Detalhes do build: detalhes do build, 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ê já excluiu o repositório criado como parte deste guia de início rápido.

A seguir