SageMaker上Streamlit应用共享链接提示过期令牌问题求助
解决SageMaker Studio中Streamlit应用共享链接的Auth Token问题
问题原因
SageMaker Studio的代理链接(/jupyter/default/proxy/<port>/)依赖当前用户的会话认证令牌,该令牌与个人登录会话绑定,其他用户无对应有效令牌,因此访问时会触发认证错误。
解决方案
方法1:使用SageMaker Studio官方应用共享功能生成有效链接
SageMaker Studio提供的共享机制会生成包含临时认证信息的合法链接:
- 在SageMaker Studio中打开运行Streamlit应用的终端或笔记本
- 点击顶部菜单栏的 Share 按钮,选择 Share Application
- 在弹出窗口中选择对应Streamlit应用的端口,设置共享有效期(最长支持7天)
- 生成的共享链接带有有效认证参数,其他用户可直接通过该链接访问
方法2:部署为SageMaker公开端点(适合长期共享)
若需要长期对外提供访问,可将应用部署为SageMaker端点并配置权限:
- 停止当前Studio中运行的Streamlit应用
- 将Streamlit应用打包为Docker镜像,通过SageMaker的端点部署功能发布
- 配置端点访问权限:可通过IAM策略限制指定用户访问,或按需设置为公开访问(需谨慎,避免未授权访问)
方法3:临时禁用Streamlit认证检查(仅测试场景使用)
仅适用于内部测试,存在安全风险,不推荐生产环境使用:
- 启动Streamlit时添加参数:
streamlit run your_app.py --server.enableCORS false --server.enableXsrfProtection false - 该方式仍要求其他用户拥有SageMaker Studio的访问权限,且会降低应用安全性
注意事项
- 共享链接的有效期需提前设置,过期后需重新生成
- 公开端点部署时,必须通过IAM或VPC配置严格的访问控制,防止数据泄露
- 禁止直接分享个人代理链接,该链接绑定你的会话令牌,泄露后可能导致你的Studio会话被他人访问
内容的提问来源于stack exchange,提问作者S_S
相关产品推荐
相关产品推荐

