Visão geral da autorização binária

Este documento fornece uma visão geral da autorização binária.

O que é autorização binária?

A autorização binária é um produto do Google Cloud que pode ser usado para implementar medidas de segurança da cadeia de suprimentos de software ao desenvolver e implantar aplicativos baseados em contêiner.

O que a autorização binária faz?

Você pode usar a autorização binária para fazer o seguinte:

  • Monitor: Você pode configurar a validação contínua (CV) em pré-lançamento para monitorar periodicamente se as imagens de contêiner associadas aos pods em execução estão em conformidade com uma política que você define. Se as imagens não estiverem em conformidade com a política, o CV produzirá entradas de registro no Cloud Logging.

  • Aplicar: é possível configurar a aplicação da autorização binária para garantir que as imagens que estão sendo implantadas em uma das plataformas com base em contêiner compatíveis estejam em conformidade com uma política que você define. As imagens em conformidade com a política podem ser implantadas. Caso contrário, elas não poderão ser implantadas.

Quais plataformas são compatíveis com a autorização binária?

A autorização binária é compatível com as seguintes plataformas:

A autorização binária faz parte de uma arquitetura de implantação que inclui os seguintes produtos relacionados:

  • Artifact Registry, Container Registry e outros registros que armazenam as imagens que você quer implantar.
  • O Artifact Analysis fornece informações sobre vulnerabilidades que podem ser usadas com a autorização binária para controlar a implantação. Separadamente, o Artifact Analysis armazena metadados confiáveis que são usados no processo de autorização.
  • Monitoramento de segurança, um painel que pode ser usado para avaliar a postura de segurança do aplicativo em produtos interdependentes do Google Cloud, incluindo a autorização binária.
  • Cloud Build, que produz atestados e procedências que a autorização binária pode usar para aplicação e monitoramento.
  • O Cloud Deploy é um serviço gerenciado de entrega contínua, que automatiza a entrega de aplicativos para uma série de ambientes de destino em uma sequência definida.

A autorização binária é baseada na especificação Kritis, que faz parte do projeto de código aberto Grafeas (em inglês).

Experiência

O objetivo da segurança da cadeia de suprimentos de software é garantir que os softwares sejam fornecidos, criados, testados, lançados e implantados de acordo com as práticas recomendadas e os padrões internos.

As arquiteturas baseadas em contêineres permitem que as equipes desenvolvam sistemas altamente separados (por exemplo, aqueles baseados em arquiteturas de microsserviços) e incentivam o uso de práticas de desenvolvimento de ciclo de vida curto, incluindo integração contínua (CI, na sigla em inglês) e implantação contínua. (CD, na sigla em inglês).

Em um ambiente de desenvolvimento baseado em contêineres, as imagens podem ser implantadas em uma série de clusters, como testes, preparação e lançamento, que fazem parte da cadeia de suprimentos de software.

O objetivo da autorização binária reduz o risco de implantação de software com defeito, vulnerável ou não autorizado nesse tipo de ambiente. Ao usar esse serviço, é possível impedir que imagens sejam implantadas, a menos que satisfaça a uma política definida por você.

A autorização binária não determina processos internos ou práticas recomendadas, mas ajuda a aplicar suas próprias práticas restringindo a implantação de imagens que não foram aprovadas nas verificações necessárias.

Ciclo de vida

Um ciclo de vida de implantação para imagens pode consistir nos seguintes estágios, em que a conclusão de um estágio é um pré-requisito para a próxima etapa. Por exemplo:

  1. Teste de compilação e unidade
  2. Implantação em um ambiente de desenvolvimento em que os usuários não são afetados
  3. Implantação em um ambiente de controle de qualidade, em que apenas usuários internos são afetados
  4. Implantação em um ambiente canário, em que apenas uma fração de usuários externos é afetada
  5. Implantação em produção

Cada estágio pode ter o próprio ambiente de implantação (por exemplo, um cluster do GKE ou um projeto do Google Cloud) e os próprios critérios que precisam ser atendidos antes que uma imagem seja movida para o próximo estágio. A autorização binária permite definir as regras pelas quais uma imagem passa de uma fase para a outra e fornece os meios para impor essas regras.

Atestados

Os casos de uso de autorização binária mais comuns envolvem atestadores. Um atestado certifica que uma imagem específica concluiu uma fase anterior, conforme descrito anteriormente. Configure a política de autorização binária para verificar o atestado antes de permitir a implantação da imagem. No momento da implantação, em vez de refazer atividades que foram concluídas em fases anteriores, a autorização binária só precisa verificar o atestado.

Os casos de uso que envolvem atestados incluem o seguinte:

  • Verificação de criação, em que a autorização binária usa atestados para verificar se uma imagem foi criada por um sistema de criação específico ou um pipeline de integração contínua.

    Para saber como configurar um pipeline de CI, com base no Cloud Build, que pode criar um atestado, consulte Integração do Cloud Build.

  • Verificação de vulnerabilidades, em que as vulnerabilidades da imagem criada pela CI também foram verificadas pelo Artifact Analysis. Nesse caso, o atestado só será criado se as vulnerabilidades identificadas atenderem a uma política de assinatura de vulnerabilidades.

    Saiba como configurar um pipeline de CI de verificação de vulnerabilidades com o Cupom ou o Kritis Signer.

  • Verificação manual, em que uma pessoa, por exemplo, um representante do controle de qualidade, cria manualmente o atestado.

    Para saber como criar um atestado manualmente, consulte Criar atestados.

Consulte Introdução ao Console do Google Cloud para ver um tutorial completo de atestado.

Recursos

A autorização binária fornece:

  • Um modelo de política que permite descrever as restrições em que as imagens de contêiner podem ser implantadas
  • Um modelo de atestado que permite definir autoridades confiáveis que podem atestar ou verificar se os processos necessários no seu ambiente foram concluídos antes da implantação
  • Um aplicador no momento da implantação que impede a implantação de imagens que violam a política

Modelo de política

A autorização binária implementa um modelo de política, em que uma política é um conjunto de regras que rege a implantação de imagens de contêiner. Regras em uma política fornecem critérios específicos que uma imagem precisa atender antes de ser implantada.

Para mais informações sobre o modelo de política de autorização binária e outros conceitos, consulte Conceitos-chave.

Configuração

Para configurar a autorização binária, primeiro você precisa ativar o serviço para os projetos do Google Cloud que compõem o pipeline de implantação e autorização.

Em seguida, você define a política que especifica as restrições em que imagens de contêiner podem ser implantadas. Se a política exigir atestados antes da implantação, você também precisará configurar atestadores que possam verificar atestados antes de permitir a implantação de imagens associadas.

Para configurar a autorização binária, consulte estes guias:

Autorização

Antes que uma imagem possa ser implantada, todos os assinantes necessários precisam criar um atestado que verifique se a imagem está pronta para a próxima etapa de implantação. O atestado é um registro que contém o caminho do registro e o resumo da imagem e que foi assinado digitalmente usando a chave criptográfica privada do signatário.

Para mais informações sobre autorização, consulte Usar atestados.

Aplicação

Quando você implanta uma imagem, a autorização binária verifica a política e aplica qualquer regra encontrada que rege a implantação.

Se a imagem transmitir as restrições definidas na política, a autorização binária permitirá que ela seja implantada. Caso contrário, o serviço bloqueará a implantação e gravará uma mensagem nos registros de auditoria do Cloud, que descreve por que a imagem não está em conformidade.

Para ver eventos de aplicação da autorização binária nos registros de auditoria do Cloud, consulte estes guias:

Para mais informações sobre a implantação, consulte estes guias:

Validação contínua

A validação contínua (CV, na sigla em inglês) é um recurso de autorização binária que verifica periodicamente as imagens de contêiner associadas aos pods em execução para manter a conformidade com as políticas.

Saiba mais sobre a CV.

Proteger a autorização binária com o VPC Service Controls

O VPC Service Controls melhora sua capacidade de reduzir o risco de cópia ou transferência não autorizada de dados dos serviços e recursos gerenciados pelo Google.

Para mais informações sobre como proteger recursos relacionados à autorização binária, consulte Proteger com o VPC Service Controls.

Software Delivery Shield

A autorização binária faz parte da solução Software Delivery Shield. O Software Delivery Shield é uma solução de segurança de cadeia de suprimentos de software completa e totalmente gerenciada que ajuda você a melhorar a segurança dos fluxos de trabalho e ferramentas para desenvolvedores, dependências de software, sistemas de CI/CD usados para criar e implantar o software e ambientes de execução, como o Google Kubernetes Engine e o Cloud Run. Para aprender a usar a autorização binária com outros componentes do Software Delivery Shield para melhorar a postura de segurança da sua cadeia de suprimentos de software, consulte Visão geral do Software Delivery Shield.

A seguir