Visão geral

Esta página contém uma visão geral da autorização binária.

Introdução

A autorização binária é um serviço no Google Cloud Platform (GCP) que fornece segurança de cadeia de suprimentos de software ao implantar aplicativos baseados em contêiner. A autorização binária estende o Google Kubernetes Engine (GKE) e aplica políticas de segurança no momento da implantação. A autorização binária funciona com imagens de contêiner do Container Registry ou de outro registro de imagens de contêiner.

Com a autorização binária, você pode verificar automaticamente e digitalmente cada componente da cadeia de suprimentos de software, garantindo a qualidade e a integridade do software antes da implantação de um aplicativo no ambiente de produção.

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

  • Container Registry ou outro registro que armazena as imagens de contêiner que você quer implantar.
  • GKE, que executa as imagens em um cluster
  • Container Analysis, que armazena metadados confiáveis usados no processo de autorização
  • Autorização binária em si, que permite ou bloqueia a implantação de imagens no GKE com base em uma política que você configura

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

Contexto

O GKE permite que as equipes desenvolvam sistemas altamente separados (por exemplo, aqueles criados em arquiteturas de microsserviços) e incentiva o uso de processos de ciclo de vida curto em torno da integração contínua (CI) e implantação contínua (CD). Nesses ambientes, o software geralmente se move de um cluster de implantação para outro durante a preparação e testes, o que dificulta a criação, o teste, o lançamento e a implantação de todos os softwares de acordo com as práticas recomendadas e os padrões internos.

O objetivo da autorização binária reduz o risco de implantação de software errado, com defeito ou não autorizado nesse tipo de ambiente. Usando esse serviço, você pode especificar explicitamente quais processos internos precisam ser concluídos antes que uma imagem de contêiner entre em cada estágio de implantação e, em seguida, verificar se as partes autorizadas verificaram a conclusão do processo.

A autorização binária não determina processos internos ou práticas recomendadas sobre a integridade e a qualidade do seu software. Em vez disso, ele ajuda a aplicar suas próprias práticas restringindo a implantação de imagens de contêiner que não foram aprovadas nas verificações necessárias.

Casos de uso típicos

Os casos de uso de autorização binária mais comuns envolvem atestadores. Nesses casos, quando a imagem do contêiner é criada, o resumo exclusivo dela é assinado digitalmente por um assinante para criar um atestado.

No momento da implantação, o aplicador de autorização binária usa um atestador para verificar o atestado. Dessa forma, somente imagens de contêiner com atestados verificados podem ser implantadas.

Os casos de uso que envolvem atestados incluem o seguinte:

  • Verificação de compilação em que a autorização binária verifica se a imagem do contêiner foi criada por um sistema de compilação específico ou canal de integração contínua (CI).
  • Verificação de vulnerabilidades, em que a imagem do contêiner criada pela CI também foi verificada por Análise de contêiner e vulnerabilidades foram resolvidas antes que o próprio pipeline de CI ou um indivíduo criasse o atestado.
  • Verificação manual, em que um representante, por exemplo, cria o atestado manualmente.

Consulte Primeiros passos com o Console para ver um tutorial completo de atestado.

Ciclo de vida

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

  • 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

Após a criação e o teste, cada estágio tem o próprio ambiente de implantação, um cluster do GKE e os próprios critérios, que precisam ser satisfeitos antes que uma imagem seja movida para o próximo. A autorização binária permite definir os critérios que uma imagem passa de um estágio para outro e fornece os meios para impor os critérios.

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
  • Funcionalidade de aplicação que impede que imagens erradas, com falha ou não autorizadas entrem nos seus ambientes de implantação

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 em um cluster do GKE. As regras em uma política especificam os critérios que uma imagem precisa passar antes de ser implantada. Uma política típica exige que uma imagem de contêiner tenha uma assinatura digital verificada antes de ser implantada.

Nesse tipo de política, uma regra especifica quais autoridades confiáveis, chamadas de signatários, precisam declarar que os processos necessários foram concluídos e que uma imagem está pronta para passar para o próximo estágio de implantação. Um signatário pode ser um usuário humano ou, mais frequentemente, um processo de máquina, como um sistema de compilação e teste ou uma parte do pipeline de implantação contínua.

Durante o ciclo de vida de desenvolvimento, os signatários assinam digitalmente descritores de imagem de contêiner globalmente, criando instruções certificadas chamadas atestados. Posteriormente, durante a fase de implantação, a autorização binária usa atestadores para verificar o certificado indicando que os processos necessários no pipeline foram concluídos.

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

Configuração

Para configurar a autorização binária, primeiro você precisa ativar o serviço para os projetos que participam do pipeline de implantação e autorização. Em seguida, crie clusters do GKE, conforme necessário, com o serviço ativado.

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 de contêiner associadas.

Para mais informações sobre as etapas de configuração, consulte Visão geral de configuração.

Autorização

Antes que uma imagem de contêiner 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 do contêiner e que foi assinado digitalmente usando a chave criptográfica privada do signatário.

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

Aplicação

Quando você implanta uma imagem de contêiner no GKE, a autorização binária verifica a política e aplica qualquer regra encontrada que rege a implantação. Se a regra exigir atestadores, a autorização binária verificará se todos os atestadores verificaram a imagem com segurança.

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

Para mais informações sobre implantação, consulte Como implantar contêineres.

Como 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 Como proteger com VPC Service Controls.