安全设置

这里介绍一些您在生产部署中可能需要配置的常见安全字段。

启用 TLS

作为 Web 应用程序,Dask-Gateway 的任何生产部署都应启用 TLS 加密 (HTTPS) 运行。有几种常见的启用方式。

使用您自己的 TLS 证书

如果您有自己的 TLS 证书/密钥对,可以在 dask_gateway_config.py 文件中指定文件位置。相关的配置字段是

  • c.Proxy.tls_cert

  • c.Proxy.tls_key

c.Proxy.tls_cert = "/path/to/my.cert"
c.Proxy.tls_key = "/path/to/my.key"

请注意,证书和密钥必须存储在只有管理员用户可读的安全位置。

使用 letsencrypt

也可以使用 letsencrypt 自动获取 TLS 证书。如果您的 letsencrypt 正在使用默认选项运行,您可以通过在 dask_gateway_config.py 文件中添加以下内容来配置此项:

c.Proxy.tls_cert = "/etc/letsencrypt/live/{FQDN}/fullchain.pem"
c.Proxy.tls_key = "/etc/letsencrpyt/live/{FQDN}/privkey.pem"

其中 FQDN 是您服务器的完全限定域名

使用外部 TLS 终止

如果 dask-gateway-server 运行在执行 TLS 终止的代理(例如 NGINX)后面,则无需进一步配置。

代理身份验证令牌

为了保护代理和网关服务器之间的通信,使用了秘密令牌。默认情况下,此令牌会自动生成。如果代理是外部管理的(即 c.Proxy.externally_managed 设置为 true),管理员则需要明确配置此令牌。您有两种方法可以实现这一点:

  • 在您的 dask_gateway_config.py 文件中配置 c.Proxy.api_token。由于令牌应保密,此配置文件必须只能由管理员用户读取。

  • 设置 DASK_GATEWAY_PROXY_TOKEN 环境变量。出于安全原因,此环境变量应该只能被网关服务器和代理看到。

无论哪种情况,这两个选项都需要一个 32 字节的随机字符串,编码为十六进制。一种创建这些字符串的方法是通过 openssl 命令行工具 (CLI):

$ openssl rand -hex 32