O que são o SPIFFE e o SPIRE?
O SPIFFE e o SPIRE são dois projetos open source usados no gerenciamento de identidades em ambientes de computação dinâmicos e variados.
SPIFFE (que é pronunciado como “espifí”) é a sigla em inglês para Secure Production Identity Framework for Everyone. Ele estabelece uma estrutura para as identidades e uma maneira de verificar IDs criptograficamente para determinar se são confiáveis.
SPIRE é a sigla em inglês para SPIFFE Runtime Environment. O SPIRE é a implementação de referência do SPIFFE.
Juntos, o SPIFFE e o SPIRE oferecem uma maneira de aplicar uma arquitetura Zero Trust em ambientes complexos de nuvem híbrida. O framework SPIFFE/SPIRE soluciona muitos problemas de segurança, como:
- Aprimorar a segurança de aplicações nativas em nuvem em ambientesKubernetes.
- Melhorar a autenticação em locais de edge computing.
- Gerenciar identidades de agentes de IA e outras cargas de trabalho não humanas.
Tanto o SPIFFE quanto o SPIRE são projetos graduados da Cloud Native Computing Foundation (CNCF). O Red Hat® Zero Trust Workload Identity Manager é a implementação empresarial do framework SPIFFE/SPIRE, desenvolvida pela Red Hat e disponibilizada como um operator do Red Hat OpenShift® em versão de prévia de tecnologia.
O que isso tem a ver com tartarugas?
Às vezes, os usuários do SPIFFE o descrevem como uma solução para o "bottom turtle problem" (problema das tartarugas sem fim, em tradução livre). Alguns autores do projeto SPIFFE já até usaram a metáfora da tartaruga como nome de um livro sobre a tecnologia.
Mas qual é o problema das tartarugas sem fim?
Em uma anedota antiga, um personagem insiste que o mundo está sobre as costas de uma tartaruga gigante. Quando desafiado a explicar onde essa tartaruga estaria apoiada, o personagem cita outra tartaruga ainda maior. Mas no que essa outra tartaruga se apoia? "É uma pilha de tartarugas sem fim!"
A segurança dos computadores envolve um problema semelhante. Segredos, como senhas e chaves de API, ajudam diferentes plataformas e serviços a verificarem que podem confiar uns nos outros. Proteger esses segredos exige camadas extras de segurança, como chaves de criptografia privadas e um repositório onde elas possam ser armazenadas. Mas como proteger o repositório de segredos? Com mais segredos. Ou seja, são "segredos sem fim".
O padrão SPIFFE e a implementação do SPIRE tem como objetivo estabelecer uma base de confiabilidade (a tartaruga de baixo) para todas as interações em um sistema.
Que problemas o SPIFFE e o SPIRE solucionam?
O SPIFFE e o SPIRE ajudam a melhorar a segurança da TI. Juntos, eles formam um framework para assegurar que o acesso seja concedido apenas às interações com identidades verificadas. Por exemplo, imagine que o SPIFFE e o SPIRE são como uma autenticação multifator (MFA) para as cargas de trabalho.
SPIFFE: o framework
O SPIFFE define especificações para emissão e gerenciamento de identidades criptográficas para serviços em diferentes ambientes. A base desse padrão é o SPIFFE Verifiable Identity Document (SVID), uma credencial de curta duração que funciona como a identidade de uma carga de trabalho.
Nas arquiteturas Zero Trust, em que nenhum componente é confiável por padrão, o SPIFFE possibilita a autenticação das cargas de trabalho sem depender de segredos. Quando uma carga de trabalho precisa interagir com outro serviço, ela pode apresentar o SVID, que normalmente tem o formato de um certificado X.509 ou JSON Web Token (JWT).
Em seguida, outras cargas de trabalho podem verificar o SVID no local, viabilizando a autenticação confiável ponto a ponto, sem necessidade de contato com uma autoridade central em cada transação. Esse processo otimizado simplifica e protege a comunicação entre serviços, mantendo a confiança por meio de uma identidade padronizada e verificável.
SPIRE: o ambiente de runtime
O SPIRE operacionaliza o padrão SPIFFE. Ele define um processo para configurar as APIs que estabelecem a confiança entre as cargas de trabalho (aplicações ou agentes que fazem uma solicitação) e os nós (servidores e máquinas).
O SPIRE exige atestação tanto para a carga de trabalho quanto para o nó. Isso serve para verificar se tanto a aplicação quanto o recurso são, de fato, o que afirmam ser antes de emitir um certificado de assinatura.
Um servidor SPIRE funciona como uma autoridade de assinatura para as identidades no domínio do SPIFFE. Ele também monitora as identidades das cargas de trabalho em um registro.
Além desse servidor, os agentes SPIRE operam em cada nó onde exista uma carga de trabalho em execução. Esses agentes mantêm um cache de SVIDs e atestam a identidade das cargas de trabalho. A verificação de SVIDs pode ocorrer no local, por meio da introspecção no nível do kernel. Em outras palavras, a carga de trabalho não precisa chamar um serviço externo para verificar se uma determinada ação foi autorizada.
O SPIRE oferece suporte à federação, em que sistemas diferentes podem compartilhar trust bundles, pacotes que contêm as chaves públicas e as certificações necessárias para a validação.
Casos de uso do SPIFFE e do SPIRE
O SPIFFE e o SPIRE ajudam com a autenticação em ambientes multicloud distribuídos. Alguns casos de uso são:
Autenticação em ambientes de nuvem híbrida
Em ambientes híbridos e multicloud, as aplicações podem se estender por vários provedores de nuvem e limites administrativos. Isso torna mais complexa a implementação de uma comunicação confiável entre esses domínios.
Com a federação do SPIFFE, servidores SPIRE executados em lugares diferentes podem trocar chaves públicas e certificados usandotrust bundles, formato atribuído a uma coleção de chaves públicas usadas por uma determinada autoridade de emissão do SPIFFE. Assim, as aplicações podem estabelecer a confiança até mesmo entre diferentes provedores de nuvem e limites administrativos, sem chaves privadas ou configurações de rede complexas.
Gerenciamento de identidades no Kubernetes e no KubeVirt
Em geral, ambientes Kubernetes executam diversas cargas de trabalho pequenas e isoladas em containers, que precisam cooperar entre si. O SPIFFE e o SPIRE aumentam a segurança em ambientes Kubernetes ao autenticar aplicações em containers, independentemente de onde estejam na rede. Essa segurança reforçada também vale para as máquinas virtuais executadas em soluções baseadas no KubeVirt, como o Red Hat OpenShift Virtualization. Isso viabiliza o controle de acesso granular, um princípio fundamental da arquitetura Zero Trust.
Fluxos de trabalho de agentes de IA
Agentes de IA estão se tornando cada vez mais comuns. Eles recebem instruções e interagem com outros sistemas para alcançar um objetivo. No entanto, é complicado usar agentes de IA quando há informações confidenciais envolvidas. Conceder acesso a um agente de IA exige atribuir identidades fortes e verificáveis às cargas de trabalho da máquina, o que se torna ainda mais desafiador nas plataformas de nuvem híbrida. O SPIFFE e o SPIRE ajudam a resolver parte desse desafio. Eles fornecem credenciais temporárias verificáveis, permitindo que serviços de IA acessem dados sensíveis de forma controlada.
Confiança da service mesh
A service mesh é uma camada que lida com a comunicação entre os serviços, especialmente entre aplicações em container. Uma implementação do SPIFFE e do SPIRE consegue integrar o gerenciamento de segurança às service meshes para que elas utilizem identidades verificáveis criptograficamente. Esse nível de confiança simplifica a interoperabilidade entre os sistemas. Isso também ajuda na aplicação de políticas, dentro e fora da service mesh.
Segurança da edge computing
Como o SPIFFE e o SPIRE estendem o control plane de identidade para os ambientes locais, eles são uma ótima opção para a edge computing. Com SVIDs verificáveis criptograficamente, você pode implementar a autenticação forte em qualquer lugar na rede, até mesmo para serviços de edge distribuídos e distantes.
Como usar o SPIFFE e o SPIRE no Kubernetes
Executar aplicações modernas na nuvem exige um determinado nível de automação. Uma opção muito usada para isso é o Kubernetes, uma plataforma open source para implantar, gerenciar e escalar aplicações em containers. O Kubernetes é a base do Red Hat OpenShift.
Com o SPIFFE e o SPIRE como seu control plane de identidade (a "tartaruga de baixo" que já mencionamos), você pode trabalhar com identidades verificáveis no Kubernetes. Veja a seguir três informações importantes sobre o SPIFFE e o SPIRE no Kubernetes:
- O SPIRE é o framework para implementar o SPIFFE. Você precisará implantar os componentes do SPIRE no cluster do Kubernetes. Isso inclui o servidor, que gerencia identidades e assinaturas, e os agentes, cada um sendo executado em um nó diferente do Kubernetes. Esses componentes criam uma infraestrutura básica de identidade e preparam o cluster para verificá-las criptograficamente. O Red Hat Zero Trust Workload Identity Manager pode viabilizar isso em ambientes do Red Hat OpenShift.
- Os agentes do SPIRE realizam a atestação de nós e cargas de trabalho. Agentes podem inspecionar as características de uma aplicação, como o namespace do Kubernetes, a conta de serviço ou a imagem de container, para verificar sua legitimidade.
- Após a atestação, as aplicações acessam a API da carga de trabalho do SPIFFE local exposta pelo agente do SPIRE para gerar SVIDs exclusivos e de curta duração. Esses SVIDs estabelecem conexões Mutual Transport Layer Security (mTLS), garantindo uma comunicação confiável entre os serviços.
Por que escolher a Red Hat para a segurança Zero Trust?
As soluções Red Hat são desenvolvidas com foco na segurança em todas as camadas. Com elas, você cria uma base Zero Trust para viabilizar a soberania de dados e oferecer suporte à implantação e ao gerenciamento de cargas de trabalho nativas em nuvem e baseadas em IA. Os experts da Red Hat podem ajudar você a adotar a tecnologia Zero Trust em ambientes multicloud.
O Red Hat Zero Trust Workload Identity Manager é um operador do Red Hat OpenShift que simplifica a instalação e o gerenciamento do ciclo de vida do SPIFFE e do SPIRE. Você pode instalá-los em seus clusters existentes. Eles são validados para funcionar no Red Hat OpenShift e contam com documentação completa para instalação e solução de problemas.