Crie um aplicativo e veja insights de segurança

Este guia de início rápido explica como criar um aplicativo e acessar insights de segurança para a versão no painel Insights de segurança do 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 do 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 de software (SBOM) para os artefatos de build.
    • Procedência do build, que é uma coleção de metadados verificáveis sobre um build. Ele inclui detalhes como resumos das imagens criadas, os locais da origem de entrada, a cadeia de ferramentas de build, as etapas de build e a duração do build.

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
    

Criar o repositório do Artifact Registry para a 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 contém 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 SBOM para a imagem criada

Um SBOM é um inventário completo de um aplicativo, que identifica os pacotes em que o software depende. O conteúdo pode incluir softwares 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 o painel Security insights, que mostra informações de segurança relacionadas ao build, como o nível de SLSA, vulnerabilidades nas dependências e a origem do build.

Para acessar o painel Insights de segurança:

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

    Abrir a página "Histórico de criações"

  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 executar.

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

O painel Insights de segurança do build aparece:

Esse painel mostra as seguintes informações:

  • Nível da SLSA:este 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: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 criada 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