数据保护技术
数据存储安全
为了确保您的个人敏感数据(例如用户名、密码、手机号码等)不被未经过认证、授权的实体或者个人获取,DLI对用户数据的存储和传输进行加密保护,以防止个人数据泄露,保证您的个人数据安全。
数据销毁机制
用户删除DLI队列后,存储在集群上的用户个人敏感数据会随之删除。
用户在控制台上删除填写的手机号、邮箱,并关闭消息通知功能后,数据库中会同步删除用户的手机号、邮箱信息。
数据传输安全
用户个人敏感数据将通过TLS 1.2、TLS1.3进行传输中加密,所有华为云DLI服务的API调用都支持 HTTPS 来对传输中的数据进行加密。
Spark作业传输通信加密
Spark作业支持通过配置表1中的参数开启通信加密。
请确保已上传密钥和证书到指定的OBS路径下,并在作业配置中的其他依赖文件中引入。
参数 |
说明 |
配置示例 |
---|---|---|
spark.network.crypto.enabled |
该参数用于启用或禁用数据在节点之间传输时的加密。当设置为true时,Spark会加密Executor和Driver之间以及Executor之间的所有通信。这是确保数据传输安全的重要配置。 |
true |
spark.network.sasl.serverAlwaysEncrypt |
该参数用于配置服务器端是否使用加密来与客户端通信。当设置为true时,服务器将要求所有客户端使用加密连接,这可以提高通信的安全性。 |
true |
spark.authenticate |
该参数用于配置是否对Spark应用程序的组件进行身份验证。启用身份验证可以防止未授权的访问。这个参数可以设置为true来启用身份验证。 |
true |
Flink作业传输通信加密
在Flink作业可以通过配置表2中的参数来开启SSL传输。
- 打开Task Manager之间data传输通道的SSL,会对性能会有较大影响,建议结合安全和性能综合考虑是否开启。
- 证书文件还需要在作业配置页面的“其他依赖文件”中完成配置。
- OBS路径/opt/flink/usrlib/userData/为默认存储依赖文件路径。
- 请确保已上传密钥和证书到指定的OBS路径下,并在作业配置中的其他依赖文件中引入。
参数 |
说明 |
是否必须 |
配置示例 |
---|---|---|---|
security.ssl.enabled |
打开SSL总开关。 |
是 |
true |
akka.ssl.enabled |
打开akka SSL开关。 |
否 |
true |
blob.service.ssl.enabled |
打开blob通道SSL开关。 |
否 |
true |
taskmanager.data.ssl.enable |
打开taskmanager之间通信的SSL开关。 |
否 |
true |
security.ssl.algorithms |
设置SSL加密的算法。 |
否 |
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
security.ssl.keystore |
keystore的存放路径,“flink.keystore”表示用户通过generate_keystore.sh*工具生成的keystore文件名称。 |
是 |
/opt/flink/usrlib/userData/flink.keystore |
security.ssl.keystore-password |
keystore的password,-表示需要用户输入自定义设置的密码值。 |
是 |
- |
security.ssl.key-password |
ssl key的password,-表示需要用户输入自定义设置的密码值。 |
是 |
- |
security.ssl.truststore |
truststore存放路径,“flink.truststore”表示用户通过generate_keystore.sh*工具生成的truststore文件名称。 |
是 |
/opt/flink/usrlib/userData/flink.truststore |
security.ssl.truststore-password |
truststore的password,-表示需要用户输入自定义设置的密码值。 |
是 |
- |
security.ssl.rest.enabled |
REST API接口是否启用SSL/TLS加密。 |
是 |
false |
security.ssl.verify-hostname |
用于控制在建立SSL/TLS连接时是否验证对端的主机名(hostname)与证书中的信息是否匹配。 |
否 |
false |
security.ssl.protocol |
指定SSL/TLS连接时所使用的协议版本 |
否 |
TLSv1.2、TLSv1.3 |
security.ssl.encrypt.enabled |
Flink集群内部以及与其他组件之间通信时是否启用数据加密 |
否 |
false |
开启Flink作业传输通信加密配置示例:
security.ssl.enabled: true security.ssl.encrypt.enabled: false security.ssl.key-password: *** security.ssl.keystore-password: Admin12! security.ssl.keystore: /opt/flink/usrlib/userData/*.keystore security.ssl.protocol: TLSv1.2 security.ssl.rest.enabled: false security.ssl.truststore-password: *** security.ssl.truststore: /opt/flink/usrlib/userData/*.truststore security.ssl.verify-hostname: false