Driverless AI 安全性¶
注意事项¶
警告
警告 在 Driverless AI 的默认安装过程中,安全性已被禁用!默认情况下,Driverless AI 的安装以确保易用性为目标,并不会启用本文档中列出的所有安全功能。对于生产环境,我们建议遵循本文档中的指南,并实施安全的 Driverless AI 安装。
用户访问¶
身份验证¶
Driverless AI 支持“客户端证书”、LDAP、“本地”、mTLS、OpenID、PAM、“无”以及“不验证”(默认)等身份验证选项。以上身份验证选项可通过启动 Driverless AI Docker 映像时指定环境变量或在 config.toml 文件中指定适当的配置选项来进行配置。更多信息,请参见 身份验证方式.
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
任何受支持的身份验证 (如 LDAP、PAM) 方式, |
定义用户身份验证方式 |
|
|
了解您的安全需求。 |
用户重新登录的间隔小时数。 |
mTLS 身份验证¶
Driverless AI 通过设置特定验证模式以及证书授权文件、SSL 私钥和 SSL 证书文件来支持 TLS 双向认证 (mTLS)。更多信息,请参见 mTLS 身份验证示例.
数据安全¶
数据导入¶
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
只配置需要的数据源。 |
控制可用/已配置的数据源列表。 |
|
|
依据预期的文件大小和 Driverless AI 的部署规模进行配置。 |
限制上传文件的最大大小。 |
|
参见 config.toml |
建议将文件类型限制为目标环境中使用的扩展名(如 |
文件系统浏览器中列出的受支持文件格式。 |
|
|
|
在网络 UI 上显示所有可用数据源(即使未配置)。建议只显示已配置的数据源。 |
数据导出¶
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
|
控制下载任何数据集(已上传的数据集、预测结果、MLI)的功能。请注意:如果禁止下载数据集,我们强烈建议禁用自定义插件并移除另一种从应用程序导出数据的方式。 |
|
|
|
将“实验”页面上的所有下载项替换为 “导出”,并允许用户进入通过 |
|
|
|
将 MOJO 储存在 |
|
|
|
文件系统位置,当 |
关于工件的注意事项:
目前,
file_system
是可为artifacts_store
指定的唯一选项。在未来的版本中,将提供附加选项。Artifacts_file_system_directory
的位置预计为服务器上的目录。当启用/配置这些工件后, 已完成的实验 页面上的菜单选项发生变化。具体来讲,所有(AutoDoc 例外) “下载” 选项变为 “导出”。更多信息,请参阅 导出工件 。
日志¶
Driverless AI 会产生多种日志:
审核日志
服务器日志
实验日志
Driverless AI 应用程序的管理员(即负责应用程序配置和设置的人员)可以控制要写入日志的内容。
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
|
审核日志的保留天数。数值为 |
|
参见 config.toml |
— |
包含日志中未记录的配置选项列表。 |
|
|
参见 config.toml |
定义日志记录的详细级别 |
|
|
|
转储实验的服务器日志。这样做很危险,因为服务器日志可能包含关于使用 Driverless AI 的其他用户的实验信息。 |
|
|
— |
与自定义插件使用的 OSS H2O 实例相关的日志级别。 |
|
|
|
启用调试日志。 |
|
|
|
将自定义插件源代码转储到日志中。 |
用户数据隔离¶
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
指定目录的正确名称和位置。 |
Driverless AI 用于存储所计算的各种实验和数据集的目录 |
|
|
|
隐藏“文件”系统浏览器中的 |
|
|
|
为“文件”系统浏览器(“文件”数据源)启用路径筛选器。在默认情况下,禁用筛选器,这意味着用户可以浏览整个应用程序-本地文件系统。 |
|
|
包括文件夹路径列表或已登录用户目录的 |
绝对路径前缀列表,用于限制对“文件”浏览器的访问。 |
|
|
|
Driverless AI 用于搜索已更新 AutoDoc 模板的目录。提供空值 |
客户端-服务器通信安全¶
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
|
启用 HTTPS。 |
|
|
正确的私钥。 |
用于设置 HTTPS/SSL 通信的私钥。 |
|
|
正确的公用证书。 |
用于设置 HTTPS/SSL 通信的公用证书。 |
|
|
|
阻止 SSLv2 连接。 |
|
|
|
阻止 SSLv3 连接。 |
|
|
|
阻止 TLSv1 连接。 |
|
|
|
阻止 TLSv1.1 连接。 |
|
|
|
阻止 TLSv1.2 连接。 |
|
|
|
阻止 TLSv1.3 连接。 |
响应标头¶
通过以下选项控制在 Driverless AI 服务器与 Driverless AI 客户端(浏览器、Python/R 客户端)之间传递的响应标头:
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
参见下文 |
配置服务器响应中返回的 HTTP 标头。 |
推荐的响应标头¶
标头 |
描述 |
示例值 |
链接 |
---|---|---|---|
|
标头让网站能够高数浏览器只应使用 HTTPS 而非 HTTP 访问。 |
|
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security |
|
内容安全策略 (CSP) 是一个帮助检测和减少某些类型攻击的附加安全层,这些攻击包括跨站脚本和数据注入攻击。可控制页面下载数据源的位置。 |
请注意:Driverless AI 仍需要配置 |
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP https://infosec.mozilla.org/guidelines/web_security#Examples_5 |
|
控制页面获取数据源以在数据帧内进行渲染的位置。此处的值将覆盖默认值,默认值为 |
|
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options |
|
防止浏览器尝试确定不同于所声明内容类型的资源内容类型。 |
|
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options |
|
HTTP X-XSS-Protection 响应标头是 Internet Explorer、Chrome 和 Safari 的一项功能,在这些浏览器检测到跨站脚本 (XSS) 攻击时,会阻止页面加载。当值设置为 1 以及检测到由跨站脚本攻击时,浏览器会对页面进行清理(删除不安全的部分)。 |
|
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection |
需考虑的其他标头¶
标头 |
文档资料 |
---|---|
与 |
https://developer.mozilla.org/en-US/docs/Web/HTTP/Public_Key_Pinning https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS |
Web UI 安全¶
注解
Driverless AI UI 采用了用户友好型设计,默认会启用自动完成等各种功能。禁用对用户友好的功能会提高应用程序的安全性,但会影响用户友好性和应用程序的可用性。
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
|
控制 Web UI 元件中的自动完成功能(如登录输入)。 |
|
|
|
禁用 Web 浏览器的本地存储。 |
|
|
|
在网络 UI 上显示所有可用数据源(即使未配置)。建议只显示已配置的数据源。 |
|
|
|
依据初始化会话的 IP 地址验证每个请求 IP 地址。 |
|
|
|
禁用并发会话(登录会话)。 |
|
|
|
启用 XSRF(跨站请求伪造)保护。 |
|
|
|
启用 SECURE cookie 标志。请注意,必须启用 HTTPS。 |
自定义插件安全¶
注解
Driverless AI 默认启用自定义插件,作为数据科学团队可用来扩展应用程序功能的主要路由。在企业环境中,建议按照最佳软件工程规范开发自定义插件(即代码审核、测试、分阶段发布等),并只捆绑预定义和经批准的一系列自定义 Driverless AI 扩展程序。
选项 |
默认值 |
建议值 |
描述 |
---|---|---|---|
|
|
|
启用自定义 Python 插件。 |
|
|
|
启用自定义插件的上传。 |
|
|
|
允许从外部 URL 下载自定义插件。 |
|
|
|
将自定义插件包括在默认的包含列表中。(警告:这会启用所有自定义插件) |
|
|
|
为自定义插件启用代码静态分析。 |
注解
默认会禁用 custom_recipe_security_analysis_enabled
,因为启用它会导致以前使用了插件的实验出现问题,使得无法传递安全分析。因此,您可能无法对这些实验存储新的数据集,而需要重新上传插件。出于安全考虑,仍然建议 启用 此选项。
配置安全¶
Driverless AI 提供了用于将敏感或安全配置信息存储在加密密钥库中的选项,以代替将安全设置作为明文保存在 config.toml 文件中。强烈建议对敏感信息进行加密。更多信息,请参阅 配置安全.
基线安全配置¶
以下 Driverless AI 配置为安全配置的示例。确保指定了所有必要的配置选项。更多信息,请参阅 使用 config.toml 文件.
#
# Authentication
#
# Configure auth method
authentication_method="PAM"
# Redirect user to login page after 24 hours
authentication_default_timeout_hours=24
#
# Data
#
# Configure available connectors
enabled_file_systems="hdfs"
show_all_filesystems=false
# Restrict downloads
enable_dataset_downloading=false
#
# Logs
#
# Enable removal of audit log records every five days
audit_log_retention_period=5
# Disable collection of server logs
collect_server_logs_in_experiment_logs=false
#
# User data isolation
#
# Disable access to DAI data_directory from file browser
file_hide_data_directory=true
# (Optional) Enable usage of path filters
# file_path_filtering_enabled=true
# (Optional) Specify a list of absolute path prefixes to restrict access to in file browser
# file_path_filter_include = "['/data']")
# (Optional) Specify a directory containing updated AutoDoc templates
# autodoc_additional_template_folder = ""
#
# Client-Server Communication
#
enable_https=true
ssl_key_file="<<FILL ME>>"
ssl_crt_file="<<FILL ME>>"
# (Optional) Disable support of TLSv1.2 on server side only if your environment supports TLSv1.3
# ssl_no_tlsv1_2=true
#
# Web UI security
#
allow_form_autocomplete=false
allow_localstorage=false
verify_session_ip=true
allow_concurrent_sessions=false
enable_xsrf_protection=true
extra_http_headers='{ "Strict-Transport-Security":"max-age=63072000","Content-Security-Policy":"default-src https: ; font-src \'self\'; script-src \'self\' \'unsafe-eval\' \'unsafe-inline\'; style-src \'self\' \'unsafe-inline\'; object-src \'none\'", "X-Frame-Options":"deny", "X-Content-Type-Options":"nosniff", "X-XSS-Protection":"1; mode=block" }'
#
# Custom Recipes
#
enable_custom_recipes=false
enable_custom_recipes_upload=false
enable_custom_recipes_from_url=false
include_custom_recipes_by_default=false
custom_recipe_security_analysis_enabled=true