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:
- Gravar métricas no Stackdriver
- Quando um espaço do Kf é criado (
kf create-space
), o controlador do Kf cria uma KSA chamadakf-builder
no novo espaço e a associa à mesma GSA. - 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 KSAkf-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
- Visão geral de segurança do GKE
- Multilocação de cluster do GKE
- Identidade da carga de trabalho
- Políticas do GKE e do IAM