Skip to main content

Desenvolva com segurança usando Snyk e GKE Autopilot

Escrito por
Headshot of Jay Yeras

Jay Yeras

Kubernetes Blog

14 de dezembro de 2021

0 minutos de leitura

Converse com qualquer pessoa da área de tecnologia e, mais cedo ou mais tarde, a palavra Kubernetes vai surgir. Quando o assunto é orquestração, automação de implantações, escalabilidade e gerenciamento de aplicações em contêineres para atender à crescente demanda dos clientes, o Kubernetes oferece extensibilidade e flexibilidade. Esse é um dos principais benefícios da tecnologia Kubernetes, ou K8s, como é conhecida. Além disso, o K8s foi desenvolvido na Google para executar workloads de produção, o que ajuda a explicar sua ampla adoção no setor.

O Google Kubernetes Engine (GKE) foi criado com o espírito inovador da Google para oferecer aos clientes um serviço gerenciado para executar workloads Kubernetes no Google Cloud. Com o lançamento recente do GKE Autopilot, os clientes ganham eficiência operacional com um novo modo de operação que reduz custos e oferece configurações de cluster otimizadas, alinhadas às práticas recomendadas, escaláveis e preparadas para workloads de produção.

Aplicações modernas

Na criação de aplicações modernas, há várias camadas que compõem uma aplicação. Por exemplo, um workload em contêiner geralmente inclui pelo menos quatro elementos: a imagem do contêiner, o código da aplicação, as dependências de código aberto e a configuração da aplicação. Cada camada pode ser explorada por agentes mal-intencionados para tirar proveito de vulnerabilidades, explorações e configurações incorretas.

A plataforma Snyk foi desenvolvida para ajudar desenvolvedores a criar software com segurança em toda a stack de aplicações nativas da nuvem, incluindo código, código aberto, contêineres, Kubernetes e infraestrutura como código (IaC).

Segurança abrangente

Ter visibilidade sobre possíveis vulnerabilidades nas diferentes camadas da sua aplicação é apenas o começo. A Snyk oferece aos desenvolvedores insights práticos que ajudam a identificar e priorizar problemas, além de orientar a correção. Encontrar problemas de segurança é importante, mas ter um caminho confiável para resolvê-los é ainda melhor. A Snyk amplia os recursos de segurança ao capacitar desenvolvedores para eliminar vulnerabilidades em imagens de contêiner, recomendando a atualização para uma imagem base mais segura ou a recriação da aplicação quando a imagem base estiver desatualizada.

A Snyk reúne vulnerabilidades de aplicações e contêineres. Talvez você nem sempre tenha acesso ao código-fonte original executado nos seus contêineres, mas é importante entender as vulnerabilidades nas dependências do código. A Snyk detecta e monitora dependências de código aberto em linguagens populares durante a análise de contêineres e também identifica configurações incorretas nos manifestos do Kubernetes.

Análise de workloads

A Snyk já está disponível no Google Cloud Marketplace. Clientes com um plano Business ou Enterprise da Snyk podem ativar facilmente nossa integração com Kubernetes e começar a proteger seus workloads no GKE, incluindo clusters Autopilot, com apenas alguns cliques. Nesta publicação, vamos mostrar como provisionar um cluster GKE Autopilot e implantar uma aplicação de exemplo e o gráfico Helm snyk-monitor.

Veja alguns exemplos de etapas básicas que você pode executar no terminal ou no Cloud Shell para implantar o Snyk Container no GKE Autopilot.

Criar o namespace

kubectl create namespace snyk-monitor

Criar o secret

kubectl create secret generic snyk-monitor -n snyk-monitor \    
  --from-literal=dockercfg.json={} \
  --from-literal=integrationId=abcd1234-abcd-1234-abcd-1234abcd1234

Adicionar o repositório Helm

helm repo add snyk-charts https://snyk.github.io/kubernetes-monitor/ --force-update

Instalar o gráfico

helm upgrade --install snyk-monitor snyk-charts/snyk-monitor \
  --namespace snyk-monitor \
  --set pvc.enabled=true \
  --set pvc.create=true \
  --set pvc.name="snyk-monitor-pvc" \
  --set clusterName="my-cluster" \
  --set nodeAffinity.disableBetaArchNodeSelector=true \
  --set requests.memory="512Mi" \
  --set requests."ephemeral-storage"="50Gi" \
  --set limits."ephemeral-storage"="50Gi"

A execução desses comandos implanta a Snyk no GKE Autopilot, permitindo analisar e monitorar workloads com a Snyk.

Diagrama de um cluster Kubernetes mostrando os componentes default, kube-system, snyk-monitor e node conectados ao Snyk.

Analisar os resultados

Os projetos monitorados pela Snyk fornecem um relatório resumido com uma visão geral das diferentes camadas da sua aplicação e o total de vulnerabilidades, agrupadas por gravidade. Neste exemplo, vemos duas implantações do Kubernetes associadas a uma aplicação de demonstração, com informações sobre a imagem do contêiner e as dependências de código aberto no código da aplicação.

Painel de projetos do Snyk mostrando projetos importados do GKE Autopilot, contagens de vulnerabilidades por gravidade e links para relatórios

Ao analisar uma das implantações em mais detalhes, você vê uma visão expandida com informações adicionais. Por exemplo, podemos consultar dados contextuais detalhados sobre as vulnerabilidades encontradas na aplicação e as configurações incorretas nos manifestos do Kubernetes. Graças às otimizações integradas do GKE Autopilot, algumas configurações incorretas são corrigidas imediatamente com a aplicação automática de limites de memória e CPU durante a implantação. Nosso arquivo de manifesto de exemplo omitiu intencionalmente a definição de um contexto de segurança. Como as práticas recomendadas de segurança do Kubernetes e a capacidade de aplicá-las variam entre os clientes, é ainda mais importante dar visibilidade a esses problemas e, acima de tudo, recomendar como resolvê-los.

Painel da Snyk mostrando as verificações de configuração segura e as vulnerabilidades de uma implantação do Kubernetes, com várias verificações de configuração marcadas como FALHA.

Ao analisar os resultados de segurança da imagem de contêiner usada pela aplicação, os desenvolvedores encontram um caminho rápido para a correção, com uma recomendação de atualização adequada. Assim, podem decidir rapidamente qual imagem usar para reduzir os riscos de segurança.

Painel da Snyk mostrando os detalhes da imagem-base de um contêiner e recomendações para atualizar de node:10.4.1-jessie para node:17.0.0-bullseye-slim

Esses resultados, junto com os da análise de composição de software (SCA), oferecem aos desenvolvedores uma cobertura abrangente das diferentes camadas das aplicações modernas nativas da nuvem.

O mecanismo de IA do Snyk Code usa um processo especial que combina aprendizado de máquina baseado em milhões de commits de código aberto e feedback humano da equipe de pesquisa de segurança da Snyk, tornando o relatório ainda mais completo.

Conclusão

A plataforma Snyk funciona perfeitamente com o GKE Autopilot, uma revolução no Kubernetes gerenciado. Com a integração do Snyk Container com Kubernetes, os clientes podem começar rapidamente a proteger workloads no GKE Autopilot e usar a Snyk CLI com o Google Cloud Build, além das integrações com o Google Container Registry, o Google Artifact Registry e uma das várias integrações de SCM com repositórios Git da Snyk.

Quer saber mais sobre como criar workloads Kubernetes com segurança? Crie uma conta gratuita na Snyk!

Proteja a infraestrutura desde a origem

A Snyk automatiza a segurança e a conformidade de IaC nos fluxos de trabalho e detecta recursos com configurações divergentes ou ausentes.