机器学习平台系列(一) - 初探 Jupyter Notebook 认证机制

最近准备调研下 Jupyter Notebook 的 单用户安全机制(认证) 以及如何实现 多租户,以便集成到公司的云平台,进而作为基于大数据平台的机器学习平台的一部分。

 

1. 问题分析

 

数据分析以及算法团队的同学使用 Jupyter Notebook 进行数据分析和建模等工作,其工作流程如下所示:

 

  1. 业务部门以组为单位申请一台物理服务器
  2. 搭建 Python 环境,启动 Jupyter Notebook,每个同学创建自己的工程,进行代码开发
  3. 建模完成之后,各个同学配置离线调度,对预测数据进行离线预测

 

三个环节分别对应三个问题:

 

  1. 公司为节省资源,已经不允许各业务部门直接申请物理机
  2. Jupyter Notebook 默认配置无法做到代码的严格控制,任何人都可以进入、访问、修改其他人的源码
  3. 多个同学的代码同时运行,对资源的使用无法做到隔离。尤其是建模之后,对模型的离线调度,内存和CPU的互相抢占问题严重。某个同学的异常资源占用,往往会影响其他同学调度的正常运行

 

2. 环境版本

 

  • Win10下VMWare 版本:VMware_workstation_10.0.4
  • 虚拟机镜像版本:CentOS-7-x86_64-DVD-1708
  • Anaconda 版本:Anaconda3-5.2.0-Linux-x86_64
  • Jupyter Notebook 版本:4.4.0

 

备注:

 

3. Token 认证机制

 

所谓 Token 指管理员同学使用 " jupyter notebook " 在申请的服务器上启动 Jupyter Notebook 时(默认开启 Token 机制), 在服务器控制台打印出此次启动可以对外开放的字符串,每次重启 Token 自动变化

 

其他同学在首次访问时,需要向启动 Jupyter Notebook 的管理员同学询问 Token,进而进入 Jupyter Notebook。此时,Token 会自动存入浏览器的 Cookie 中,第二次可以直接访问 Jupyter Notebook 的 URL 进入(Cookie 中 Token 的有效期为一个月,除非点击 logout, 否则在有效期内不需要重新输入 Token)

 

备注:

  • 配置文件名称为【jupyter_notebook_config.py】,如果找不到,请在控制台执行  【jupyter notebook --generate-config】,在控制台会提示先生成的文件所在路径。提示:如果已存在会提示是否覆盖,如果已对配置文件进行过修改,请选择 N
  • 默认配置文件下, 在虚拟机的 root 用户无法正常启动 "jupyter notebook" 命令,需要修改为【c.NotebookApp.allow_root = True】
  • 默认配置文件下,其他同学不能在各自本地浏览器进行访问,需要修改为【c.NotebookApp.ip = '*'】 

 

4. 密码认证机制

 

同时,同组的管理员同学也可以设置 Password,进而当 Jupyter Notebook 重启后,同组的其他同学不需要每次都向管理员同学询问 Token,可以使用统一的 Password 即可直接访问 Jupyter Notebook。

 

备注:

  • 密码文件名称为【jupyter_notebook_config.json】,里边会存放一个最新的密码(非明文)
  • 要想让 Password 生效,需要事先修改配置文件 【jupyter_notebook_config.py】 的【c.JupyterApp.config_file_name = 'jupyter_notebook_config.json'】,用于指定配置文件位置
  • Password 有两种生成方式,一种是在控制台下,输入 ipython进而使用代码生成密码;第二种是管理员同学在尚未向对外公告 Jupyter Notebook 的访问地址前,在 Jupyter Notebook 的首页通过输入 Token + Password 设置密码

 

5. 初步结论

 

所以,在当前的 Jupyter Notebook 版本下,总共需要修改三处配置:

 

  1. c.NotebookApp.allow_root = True
  2. c.NotebookApp.ip = '*'
  3. c.JupyterApp.config_file_name = 'jupyter_notebook_config.json'

 

 

使用 Jupyter Notebook,即使可以通过使用 Token 和 Password 两种认证方式,增加一定的安全性。但是无法做到多租户场景,并且无法做到资源隔离使用,需要探寻另外的可能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值