AWS MSK集群配置Bearer Token认证(KIP-768)相关资源咨询
AWS MSK(Kafka 3.3.1)基于KIP-768配置Bearer Token认证指南
KIP-768在Kafka 2.8版本已正式引入,AWS MSK 3.3.1完全支持该特性。以下是具体配置步骤,覆盖集群端与客户端实现:
一、MSK集群配置
作为托管服务,MSK需通过自定义配置组添加KIP-768相关参数:
启用SASL_SSL监听器与OAUTHBEARER机制
在集群自定义配置中添加:listener.name.sasl_ssl.security.protocol=SASL_SSL listener.name.sasl_ssl.sasl.enabled.mechanisms=OAUTHBEARER若已有其他SASL机制(如SCRAM-SHA-512),用逗号分隔多个值即可,例如
SCRAM-SHA-512,OAUTHBEARER。配置Token验证逻辑
指定官方验证回调处理器,并关联你的OAuth2授权服务器信息,用于校验Token合法性:listener.name.sasl_ssl.bearer.sasl.server.callback.handler.class=org.apache.kafka.common.security.oauthbearer.OAuthBearerValidatorCallbackHandler listener.name.sasl_ssl.bearer.sasl.oauth.valid.issuer.uri=https://your-oauth-issuer-domain.com listener.name.sasl_ssl.bearer.sasl.oauth.jwks.endpoint.uri=https://your-oauth-issuer-domain.com/.well-known/jwks.json需确保MSK集群能访问上述授权服务器的JWKS端点,用于验证Token签名。
可选:集群内部通信启用Bearer Token
若需要Broker间通信也采用该认证方式,添加:listener.name.sasl_ssl.sasl.mechanism.inter.broker.protocol=OAUTHBEARER无需则保持原有内部通信机制即可。
二、生产者/消费者客户端配置
客户端需配置SASL_OAUTHBEARER认证逻辑,自动获取并使用Bearer Token与集群通信:
生产者配置示例
bootstrap.servers=your-msk-bootstrap-servers:9094 security.protocol=SASL_SSL sasl.mechanism=OAUTHBEARER sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \ oauth.client.id="your-client-id" \ oauth.client.secret="your-client-secret" \ oauth.token.endpoint.uri="https://your-oauth-issuer-domain.com/token"; sasl.login.callback.handler.class=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginCallbackHandler
消费者配置示例
bootstrap.servers=your-msk-bootstrap-servers:9094 group.id=your-consumer-group-id security.protocol=SASL_SSL sasl.mechanism=OAUTHBEARER sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \ oauth.client.id="your-client-id" \ oauth.client.secret="your-client-secret" \ oauth.token.endpoint.uri="https://your-oauth-issuer-domain.com/token"; sasl.login.callback.handler.class=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginCallbackHandler
关键注意事项
- Token声明要求:OAuth2授权服务器生成的Token必须包含
sub(主体标识)、iat(签发时间)、exp(过期时间)核心声明;若需细粒度权限控制,可添加kafka.resource类声明,配合Kafka ACL实现资源访问限制。 - 网络连通性:确保MSK集群安全组允许访问OAuth2授权服务器的Token与JWKS端点,同时客户端能访问MSK的SASL_SSL端口(默认9094)。
- 自定义验证扩展:若官方验证处理器无法满足需求,可编写自定义
OAuthBearerValidatorCallbackHandler,打包为JAR后通过MSK插件功能部署到集群。
内容的提问来源于stack exchange,提问作者Vivere
相关产品推荐
相关产品推荐

