Nesta página, descrevemos os métodos de autenticação compatíveis para aplicativos cliente que se conectam a brokers do Serviço gerenciado do Google Cloud para Apache Kafka.
Para aplicativos cliente do Google Cloud Managed Service para Apache Kafka executados em serviços do Google Cloud , como Google Kubernetes Engine, Compute Engine, Cloud Run ou funções do Cloud Run, você tem as seguintes opções de autenticação:
SASL/OAUTHBEARER (recomendado): esse é o método mais simples e seguro para clientes no Google Cloud. Ele usa Application Default Credentials (ADC) para encontrar automaticamente a identidade da conta de serviço associada ao ambiente. Isso elimina a necessidade de gerenciar e distribuir arquivos de credenciais estáticas, como chaves de conta de serviço.
SASL/PLAIN: um método útil para desenvolvimento inicial. O cliente se autentica usando uma chave de conta de serviço de longa duração.
mTLS: essa é uma opção se o padrão da sua organização for a autenticação baseada em certificado. Seu aplicativo em Google Cloud está configurado com um certificado e uma chave de cliente.
Para aplicativos clientes executados fora do Google Cloud, como em um data center local ou em outro provedor de nuvem, considere os seguintes métodos de autenticação. Escolha o melhor método com base na postura de segurança e na infraestrutura de identidade da sua organização.
Federação de identidade da carga de trabalho com SASL/OAUTHBEARER (recomendado): é o método mais seguro para clientes externos. Ela permite conceder a identidades de sistemas externos, como AWS, Microsoft Azure ou um provedor de identidade local, como o ADFS, a capacidade de representar umaGoogle Cloud conta de serviço. Em vez de gerenciar chaves de conta de serviço de longa duração, o cliente usa a credencial preferida para receber um token de acesso Google Cloud de curta duração. Em seguida, o cliente usa esse token para autenticação, o que reduz significativamente o risco de segurança associado a arquivos de credenciais estáticos.
mTLS: esse método é independente de provedor e é adequado se sua organização já usa uma infraestrutura de chave pública (ICP) para gerenciar certificados TLS para identidade de serviço. Ele permite que os clientes se autentiquem sem uma identidade específica do Google Cloud. No entanto, assim como o uso de chaves de conta de serviço, essa abordagem exige que você gerencie o ciclo de vida e a distribuição de credenciais de longa duração, como certificados de cliente.
SASL/PLAIN com uma chave de conta de serviço: esse método oferece uma maneira direta para um cliente externo se autenticar como uma identidade do Google Cloud . Você faz o download de um arquivo JSON da chave da conta de serviço e o usa na configuração SASL/PLAIN do cliente. Esse método geralmente não é recomendado para cargas de trabalho de produção porque exige o gerenciamento e a proteção de uma credencial estática de longa duração no lado do cliente.
Comparação de recursos entre SASL e mTLS
O principal mecanismo de autenticação do Managed Service para Apache Kafka é o SASL (Simple Authentication and Security Layer), que se integra diretamente aos serviços de identidade doGoogle Cloud. Como base, o SASL autentica clientes usando um principal do IAM Google Cloud , como uma conta de serviço. Para autorização, o SASL oferece flexibilidade: é possível gerenciar o acesso a clusters usando papéis granulares do IAM e listas de controle de acesso (ACLs) do Kafka.
Em contraste, o mTLS oferece um método de autenticação independente do provedor que não depende do Google Cloud IAM. Em vez disso, o mTLS autentica um cliente com base no certificado TLS dele, em que a identidade é derivada do nome do assunto do certificado.
Essa distinção leva a uma diferença fundamental na forma como a autorização é processada. Ao contrário dos principais do SASL, os principais do mTLS precisam ser autorizados usando exclusivamente as ACLs do Kafka. Eles não podem ser gerenciados com papéis do IAM Google Cloud .
Recomendamos configurar ACLs do Kafka para seu cluster. Se nenhuma ACL for definida, o comportamento padrão do Kafka concederá a todos os principais autenticados (usando SASL ou mTLS) acesso total ao cluster. Para mais informações sobre como configurar ACLs do Kafka, consulte Criar uma ACL do Serviço gerenciado para Apache Kafka.
O Managed Service para Apache Kafka oferece suporte à autenticação mTLS com certificados de cliente emitidos por autoridades certificadoras encontradas no serviço de AC. Se a sua organização usa uma raiz de confiança externa, é possível integrá-la criando uma CA subordinada no CA Service que se encadeia até a CA externa.
A tabela a seguir compara os recursos dos métodos de autenticação.
| Recurso | SASL/OAUTHBEARER | SASL/PLAIN | mTLS |
|---|---|---|---|
| Identidade principal | Google Cloud Principal do IAM | Google Cloud Principal do IAM | Nome do requerente do certificado |
| Tipo de credencial | Application Default Credentials (ADC) ou token do OAuth 2.0 | Chave de conta de serviço codificada em Base64 | Certificado do cliente e chave privada |
| Método de autorização | Google Cloud Papéis do IAM ou ACLs do Kafka | Google Cloud Papéis do IAM ou ACLs do Kafka | Somente ACLs do Kafka |
| Caso de uso | Clientes no Google Cloud; clientes externos que usam a federação de identidade da carga de trabalho | Clientes simples, cenários de teste ou sistemas legados em que é necessário usar uma chave de conta de serviço. | Independente de provedor, ideal para aplicativos no local, multicloud ou PKI atuais. |
| Configuração do cliente | Configuração do JAAS com classe de manipulador de login especializada (Java) ou um servidor de autenticação local (não Java) | Configuração do JAAS com PlainLoginModule padrão (Java) | Propriedades de keystore e truststore (por exemplo, security.protocol=SSL) |
| Disponibilidade do cluster | Todos os clusters | Todos os clusters | Clusters criados após 24 de junho de 2025 |
Escolher entre SASL e mTLS
A escolha do método de autenticação é orientada pelas políticas de segurança e pela infraestrutura atual da sua organização. Na maioria dos casos de uso, recomendamos usar SASL com o Google Cloud IAM.
O SASL com a Google Cloud IAM ou a federação de identidade da carga de trabalho oferece a experiência mais flexível e integrada para autenticação e autorização. Ele usa o sistema de identidade do Google Cloudcomo a única fonte de verdade para gerenciar permissões. Escolha este caminho se você quiser:
Gerencie centralmente as permissões dos clientes do Kafka usando os papéis do IAMGoogle Cloud que você já conhece.
Evite gerenciar credenciais estáticas em clientes.
Permita que clientes de outras nuvens, como AWS, Azure ou provedores de identidade locais, como Okta ou ADFS, façam a autenticação usando a federação de identidade da carga de trabalho. Esse método oferece uma solução de identidade segura e independente da nuvem sem precisar mudar para um protocolo de autenticação diferente.
Escolha mTLS se sua organização tiver uma exigência rigorosa de autenticação baseada em certificado. Essa necessidade surge quando você está migrando uma implantação local do Kafka que já usa certificados TLS para identidade ou quando a política corporativa exige certificados de cliente para todos os aplicativos. Embora o mTLS ofereça segurança forte no nível de transporte, lembre-se de que a autorização para clientes mTLS precisa ser gerenciada exclusivamente com ACLs do Kafka, que é separada do Google Cloud IAM.
Fluxo de trabalho para configurar SASL/PLAIN ou SASL/OAUTHBEARER
Para configurar um cliente para usar a autenticação SASL com o Serviço gerenciado para Apache Kafka, é necessário conceder permissões à identidade do cliente e configurar o aplicativo cliente com base no mecanismo SASL escolhido. Confira a seguir uma visão geral do fluxo de trabalho necessário. Para instruções detalhadas sobre como configurar o SASL, consulte Configurar a autenticação SASL.
Conceda permissões do IAM. Primeiro, conceda o papel Cliente do Kafka gerenciado (
roles/managedkafka.client) à conta de serviço que seu cliente usa para autenticação. Esse papel fornece a permissãomanagedkafka.clusters.connectnecessária para se conectar a clusters do Kafka no projeto.Configure o cliente do Kafka. A configuração específica do cliente depende de você usar o mecanismo SASL/OAUTHBEARER ou SASL/PLAIN.
Para SASL/OAUTHBEARER (recomendado): esse mecanismo usa as credenciais padrão do aplicativo (ADC, na sigla em inglês). A configuração depende do idioma do cliente:
Clientes Java: adicione a biblioteca de autenticação Google Cloud especializada ao classpath do aplicativo. Em seguida, configure as propriedades do cliente do Kafka para usar a classe
GcpLoginCallbackHandlerfornecida, que processa automaticamente a autenticação usando o ADC.O
GcpLoginCallbackHandleré uma classe usada com o mecanismo de autenticação OAUTHBEARER do Kafka, projetado especificamente para uso com o Serviço gerenciado para Apache Kafka. Ele processa a obtenção de um JSON Web Token (JWT) do provedor de identidade do Google, permitindo que os clientes do Kafka se autentiquem com o serviço usando o ADC.Clientes que não são Java: execute um servidor de autenticação local fornecido na máquina do cliente. Esse servidor usa o ADC para buscar credenciais e fornecê-las ao cliente do Kafka. Em seguida, o cliente é configurado para receber o token de autenticação do endpoint desse servidor local.
Para SASL/PLAIN
Esse mecanismo usa uma combinação de nome de usuário e senha. O aplicativo cliente precisa ser configurado para usar o protocolo de segurança SASL_SSL, o mecanismo PLAIN e uma configuração JAAS que especifica a classe
PlainLoginModule.O nome de usuário é o endereço de e-mail da conta de serviço. A senha pode ser gerada de duas maneiras:
Codificando um arquivo JSON de chave da conta de serviço em base64.
Ao conseguir um token de acesso de curta duração.
Configurar a autorização. Depois que um cliente é autenticado com sucesso usando SASL, o acesso dele é controlado por permissões definidas em papéis do IAM ou ACLs do Kafka no cluster.
Limitações do SASL
O método de autenticação SASL tem as seguintes limitações:
A autenticação SASL está inerentemente vinculada a principais do IAM. Ele não é adequado para organizações que exigem uma separação estrita da identidadeGoogle Cloud ou que usam identidades não Google, a menos que você configure a federação de identidade da carga de trabalho.
A SASL não usa certificados do cliente para autenticação. Não é uma opção direta para organizações que dependem de uma PKI para identificar aplicativos.
Fluxo de trabalho para configurar o mTLS
A configuração do mTLS para o Serviço gerenciado para Apache Kafka envolve a configuração de autoridades de certificação, do cluster do Kafka e dos clientes do Kafka. Para instruções detalhadas sobre como configurar o mTLS, consulte Configurar a autenticação mTLS.
Configure autoridades certificadoras (CAs). Primeiro, crie e configure pools de ACs no Certificate Authority Service (serviço de AC). Se você criar pools de ACs em um projeto diferente, conceda a permissão do agente de serviço do Serviço gerenciado para Apache Kafka (
service-PROJECT_NUMBER@gcp-sa-managedkafka.iam.gserviceaccount.com) para acessar esses pools. É preciso criar certificados raiz e subordinados nos pools de CA.Configure o cluster do Kafka. Crie ou atualize o cluster para ativar o mTLS fornecendo os identificadores de recursos dos pools de AC configurados. Também recomendamos configurar a propriedade do broker
ssl.principal.mapping.rulespara criar nomes principais simplificados para uso em ACLs. É possível fazer isso usando comandos da Google Cloud CLI.Configure os clientes do Kafka. Obtenha certificados de cliente das suas CAs e instale-os no ambiente do cliente, por exemplo, em um keystore Java. O aplicativo cliente precisa ser configurado com o protocolo de segurança (SSL) correto e o local do keystore para se conectar à porta de bootstrap mTLS dedicada do cluster, que é
9192.Monitorar o mTLS. Após a configuração, monitore a métrica
managedkafka.googleapis.com/mtls_truststore_update_countpara verificar se o cluster está atualizando os certificados da CA dos pools do serviço de CA, o que ele tenta fazer periodicamente. Também é possível usar o Cloud Logging.
Limitações do mTLS
O recurso de mTLS tem as seguintes limitações:
Só é possível usar o recurso mTLS em clusters do Serviço gerenciado para Apache Kafka criados após 24 de junho de 2025.
É necessário configurar a autorização para principais do mTLS usando ACLs do Kafka. Não é possível usar vinculações de papéis do IAM para autorizar clientes mTLS.
O serviço autentica apenas clientes que apresentam certificados gerenciados pelo serviço de CA. No entanto, é possível integrar uma raiz de confiança externa criando uma CA subordinada no CA Service que se encadeia à sua CA externa.
É possível configurar um cluster para confiar em até 10 pools de CA.