Visão geral da segurança

O objetivo do Kf é proporcionar aos desenvolvedores uma experiência semelhante à do Cloud Foundry, replicando o ciclo de compilação, push e implantação. Ele faz isso criando uma camada de UX de desenvolvedor com base em tecnologias amplamente conhecidas e amplamente adotadas, como Kubernetes, Istio e Container Registry, em vez de implementar todas as partes do zero.

Ao tomar decisões de segurança, o Kf tem como objetivo fornecer soluções completas que são nativas dos respectivos componentes e podem ser aumentadas com outros mecanismos. Mais detalhes:

  • Soluções completas significa que o Kf tenta não fornecer soluções parciais que podem levar a uma falsa sensação de segurança.
  • Nativo significa que as soluções precisam fazer parte do componente em vez de uma construção Kf para evitar alterações interruptivas.
  • Pode ser aumentado significa que a abordagem do Kf precisa funcionar sem problemas com outras ferramentas do Kubernetes e do Google Cloud para defesa em profundidade.

Considerações importantes

Além das limitações atuais descritas abaixo, é importante ler e entender os itens descritos nesta seção.

Identidade da carga de trabalho

Por padrão, o Kf usa a identidade da carga de trabalho para a entrega e a rotação seguras das credenciais da conta de serviço usada pelo Kf para interagir com o projeto do Google Cloud . Para isso, a identidade associa uma conta de serviço do Kubernetes (KSA, na sigla em inglês) a uma conta de serviço do Google (GSA, na sigla em inglês). O controlador Kf é executado no namespace kf e usa a KSA controller, associada a uma GSA, para fazer o seguinte:

  1. Gravar métricas no Stackdriver
  2. Quando um espaço do Kf é criado (kf create-space), o controlador do Kf cria uma KSA chamada kf-builder no novo espaço e a associa à mesma GSA.
  3. A KSA kf-builder é usada pela Tekton para enviar e extrair imagens de contêiner para o Google Container Registry (gcr.io)

Este diagrama ilustra essas interações:

Limitações atuais

  • O Kf não fornece papéis RBAC predefinidos. Até que o Kf forneça isso, use o RBAC.

  • Um desenvolvedor que envia um app com o Kf também pode criar pods (com kubectl) que podem usar a KSA kf-builder com as permissões da GSA associada.

  • Para implantar no Kf, é preciso ter acesso de gravação a um registro de contêiner. Implante o Kf em um projeto dedicado sem acesso a recursos de produção. Para que os desenvolvedores possam enviar código por push ao repositório de artefatos, conceda a eles roles/storage.admin no projeto ou nos buckets usados pelo repositório.

  • O Kf usa o mesmo pod para buscar, criar e armazenar imagens. Suponha que todas as credenciais fornecidas por você sejam conhecidas pelos autores e editores das versões usadas.

  • O Kf não é compatível com cotas para se proteger contra vizinhos barulhentos. Use as cotas de recursos do Kubernetes.

Outros recursos

Geral

Proteções avançadas