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:
Monitoramento: é possível configurar a validação contínua (CV) com políticas de plataforma baseadas em verificação (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ê definiu. Se as imagens não estiverem em conformidade com a política, a 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:
- Google Kubernetes Engine (GKE): executa imagens em clusters hospedados no Google Cloud.
- Cloud Run: executa aplicativos em contêineres em uma plataforma sem servidor totalmente gerenciada.
- Cloud Service Mesh: gerencia uma malha de serviço confiável que está no local ou no Google Cloud.
- Software Google Distributed Cloud: executa as imagens nos clusters do GKE que você hospeda no seu hardware.
Produtos relacionados à autorização binária
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.
Contexto
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:
- Teste de compilação e unidade
- Implantação em um ambiente de desenvolvimento em que os usuários não são afetados
- Implantação em um ambiente de controle de qualidade, em que apenas usuários internos são afetados
- Implantação em um ambiente canário, em que apenas uma fração de usuários externos é afetada
- 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:
- Configurar a autorização binária no GKE
- Configurar a autorização binária na nuvem distribuída (pré-lançamento)
- Configurar a autorização binária com o Cloud Run
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:
- Visualizar registros de auditoria (GKE)
- Acessar registros de auditoria (Cloud Run)
- Visualizar registros de auditoria (nuvem distribuída)
Para mais informações sobre a implantação, consulte estes guias:
- Implantar contêineres (GKE)
- Implantar contêineres (exemplo do Distributed Cloud)
- Usar a autorização binária com o Cloud Run
Validação contínua
A validação contínua (CV) com políticas de plataforma baseadas em verificação é um recurso da autorização binária que verifica periodicamente os metadados das imagens de contêiner associadas aos pods em execução para manter a conformidade com a política.
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.
Segurança da cadeia de suprimentos de software
A autorização binária é um dos componentes do Google Cloud que você pode usar para proteger sua cadeia de suprimentos de software. É possível usar a autorização binária com outros produtos e recursos do Google Cloud para melhorar a postura de segurança de fluxos de trabalho e ferramentas de desenvolvedores, dependências de software, sistemas de CI/CD usados para criar e implantar seu software e ambientes de execução, como o Google Kubernetes Engine e o Cloud Run. Para saber mais, consulte Segurança da cadeia de suprimentos de software.
A seguir
- Para ver tutoriais completos, consulte:
- Configurar uma política de autorização binária para o Cloud Service Mesh usando o Console do Google Cloud ou a ferramenta de linha de comando.