希望你一切顺利!
我们已经使用apache NiFi开发了ETL管道。仅当客户端从门户上传源数据文件时,才会触发。之后,源文件中存在的数据经过各个层,被转换并存储回仓库(即 hive(。
目标 :识别敏感信息并将其屏蔽,以便最终用户看不到实际数据。
识别敏感数据和屏蔽策略:我们将利用开源工具来实现这一目标,如下所示。
-
数据管理员工作室 :此工具允许我识别敏感信息并正确标记它。
-
Apache Atlas:一旦数据管理员用户确认了标签,那么该标签将被推送到Apache图谱中。
-
Apache ranger :最后,我们可以使用 Apache ranger 定义基于标签的屏蔽策略,该策略将允许或拒绝特定用户。
有关上述解决方案的更多详细信息,请访问链接。
https://www.youtube.com/watch?v=RzEfLwJaLsc
问题:为了将数据提供给DSS工具,应首先将其加载到hive表中。那很好。但是我们不能停止中间现有的ETL流,然后开始敏感信息的识别过程。上面的解决方案必须需要一些手动过程,我想摆脱并使其自动化,也就是说,它应该插入NiFi管道中的某个地方。但到目前为止,根据我的理解,DSS 不允许我们做这样的事情。
手动流程 :
-
创建资产集合
-
接受/拒绝 DSS 中建议的代码。
如果我们无法在管道中插入识别过程,则客户端敏感数据将向所有人公开,并且对团队中的每个人都可见。我想要一些东西,我们可以在敏感数据实际加载到 HDFS 或 Hive 表中之前对其进行去标识化。
如果有人已经在这个特定领域工作过,请写下您对同一问题的回复。
我没有测试它,但这是我对这个挑战的看法。
- 设置系统,使默认情况下数据对所有人(或任何人(不可见
- 将数据加载到配置单元
- 让探查器运行并接受其建议
- 向应具有访问权限的人员开放数据(探查器找到的内容除外(
还有一些实现细节需要解决(例如,如何自动化步骤 3/4,以及是否可以使用标签解决这个问题,或者数据是否需要先位于暂存区域中(。但我希望这能引导你走向一个好的方向。
一个想法可能是使用 nifi (https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.5.0/org.apache.nifi.processors.standard.EncryptContent/( 的 EncryptContent 。然后,加载到 Hive 中的值将首先被加密,并且对监管员不可见。标记完成后 - 然后在管道的后续部分(我假设您也在使用 nifi( - 您可以根据需要解密回内容。