您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Flink 1.12 如何通过 Kerberos 认证读取 Kafka 数据
## 前言
在大数据生态系统中,安全认证是生产环境不可或缺的一环。Apache Flink 作为流处理框架,与 Kafka 集成时经常需要配置 Kerberos 认证。本文将详细介绍 Flink 1.12 如何通过 Kerberos 认证读取 Kafka 数据。
---
## 环境准备
在开始配置前,请确保以下条件已满足:
1. **Flink 1.12** 集群已部署
2. **Kafka 集群** 已启用 Kerberos 认证
3. 已获取以下关键文件:
- `keytab` 文件(如 `user.keytab`)
- `krb5.conf` Kerberos 配置文件
- Kafka 的 JAAS 配置文件
---
## 核心配置步骤
### 1. 配置 Kerberos 环境
将 `krb5.conf` 文件放置到 Flink 所有节点的 `/etc/` 目录下(或通过 `java.security.krb5.conf` 参数指定路径):
```bash
cp krb5.conf /etc/krb5.conf
创建 JAAS 文件(如 kafka_client_jaas.conf
),内容如下:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/path/to/user.keytab"
principal="user@YOUR-REALM.COM";
};
在 flink-conf.yaml
中添加以下参数:
security.kerberos.login.keytab: /path/to/user.keytab
security.kerberos.login.principal: user@YOUR-REALM.COM
security.kerberos.login.contexts: KafkaClient
或在提交作业时通过命令行指定:
-Djava.security.auth.login.config=/path/to/kafka_client_jaas.conf
-Djava.security.krb5.conf=/etc/krb5.conf
Properties props = new Properties();
props.setProperty("bootstrap.servers", "kafka-broker:9092");
props.setProperty("group.id", "flink-consumer");
props.setProperty("security.protocol", "SASL_PLNTEXT");
props.setProperty("sasl.mechanism", "GSSAPI");
props.setProperty("sasl.kerberos.service.name", "kafka");
FlinkKafkaConsumer<String> consumer = new FlinkKafkaConsumer<>(
"your-topic",
new SimpleStringSchema(),
props
);
DataStream<String> stream = env.addSource(consumer);
principal
和 keytab
是否匹配kinit -kt user.keytab user@REALM
advertised.listeners
配置READ
权限keytab
和 jaas
文件分发到所有 TaskManager 节点
./bin/flink run \
-Djava.security.auth.login.config=/path/to/jaas.conf \
-Dyarn.security.credentials.hdfs.enabled=true \
-c com.YourJob /path/to/your-job.jar
通过正确配置 Kerberos 和 JAAS,Flink 1.12 可以安全地接入启用 Kerberos 的 Kafka 集群。关键点包括: - 确保所有节点有统一的 Kerberos 配置 - 正确传递安全参数到 JVM - 在代码中指定 SASL 协议
生产环境中建议结合密钥管理系统(如 HashiCorp Vault)动态管理 keytab 文件,进一步提升安全性。 “`
注:实际部署时需根据具体环境调整以下参数:
- YOUR-REALM.COM
- /path/to/
文件路径
- Kafka broker 地址和服务名
- 具体的 topic 和 consumer group 配置
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。