Visão geral da segurança do Anthos Service Mesh
A segurança do Anthos Service Mesh ajuda a minimizar as ameaças internas e reduzir o risco de uma violação de dados, garantindo que todas as comunicações entre as cargas de trabalho sejam criptografadas, mutuamente autenticadas e autorizadas.
Tradicionalmente, a microssegmentação que usa regras baseadas em IP tem sido usada para reduzir riscos de pessoas com informações privilegiadas. No entanto, a adoção de contêineres, serviços compartilhados e ambientes de produção distribuídos por várias nuvens torna essa abordagem mais difícil de configurar e ainda mais difícil de manter.
Com o Anthos Service Mesh, é possível configurar uma camada de rede de segurança contextualizada para o serviço e para a solicitação, que seja independente da segurança da rede subjacente. Por isso, o Anthos Service Mesh permite adotar uma postura de defesa que seja consistente com os princípios de segurança de confiança zero. Ele permite fazer isso por meio de políticas declarativas e sem modificar nenhum código de aplicativo.
TLS mútuo
O Anthos Service Mesh usa TLS mútuo (mTLS) para autenticação de pares. Autenticação se refere à identidade: o que é este serviço? Quem é este usuário final? Posso acreditar que são quem dizem ser?
O mTLS possibilita que as cargas de trabalho verifiquem as identidades umas das outras e e façam autenticações umas das outras. Talvez você esteja familiarizado com o TLS simples pelo seu uso em HTTPS para permitir que os navegadores confiem em servidores da Web e criptografem os dados que são trocados. Quando o TLS simples é usado, o cliente estabelece que o servidor é confiável ao validar o certificado. O mTLS é uma implementação de TLS em que o cliente e o servidor apresentam certificados um para o outro e verificam as identidades umas das outras.
mTLS é a maneira usada pelo Anthos Service Mesh para implementar autenticação e criptografia entre serviços.
No Anthos Service Mesh 1.6 e posteriores, o mTLS automático é ativado por padrão. Com o mTLS automático, um proxy sidecar do cliente detecta automaticamente se o servidor tem um sidecar. O sidecar do cliente envia o mTLS para as cargas de trabalho que têm sidecars e um tráfego de texto simples para as que não têm. No entanto, os serviços aceitam o tráfego de texto simples e mTLS. Para proteger sua malha de serviço, recomendamos que você migre seus serviços para aceitar apenas o tráfego mTLS.
Benefícios de segurança
O Anthos Service Mesh oferece os seguintes benefícios de segurança:
Reduz os riscos de ataques de reprodução ou de falsificação de identidade que usam credenciais roubadas. O Anthos Service Mesh depende de certificados do mTLS para autenticar pares, em vez de tokens do portador, como JSON Web Tokens (JWT). Como os certificados mTLS estão vinculados ao canal TLS, não é possível que uma entidade no ambiente de produção falsifique sua identidade simplesmente reproduzindo o token de autenticação sem acesso às chaves privadas.
Garante a criptografia em trânsito. O uso do mTLS para autenticação também garante que todas as comunicações TCP sejam criptografadas em trânsito.
Garante que apenas clientes autorizados possam acessar um serviço com dados confidenciais. Apenas os clientes autorizados podem acessar um serviço com dados confidenciais, independentemente do local da rede do cliente e das credenciais no nível do aplicativo. É possível especificar que apenas os clientes com identidades de serviço autorizadas ou nos namespaces autorizados do Kubernetes podem acessar um serviço. Também é possível usar políticas de acesso baseadas em IP para conceder acesso a clientes implantados fora do ambiente do GKE Enterprise.
Reduz o risco de violação de dados do usuário na rede de produção. É possível garantir que as pessoas com acesso só possam acessar dados confidenciais por meio de clientes autorizados. Além disso, é possível garantir que determinados clientes só tenham acesso aos dados do usuário se o cliente puder apresentar um token de usuário válido e de curta duração. Isso reduz o risco de o comprometimento de uma única credencial do cliente dar a um invasor acesso a todos os dados do usuário.
Identifica quais clientes acessaram um serviço com dados confidenciais. A geração de registros de acesso do Anthos Service Mesh captura a identidade mTLS do cliente, além do endereço IP. Assim, é fácil entender qual carga de trabalho acessou um serviço, mesmo que ela seja efêmera, implantada dinamicamente e esteja em outro cluster ou rede de nuvem privada virtual (VPC).
Recursos
Nesta seção, descrevemos os recursos que o Anthos Service Mesh oferece para perceber os benefícios de segurança.
Certificado automático e rotação de chaves
O uso do mTLS com base nas identidades de serviço permite criptografar todas as comunicações TCP e fornece uma credencial não reproduzível mais segura para controle de acesso. Um dos principais desafios do uso do mTLS em escala é o gerenciamento das chaves e dos certificados de todas as cargas de trabalho de destino. O Anthos Service Mesh cuida da rotação de chaves e certificados mTLS para cargas de trabalho do GKE Enterprise sem interromper as comunicações. Para reduzir os riscos, é possível definir intervalos menores de atualização de certificado.
Autoridade de certificação do Anthos Service Mesh (CA Mesh)
O Anthos Service Mesh inclui uma autoridade certificadora particular multirregional gerenciada, a Mesh CA, para emitir certificados para o mTLS. A Mesh CA é um serviço altamente confiável e escalonável, otimizado para cargas de trabalho escalonadas dinamicamente em uma plataforma de nuvem. Com ela, o Google gerencia a segurança e a disponibilidade do back-end da CA. A CA da malha permite contar com uma única raiz de confiança em todos os clusters do GKE Enterprise. Usando a Mesh CA, é possível confiar que os pools de identidade de carga de trabalho fornecerão isolamento geral. Por padrão, a autenticação falhará se o cliente e o servidor não estiverem no mesmo pool de identidade de carga de trabalho.
Os certificados do Mesh CA incluem os seguintes dados sobre os serviços do aplicativo:
- O ID do projeto do Google Cloud
- O namespace do GKE
- O nome da conta de serviço do GKE
Certificate Authority Service
Como alternativa à CA da malha, é possível configurar o Anthos Service Mesh para usar o Certificate Authority Service, que é adequado para os casos de uso a seguir:
- Se você precisar de autoridades certificadoras diferentes para assinar certificados de carga de trabalho em clusters diversos.
- Se você quiser usar os certificados de plug-in da CA personalizados do Istiod.
- Se você precisar fazer backup das chaves de assinatura em um HSM gerenciado.
- sua empresa é altamente regulada e está sujeita a conformidade.
- Se você quiser encadear a Mesh CA do Anthos Service a um certificado raiz empresarial personalizado para assinar certificados de carga de trabalho.
O custo da Mesh CA está incluído nos preços do Anthos Service Mesh. O serviço da CA não está incluído no preço base do Anthos Service Mesh e é cobrado separadamente. Além disso, o serviço da CA vem com um SLA explícito, mas a Mesh CA não.
Para essa integração, todas as cargas de trabalho no Anthos Service Mesh recebem dois papéis do IAM:
Políticas de controle de acesso baseadas na identidade (firewall)
Com o Anthos Service Mesh, é possível configurar políticas de segurança de rede baseadas na identidade mTLS em comparação com o endereço IP do par. Isso permite criar políticas que sejam independentes do local de rede da carga de trabalho. Atualmente, apenas as comunicações entre clusters no mesmo projeto do Google Cloud são suportadas.
Solicitar políticas de controle de acesso com base em declarações (firewall)
Além da identidade mTLS, é possível conceder acesso com base nas declarações de solicitação no cabeçalho do JWT de solicitações HTTP ou gRPC. O Anthos Service Mesh permite declarar que um JWT está assinado por uma entidade confiável. Isso significa que é possível configurar políticas que permitem o acesso de determinados clientes somente se houver uma declaração de solicitação ou um valor especificado.
Autenticação de usuário com o Identity-Aware Proxy
Use o Identity-Aware Proxy (IAP) para autenticar usuários que acessam qualquer serviço exposto em um gateway de entrada do Anthos Service Mesh. O IAP pode autenticar usuários que fazem login por um navegador, integrar-se a provedores de identidade personalizados e emitir um token JWT ou um RCToken de curta duração que pode ser usado para conceder acesso ao gateway de entrada ou a um serviço downstream (usando um sidecar). Para mais informações, consulte Como integrar o IAP com o Mesh Service Mesh.
Autenticação de usuários com o Identity Provider atual
É possível integrar o Identity Provider atual ao Anthos Service Mesh para fornecer autenticação de usuário final baseada em navegador e controle de acesso às cargas de trabalho implantadas. Para mais informações, consulte Como configurar a autenticação do usuário do Anthos Service Mesh.
Geração de registros e monitoramento de acesso
O Anthos Service Mesh garante que os registros e as métricas de acesso estejam disponíveis na Observabilidade do Google Cloud e fornece um painel integrado para entender os padrões de acesso de um serviço ou carga de trabalho com base nesses dados. Também é possível configurar um destino particular. O Anthos Service Mesh permite reduzir o ruído nos registros de acesso registrando apenas acessos bem-sucedidos uma vez em uma janela de tempo configurável. As solicitações negadas por uma política de segurança ou que resultam em um erro são sempre registradas. Isso permite reduzir significativamente os custos associados à entrada, armazenamento e processamento de registros, sem a perda dos indicadores principais de segurança.
Em conformidade com o FIPS
Todos os componentes e proxies do plano de controle no cluster usam módulos de criptografia validados por FIPS 140-2.
Limitações
No momento, a segurança do Anthos Service Mesh tem as seguintes limitações:
- A Mesh CA só é compatível com o GKE no Google Cloud e no local.
- A autenticação do usuário que usa o IAP exige que um serviço seja publicado na Internet. Com o IAP e o Anthos Service Mesh, é possível configurar políticas que restringem o acesso a usuários e clientes autorizados em um intervalo de IP permitido. Se você optar por expor o serviço apenas aos clientes na mesma rede, será necessário configurar um mecanismo de política personalizado para autenticação de usuários e emissões de token.
A seguir
- Práticas recomendadas de segurança do Anthos Service Mesh
- Configurar a segurança de transporte
- Atualize suas políticas de autorização