加密—在使用jdbc连接器写入kafka主题之前,有没有一种方法可以对数据进行加密?

xdyibdwo  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(421)

我们对使用kafka(合流平台)还很陌生,并且有一个使用jdbc源连接器的项目。使用这种方法,当数据存储在主题上时,是否也可以加密数据以隐藏个人信息等?或者我们需要采取不同的方法?
我知道,如果我们使用producer api,我们会在编写主题之前进行加密,就像这里讨论的那样。我还发现了一个kip,它讨论了端到端加密的需求,但似乎还没有实现。
我们将使用tls来保护数据线。

kgqe7b3p

kgqe7b3p1#

Kafka连接带有一个匿名转换来隐藏个人信息,然而,不是加密。对于匿名化,您可以使用名为“maskfield”的内置单消息转换(smt)(见下文)。加密还不可用,但您可以随时添加您的自定义smt与您选择的加密。
根据马斯克菲尔德的资料你可以用它来
使用字段类型的有效空值(如0、false、空字符串等)屏蔽指定的字段,或
使用replacement属性替换任何字符串或数字字段。
上述链接中还提供了配置的两种用法的示例:


# 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"

相关问题