微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LAIN Entry 容器时代的堡垒机

程序名称:LAIN Entry

授权协议: MIT

操作系统: 跨平台

开发语言: Google Go

LAIN Entry 介绍

LAIN 是宜信大数据创新中心开发的一款私有云平台(PaaS),面向技术栈多样、寻求高效运维方案的高速发展中的组织、DevOps人力缺乏的创业公司以及个人开发者,提供了从编译、部署和扩容到日志、监控和报警的整体解决方案。

Entry 是 LAIN 的 layer2 的一个特殊应用,允许开发者通过 lain enter 命令或者 console 的 web
界面远程登录到具有本人管理权限的容器中。

效果等同于在 LAIN 的节点上执行 docker exec -it $container_id /bin/bash。

对于没有权限登录节点的开发者,使用 Entry 远程进入自己的容器调试是不错的选择。

使用前要注意

Entry 由于需要访问集群的特殊资源,必须要由集群管理员部署,Entry的管理员也必须只能是集群管理员

Entry 使用前要确保集群的 sso 验证机制已经打开,否则客户端可以通过构造 http(s) 的 header 进入其他应用的容器。

整体架构

整体架构如下图所示:

审计

Entry 设计了完善的审计框架:

  • Entry 审计所有经自己建立的用户会话

  • 系统管理员还可以从 LAIN 节点进入所有的 LAIN 应用(包括 entry),这时由堡垒机负责审计

如下图所示:

数据库

Entry 将用户会话和命令存储于数据库,数据表如下图所示:

部署

配置

请参考
example.json
编写配置文件,并上传到 lvault:

lain secret add ${LAIN-Domain} web /lain/app/prod.json -f example.json
  • smtp.address 需要包含端口,如:${mail-address}:25

  • smtp.password 可选,为空时不使用 auth

开发

  • server/gen 下除 server/gen/restapi/configure_entry.go 外均由 go-swagger 生成,请不要手动修改

  • server/gen/restapi/configure_entry.go 包含初始化逻辑以及后端 API 配置

  • server/handler 包含后端 API 的实际逻辑

由 swagger.yml 生成代码

go get -u github.com/go-swagger/go-swagger/cmd/swagger  # 安装 swagger
swagger generate server -f ./swagger.yml -t server/gen  # 生成代码

LAIN Entry 官网

https://github.com/laincloud/entry

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐