LAIN Entry 容器时代的堡垒机 LAIN Entry

agolangf • 2209 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
**Entry** 是 LAIN 的 layer2 的一个特殊应用,允许开发者通过 `lain enter` 命令或者 console 的 web 界面远程登录到具有本人管理权限的容器中。 该效果等同于在 LAIN 的节点上执行 `docker exec -it $container_id /bin/bash`。 对于没有权限登录节点的开发者,使用 **Entry** 远程进入自己的容器调试是不错的选择。 使用前要注意 **Entry** 由于需要访问集群的特殊资源,必须要由集群管理员部署,Entry的管理员也必须只能是集群管理员。 **Entry** 使用前要确保集群的 sso 验证机制已经打开,否则客户端可以通过构造 http(s) 的 header 进入其他应用的容器。 整体架构如下图所示: [![整体架构](https://github.com/laincloud/entry/raw/master/docs/figures/entry.png)](https://github.com/laincloud/entry/blob/master/docs/figures/entry.png) LAIN 应用所有者可以通过 `lain-cli` 或者 `console` 进入除 entry 之外的 LAIN 应用 系统管理员可以在 [https://entry.${LAIN_DOMAIN}/web](https://entry.%24%7Blain_domain%7D/web) 搜索、回放用户会话或者搜索用户命令 `Entry` 设计了完善的审计框架: `Entry` 审计所有经自己建立的用户会话 系统管理员还可以从 LAIN 节点进入所有的 LAIN 应用(包括 entry),这时由堡垒机负责审计 如下图所示: [![审计框架](https://github.com/laincloud/entry/raw/master/docs/figures/audit.png)](https://github.com/laincloud/entry/blob/master/docs/figures/audit.png) `Entry` 将用户会话和命令存储于数据库,数据表如下图所示: [![数据表](https://github.com/laincloud/entry/raw/master/docs/figures/database.png)](https://github.com/laincloud/entry/blob/master/docs/figures/database.png) 请根据 [server/sql/bootstrap.sql](https://github.com/laincloud/entry/blob/master/server/sql/bootstrap.sql) 创建表 请根据 [server/sql/create_db_and_user.sql](https://github.com/laincloud/entry/blob/master/server/sql/create_db_and_user.sql) 创建数据库和用户 请参考 [example.json](https://github.com/laincloud/entry/blob/master/example.json) 编写配置文件,并上传到 lvault: `smtp.address` 需要包含端口,如:${mail-address}:25 `smtp.password` 可选,为空时不使用 auth `server/gen` 下除 `server/gen/restapi/configure_entry.go` 外均由 [go-swagger](https://github.com/go-swagger/go-swagger) 生成,请不要手动修改 `server/gen/restapi/configure_entry.go` 包含初始化逻辑以及后端 API 配置 `server/handler` 包含后端 API 的实际逻辑 由 `swagger.yml` 生成代码:
授权协议:
MIT
开发语言:
Google Go 查看源码»
操作系统:
跨平台
2209 次点击  
加入收藏 微博
2 回复  |  直到
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传