Crie um aplicativo e veja insights de segurança

Neste guia de início rápido, explicamos como criar um aplicativo e acessar insights de segurança para a versão no painel Insights de segurança no console do Google Cloud .

Você vai:

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

    • Nível da cadeia de suprimentos para artefatos de software (SLSA), que identifica o nível de maturidade do processo de build de 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 os resumos das imagens criadas, os locais da origem de entrada, a cadeia de ferramentas, as etapas 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. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  4. To initialize the gcloud CLI, run the following command:

    gcloud init
  5. 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.

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

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

    gcloud services enable cloudbuild.googleapis.com  artifactregistry.googleapis.com  containerscanning.googleapis.com
  8. Install the Google Cloud CLI.

  9. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  10. To initialize the gcloud CLI, run the following command:

    gcloud init
  11. 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.

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

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

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

Preparar 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 colocar em contêineres:

    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 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ê 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 a build for concluída, você vai ver uma mensagem de status de sucesso semelhante a esta:

<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 a lista de materiais de software (SBOM, na sigla em inglês) 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 Google Cloud contém o painel Insights de segurança, que mostra informações relacionadas à segurança do build, como nível da SLSA, vulnerabilidades nas dependências e 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 :

    Abra 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 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 atingiu 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 ver os artefatos que foram verificados em busca de vulnerabilidades.

  • Dependências da imagem de 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 os recursos.

  1. Desative 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