Skip to main content

保护应用程序层的安全

要保护应用程序层的安全,可以考虑使用用户和数据库身份验证、数字证书、加密。

内置用户身份验证

有了 Server 内置身份验证,将通过客户端 JavaScript 对用户进行身份验证,该 JavaScript 调用本地 SHA256 函数对密码进行散列和加盐,然后再将散列值发送到服务器,以与用户数据库(存储在 MongoDB 中)中的密码散列值进行比较。Server 仅存储散列值,永远不会看到用户密码的纯文本。

注意

我们已经更新了用于对密码进行散列以执行内置身份验证的算法。在 22.1 之前的版本中,客户端调用本地 bcrypt 库以在将散列值发送到 Server 之前对密码进行散列和加盐。

有关 Server 提供的其他身份验证方法的详细信息,请参阅本指南的 身份验证 部分。

数据库身份验证

Alteryx Server 将大多数应用程序信息保留在嵌入式 Mongo 数据库中。在安装过程中,将生成应用程序用户 ID 和密码以访问数据库中的信息。请参阅 控制器 帮助页面,了解其他数据库选项,包括用户管理的 Mongo 和 MongoDB Atlas。

传输加密

加密可防止在传输过程中泄露和修改敏感数据,例如密码、用户会话信息和事务。我们建议使用 HTTPS 和 TLS 1.2+ 来加密与服务器的连接,以防止被未经授权的人员拦截。可以在“系统设置”中配置 HTTPS 运行;要确保在 1.2 版或更高版本上协商 TLS,您可能需要按照本指南的 保护操作系统层的安全 一节中所述修改 Schannel 设置。

如需更多信息,请参阅 配置 Server SSL/TLS

静态数据的安全性

在进程执行过程中,Server 以临时文件、元信息、日志文件形式创建持久证据。这些静态数据实际存储在 Mongo DB 和 Server 的本地存储中。下面,您将看到一些有关静态数据的常见问题,以及可供实施以解决这些问题的技术。

注意

用户管理的 MongoDB 企业版或 MongoDB Atlas 实例支持静态加密。如需了解详细信息,请参阅 MongoDB 文档

YXDB 格式的临时文件用于在 Alteryx 进程执行期间存储数据。这些文件可以包含在运行时通过工作流流式传输的实际数据。

临时文件的范围限定为引擎调用,它将在下游进程不再需要临时文件时或在 Alteryx 工作流完成运行后被立即删除。如果 Alteryx 进程崩溃,这些文件有时会保留下来。即使在这种情况下,服务重启时仍会自动删除临时文件。

存储临时文件的顶级目录是在 Alteryx Server 系统设置  > Engine 设置  > Temporary Directory(临时目录) 中设置的。每个引擎调用都将其各自的临时文件存储在此位置下的单独子目录中。

增强临时文件存储的安全

遵循这些建议进一步保护临时文件。

  • 具备充足的 RAM(内存)以便 Alteryx 使用较少的磁盘存储(交换)。

  • 取消选中 系统设置 > Engine Settings(引擎设置) 中的 Allow Users to Override(允许用户覆盖) 选项,这样用户就不能写入其他位置。有关详细信息,请查看 引擎 帮助页面。

  • 取消选中 系统设置  >  Engine Settings 中的 Browse Everywhere Settings 选项,以防止创建 Alteryx Browse Everywhere 文件 (YXBE)。

  • 在加密驱动器上找到临时文件目录(例如,使用 BitLocker)。

  • 从自动备份中排除临时文件目录。

为 SSO 或 IWA 配置身份验证时,Server 不会拥有或存储用于登录的凭证。使用 Server 内置身份验证时,仅存储加盐的密码散列值。

Server 用于对其支持 MongoDB 进行身份验证的密码采用了由操作系统提供的加密功能的静态加密。

利用 Server 日志可以跟踪错误、警告、信息和调试消息。日志文件包含 Server 事件、工作流、访问过的数据文件、给定作业中正在处理的记录数的相关信息。它们不包含所使用、处理或输出的实际数据。系统会收集引擎、Server UI 节点和 Alteryx Service 的日志。

如果工作流加载失败,请联系客户支持以获得帮助。

日志保存在以下位置:

  • Server UI 节点日志存储在 C:\ProgramData\Alteryx\Gallery\Logs 中,其名称类似于:alteryx-2017-09-13.csv

  • Server/服务日志存储在 C:\ProgramData\Alteryx\Service  中,其名称类似于:AlteryxServiceLog_2017-06-04_00-46-07.log,最新日志命名为:AlteryxServiceLog.log

  • 引擎日志在默认情况下处于禁用状态,但可以在“系统设置”中启用。

    注意

    引擎日志可能包含由引擎在工作流执行期间调用的其他进程返回的堆叠跟踪或错误消息,这些消息可能会暴露传递到外部进程的数据或元数据。因此,我们建议仅在获得授权的人员进行有效故障排除时启用引擎日志。

  • Windows 事件查看器中可查看系统级别日志。

传输中的数据的安全性

Alteryx Server 的组件传输数据和工作流。在传输过程的不同点上,传输中的数据会根据配置进行加密或公开。

  • Server 的前端 UI 默认为 HTTP(TCP 端口 80 上为纯文本)。我们建议将 Server 配置为支持 HTTPS(端口 443 上为 SSL/TLS)。

  • 分布式 Server 集群内的节点间通信(请参阅本指南中的“部署类型”)也使用端口 80,但使用控制器令牌、加盐、时间信息进行 AES-256 加密。这可确保拥有安全的、对时间敏感的实际数据。

  • 控制器上运行的嵌入式 MongoDB 侦听未加密的 TCP/IP 套接字(TCP 端口 27018)。在一体化 Server 实例上,套接字侦听器仅适用于 localhost,不应向网络公开。如果使用嵌入式 MongoDB 运行分布式 Server(请参阅本指南中的 部署类型 ),则从其他群集节点到控制器 MongoDB 的连接将不会加密。要使用 TLS/SSL 加密数据库通信,必须切换到用户管理的 MongoDB(或 MongoDB Atlas)。

  • 数据源(Oracle 和 SQL Server)和报告平台(Tableau 和 PowerBI)的加密方法由第三方 ODBC 驱动程序或连接器定义。

正在传输的数据通过密码散列和加盐以及运行时生成的客户端 API 令牌进行保护,这些令牌在本指南的 Server 强化 部分中进行了说明。为了完全保护正在传输的数据,我们建议使用采用了 TLS 1.2 或更高版本的 HTTPS 来加密与 Server 的连接。

凭证存储

根据您的 Server 配置和使用情况,Server 可能会存储各种凭证。查看如何处理这些敏感信息。

运行中的工作流可能会在执行期间连接多个外部数据源,

  • 使用可以嵌入工作流中且使用“隐藏”或“用户/机器 (DPAPI)”加密(传统方法,不推荐;)进行保护的凭证;

  • 此类“隐藏”或“用户/机器 (DPAPI)”加密是在执行时从存储在托管数据连接或 Gallery Alias 中的

  • DCMe 加密存储中获取的。

对于托管数据连接,您将在工作流程 XML 中看到“ __ENCPWD__ ”,根据数据连接的配置,相应的凭证将以加密形式存储到以下任一 XML 文件中:

  • %UserProfile%\AppData\Roaming\Alteryx\Engine\GalleryAlias.xml

  • %ProgramData%\Alteryx\Engine\SystemAlias.xml

  • %ProgramData%\Alteryx\Engine\SystemConnections.xml

使用集成的 Windows 身份验证或 SAML,Server 不会拥有或存储 Server 用户凭证。

对于内置身份验证,Server 用户凭证将被散列、加盐和重复散列。

内部密钥(如控制器令牌和 Mongo DB 密码)使用 Windows Crypto API 在每台计算机上进行加密,密钥存储在以下位置: %ProgramData%\Microsoft\Crypto\RSA\MachineKeys 。如需更多信息,请参阅 控制器 帮助页面。

数字证书

数字证书是由受信任的证书颁发机构签署的 Server 身份证明。要正确支持从客户端浏览器到 Server 的加密连接,您必须为 Server 创建一个数字证书,并在将其安装到 Server 主机之前,让贵组织信任的证书颁发机构签署该证书。如需更多信息,请参阅 配置 Server SSL/TLS