私有化部署PaaS软件的公网访问需求
在阿里云计算巢,我们发现,很多本来应该只在VPC内网使用的三方PaaS软件和中间件,在部署时都开启了公网IP,这并不符合最佳实践。
以数据库为例,数据库保存了对企业来说最重要的核心数据,一般来说,只应该只开放给部署在内网的应用访问。阿里云官方的RDS数据库,创建完成后是默认是不开放公网访问的,内网访问也需要加入白名单才可以连接。
但计算巢上私有化部署的数据库软件,很多开放了公网,原因是数据库软件需要提供基于WEB的管控面板和监控面板(比如Grafana)。如果不提供公网服务,用户就没有办法登录基于WEB GUI的管控面板进行管理。除非用户的本地网络通过VPN与线上VPC打通,但大部分用户无法满足这个条件。
公网访问带来的问题
数据库服务提供了公网服务以后,其管控面板和监控面板的公网暴漏成为了安全的突破口,给用户的数据安全会带来很大风险。
为了安全,要求服务商的WEB服务能够支持HTTPS等安全机制,更进一步,可能要求用户部署SSL证书。另一方面,服务商要经常更新软件修复漏洞,但是对于私有化部署的服务,服务商无法像托管服务一样很便捷的更新软件。
从用户角度,除了安全风险,公网访问也会给用户带来额外的流量费用、增加了部署的复杂性。如果一套生产环境中部署了多个PaaS软件或中间件,可能会部署多个公网IP,给用户带来了管理成本。
计算巢内网WEB服务安全代理
计算巢提供了内网WEB服务安全代理,解决了服务商无法纯内网部署软件的痛点。
如果一个服务的输出中存在内网的WEB服务地址(http/https),计算巢控制台在WEB地址盘展示一个”安全代理直接访问的“按钮,用户点击后,即可在新窗口打开网页。
使用此功能,服务商只有少量的接入工作:
- WEB服务所在的ECS实例安全组需要对Workbench内网地址开放
- 服务输出增加内网的WEB地址
对用户来说,带来了很多好处:
- 和公网访问WEB服务完全一致的体验
- 消除了公网访问,大大提升安全度、
- 通过RAM鉴权,只有实例的Owner账号才可以访问
- 没有公网费用
在用户点击背后,计算巢和Workbench做了一系列工作:
- 计算巢需要验证用户的身份和权限,保证只有服务实例的Owner才可以访问。
- 计算巢需要从内网WEB地址中,解析出底层的VPC信息、ECS信息、IP和端口信息等等。
- 计算巢调用Workbench接口,传入访问信息,Workbench对访问者鉴权后返回VPC内网WEB代理地址。
- 计算巢控制台在新窗口打开代理地址,Workbench将用户请求转发到对应的内网ECS端口上,并返回WEB服务的响应。
- 代理链路对用户透明,Workbench提供https服务保证用户数据安全。
客户案例 - AutoMQ
AutoMQ for Kafka 是基于云原生理念重新设计的新一代 Kafka 发行版。在保持和 Apache Kafka 100%兼容前提下,AutoMQ 可以为用户提供高达 50% 的成本节省以及百倍的弹性优势,同时支持秒级分区迁移和流量自动重平衡,解决运维痛点。
AutoMQ依赖其控制台来进行Kafka实例的创建,因此控制台是一个必须使用的组件。在以前,AutoMQ在部署时默认给用户开启公网访问。现在,此选项可以默认关闭了,只有少量有需求的用户需要。
在计算巢部署了AutoMQ实例后,可以通过计算巢控制台访问VPC内网部署的控制台。