网络和安全设置
跨域资源共享(CORS)
要配置 CORS(跨源资源共享),必须安装以下依赖项:
pip install apache-superset[cors]
可以在 superset_config.py
中的指定以下键来配置 CORS:
ENABLE_CORS
:必须设置为True
才能启用 CORSCORS_OPTIONS
:传递给 Flask-CORS 的选项 (文档)
HTTP头
请注意,Superset 捆绑了 flask-talisman, 自称为一个小巧的 Flask 扩展,用于设置可以帮助防止一些常见 Web 应用程序安全问题的 HTTP 头。
CSRF 设置
类似地,flask-wtf 用于管理
一些 CSRF 配置。如果您需要从 CSRF 中豁免端点(例如,如果您正在
运行自定义身份验证回调端点),可以将端点添加到 WTF_CSRF_EXEMPT_LIST
:
SSH 隧道
-
打开功能标志
- 将
SSH_TUNNELING
更改为True
- 如果您想在建立隧道时增加更多安全性,我们允许用户重写
SSHTunnelManager
类这里 - 您还可以设置
SSH_TUNNEL_LOCAL_BIND_ADDRESS
这是隧道将在您的 VPC 上可访问的主机地址
- 将
-
创建带有 SSH 隧道的数据库
- 启用功能标志后,现在应该可以看到 SSH 隧道切换。
- 单击切换以启用 SSH 隧道并相应地添加您的凭据。
- Superset 允许两种不同的认证类型(Basic + Private Key)。这些凭据应来自您的服务提供商。
-
验证数据是否流动
- 启用 SSH 隧道后,转到 SQL Lab 并编写查询以验证数据是否正常流动。
域名分片
Chrome 允许每次每个域名最多打开 6 个连接。当仪表板中有超过 6 个切片时, 大量的时间获取请求会被排队并等待下一个可用的套接字。 PR 5039 向 Superset 添加了域名分片, 并且此功能仅通过配置启用(默认情况下 Superset 不允许跨域请求)。
在您的 superset_config.py
文件中添加以下设置:
SUPERSET_WEBSERVER_DOMAINS
: 域名分片功能的允许主机名列表。
请将您的域名分片创建为主域名的子域名,以便授权在新域名上正常工作。例如:
SUPERSET_WEBSERVER_DOMAINS=['superset-1.mydomain.com','superset-2.mydomain.com','superset-3.mydomain.com','superset-4.mydomain.com']
或者,如果域名分片不是主域名的子域名,请在您的 superset_config.py
文件中添加以下设置。
SESSION_COOKIE_DOMAIN = '.mydomain.com'
中间件
Superset 允许您添加自己的中间件。要添加自己的中间件,请更新
superset_config.py
中的 ADDITIONAL_MIDDLEWARE
键。
ADDITIONAL_MIDDLEWARE
应该是您额外的中间件类的列表。
例如,要从像 nginx 这样的代理服务器后面使用 AUTH_REMOTE_USER
,您必须添加一个
简单的中间件类,将 HTTP_X_PROXY_REMOTE_USER
的值(或任何其他自定义头
从代理)添加到 Gunicorn 的 REMOTE_USER
环境变量。