我们刚开始使用Kafka(Confluent平台),并且有一个使用JDBC源连接器的项目。通过这种方法,当数据存储在主题上时,是否还可以加密数据以隐藏个人信息等?还是我们需要采取其他方法?
我知道,如果我们使用生产者API,我们将在写入主题之前进行加密-如here所述。我还发现有KIP讨论了端到端加密的 desire ,但似乎尚未实现。
我们将使用TLS保护线路上的数据。
答案 0 :(得分:1)
Kafka Connect带有匿名化转换以隐藏个人信息,但是不加密。对于匿名化,您可以使用称为“ MaskField”的内置单个消息转换(SMT)(请参见下文)。加密功能尚不可用,但是您始终可以随意选择自己选择的加密方式来添加custom SMT。
根据MaskField上的文档,您可以将其用于
在上述链接中还提供了两种配置用法的示例:
# Mask Value
"transforms": "MaskField",
"transforms.MaskField.type": "org.apache.kafka.connect.transforms.MaskField$Value",
"transforms.MaskField.fields": "string_field"
# Replcae Value
"transforms": "SSNMask,IPMask,PhoneMask"
"transforms.SSNMask.type": "org.apache.kafka.connect.transforms.MaskField$Value"
"transforms.SSNMask.fields": "SSN"
"transforms.SSNMask.replacement": "***-***-****"
"transforms.IPMask.type": "org.apache.kafka.connect.transforms.MaskField$Value"
"transforms.IPMask.fields": "IPAddress"
"transforms.IPMask.replacement": "xxx.xxx.xxx.xxx"
"transforms.PhoneMask.type": "org.apache.kafka.connect.transforms.MaskField$Value"
"transforms.PhoneMask.fields": "office,mobile"
"transforms.PhoneMask.replacement": "+0-000-000-0000"