上一篇体验中(Oracle Cloud Service 体验二)已经介绍了如何在 Oracle 云服务中如何创建一个 Oracle Instance,这次将介绍如何通过 Oracle 云服务的网络配置来让创建好的 Instance可以对外提供服务。
同样登录到 Oracle 云服务控制面板,打开服务控制台,然后选择“Network”,会出现如下图我这样的界面。
如绿色圆圈所示,我的云平台中总共有16条网络安全规则,启用的有7条。但下面列表中我只截取了上一篇文章中所示例创建的 j-test1 这个实例相关的安全规则。
红色方框中标示出了禁用的6条网络安全规则,只有绿色方框中的2条规则已经启用开放。
简要来说,就是 Oracle 云平台通过网络层面的配置搭建了一套相对完整的防火墙策略,已达到云服务的安全控制。这套网络防火墙就是通过一个一个的 Security List 锁构建,每一个 Security List 又由多个 Security Rule 组成。如下图所示:
对于新建好的 Instance,基本上是没办法直接对外提供服务的,因为 Oracle 默认的网络规则是将所有想进入的流量(InBound)全部拒绝(DENY),仅放开(PERMIT)想出去的流量(OutBound)。
Oracle 针对每一种 InBound/OutBound提供了三种处理方式:DENY,REJECT以及PERMIT,含义分别如下:
对于用户来说,必须针对每一个Instance都配置一套合适的网络规则,才能既确保数据安全又能提供正常的服务。虽然最安全的做法就是什么都不开放,但我们不可能不使用对吧,哈哈。
首先,我们至少需要开放数据库的1521(活着其他自定义端口)给我们需要连接数据库的某个(或某段或某些)地址,所以我们需要针对 InBound和OutBound各配置一条PERMIT的规则。当然,由于之前默认规则已经开放了所有的OutBound流量,所以我们实际上仅仅只需要增加一条InBound的规则。
然后,我们需要管理数据库,需要在系统层面做一些基本的数据库配置和维护工作,所以我们可能需要开放Instance 所在的主机OS访问(oracle用户的)权限,也就是我们经常使用的ssh 管理通道22端口(或者其他自定义端口)的 InBound 策略。
最后,我们可能还会有其他一些管理服务或者常用的服务如 NTP/SMTP/NS等,也都需要针对性的一一开放策略。由于这部分内容的图片涉及到部分隐私,所以就没有截取显示了。