设计安全多层网络

设计安全多层网络时,在层中构建结构。

将最敏感的资源(例如数据库)放置在专用子网最里面的层中。定义安全规则以控制对资源的网络访问。通过基于主机和负载平衡器路由来自公共 Internet 的流量。

确定子网策略

子网是 VCN 中连续的 IP 地址范围。要控制子网中的网络通信量,可以附加安全列表、路由表和一组 DHCP 选项。

在确定子网策略时,请考虑以下因素:
  • 创建子网后,无法更改其大小。因此,请计划创建前需要的所有子网的大小。
  • 子网可以是专用子网或公共子网。可以在创建子网时进行此选择,也无法在以后更改它。
  • 典型的策略是仅创建专用子网。
    • 来自内部部署网络的通信可以使用 IPSec VPN 连接或 Oracle Cloud Infrastructure FastConnect 链接。
    • 来自公共互联网的流量可以通过公共负载平衡器路由。
    • 通过网络地址转换(NAT)网关可以路由公共互联网的通信。NAT 网关允许专用子网中的资源与 Internet 进行出站连接,以及接收相同连接上的数据。它不允许来自 Internet 的入站连接。
  • 如果应用程序体系结构需要公共 IP 地址(例如,在将内部部署应用程序迁移到云时),请使用包含私有子网和公共子网的体系结构。
  • 在划分中创建子网,从中您计划预配需要这些子网的资源。
  • 子网可以特定于可用性域(AD)或区域。AD 失败不会影响区域子网。

设计安全列表

对于每个子网,您可以创建安全规则来指定必须允许存入和退出子网的源、目标和流量的类型。可以在安全列表中定义这些规则,并将安全列表附加到子网。

要对入口通信和出站网络通信量实施粒度控制,可以为各个子网创建安全列表。可以将所有子网共有的规则保留在一个单独的(全局)安全列表中。以下是您可以考虑的几种安全列表:
  • 全局安全列表:此安全列表包含要用于所有子网的规则。通常,此列表包含几个规则。
  • 定于层的安全列表:可以为多层体系结构中的特定层定义安全列表(例如,业务逻辑或数据库层)。通过仔细设计子网,可以极大地减少层间通信所需的安全规则数。例如,您可以允许业务逻辑层仅通过创建两个安全规则(一个地址和一个地址)与数据库层进行通信。
  • 系列安全列表:此列表适用于适用于构成单个服务或属于可用性域中单个客户的子网的安全规则。例如,适用于业务逻辑层中某个可用性域内的 Web、应用程序和负载平衡器服务子网的规则。
  • 定于子网的安全列表:这些列表包含特定于单个子网的规则。
  • 临时安全列表:对于正在实验或测试的规则,可以使用临时安全列表。例如,在测试特定入站使用情形时,您可以在临时安全列表中创建所需规则。

定义安全规则

使用安全规则来控制与资源之间的网络通信量。每个规则定义允许流量的方向、源、目标、端口和协议。

下表是您应该按子网系列定义的规则示例。确定应用程序所需的规则。

子网系列 入站规则 出站规则
DMZ
  • 任意位置的 TCP/22
  • 任意位置的 TCP/80
  • 任何位置的 TCP/443
VCN 的 TCP/22
负载平衡器
  • 任意位置的 TCP/80
  • 任何位置的 TCP/443
  • 中间层的 TCP/80
  • 中间层的 TCP/443
中间层
  • 负载平衡器的 TCP/80
  • 来自负载平衡器的 TCP/443
TCP/1521 到数据库层
数据库 中间层的 TCP/1521

注 :

定义安全列表和规则是保护网络的第一步。在您向 Internet 公开网络之前,请考虑如何解决分布式服务拒绝(DDoS)、SQL 注入以及其他网络攻击。

定义划分

使用区间可以组织逻辑容器中的云资源,并控制对资源的访问。您定义的策略可以控制用户在特定区间中创建和管理资源的能力。

基于云资源的管理方式来设计划分和策略。目标是为了确保用户只有权访问基于其业务和 IT 角色所需的资源。例如,如果一组用户管理中间层,另一个组管理数据库层,则为每个层创建一个区间。即使只有一个人工用户管理这两个层,也应考虑对每个层使用单独的区间。此方法使您可以在需要时轻松地分离权限。

划分还可用于跟踪和管理云预算的用途。例如,您可以为组织中的每个部门创建一个区间,并监视每个区间中的云资源。

向区间分配逻辑名称。使用命名惯例,您可以轻松标识容器中资源的性质和状态。

下表提供了一个典型多层体系结构的划分和子网结构示例。在此示例中,区间名称中的 xxx 可以为 DevTestStageProd;而 yyy 可以是应用程序或工作量的名称。例如,名称 Prod_Ordering_SharedServices 指示该区间包含排序应用程序的共享服务使用的生产资源。

存放区域 子网 资源
xxx_yyy_network VCN 和网关
xxx_yyy_Admin DMZ 子网 定位主机
xxx_yyy_BusinessLogic
  • Web 服务器子网
  • 应用程序服务器子网
  • 负载平衡器子网
  • Web 服务器实例
  • 应用程序服务器实例
  • Load-balancer 节点
xxx_yyy_Database 数据库子网 数据库实例
xxx_yyy_SharedServices Shared Services 子网 共享组件

xxx_yyy_network 区间中创建虚拟云网络及其网关,并在其他区间中创建所需的子网。

创建用户

需要创建或管理资源的每个人员或系统都必须定义为 Oracle Cloud Infrastructure Identity and Access Management (IAM)或联合身份提供者中的用户。创建所需的用户。

当您注册 Oracle Cloud 帐户时,Oracle 会设置管理员用户,并将该用户分配给名为管理员的组。无法删除此组。您可以向其中添加更多用户。预定义策略允许管理员组管理 Oracle Cloud Infrastructure 中的所有资源。

创建所需的用户。如果您的帐户使用联合身份提供方(例如 Oracle Identity Cloud Service),则在该身份提供方中创建用户。

如果联合用户需要管理 API 密钥和验证令牌,请确保联合身份提供方已配置为在 IAM 中预配用户。(仅在 2018 年 12 月 21 日之前创建的账户需要此配置。)或者,在 IAM 中创建本地用户。

计划组和策略

通过将用户添加到组或从组中删除用户,可以控制用户的权限。计划所需的组和策略以允许组管理特定区间中的资源。

可以将用户分配给一个或多个组。策略控制对 Oracle Cloud Infrastructure 资源的访问。策略为一个或多个组、用户或划分指定权限。

下表列出了多层体系结构通常需要的组和权限:

权限
DBAdmins
  • 读取租户中的所有资源。
  • 管理数据库资源。
IAMAdminManagers
  • 管理用户。
  • 管理 AdministratorsNetSecAdmins 组。

:Oracle 在您订阅 Oracle Cloud 时创建 Administrators 组。此组中的用户具有租户中所有资源的完全访问权限,包括管理用户和组。将成员资格限制到此组。

IAMManagers
  • 管理用户。
  • 管理除 AdministratorsNetSecAdmins 之外的所有组。
NetworkAdmins
  • 读取租户中的所有资源。
  • 管理除安全列表、Internet 网关、IPSec VPN 连接和客户内部部署设备外的所有网络资源。
NetSecAdmins
  • 读取租户中的所有资源。
  • 管理安全列表、Internet 网关、客户内部部署设备、IPSec VPN 连接和负载平衡器。
  • 使用所有虚拟网络资源。
ReadOnly 查看和检查租户。此组适用于不是预期创建或管理任何资源(例如,审计者和培训人)的用户。
StorageAdmins
  • 读取租户中的所有资源。
  • 管理对象存储和块存储卷资源。
SysAdmins
  • 读取租户中的所有资源。
  • 管理计算和存储资源。
  • 管理划分。
  • 使用负载平衡器、子网和 Vnic。

在联合身份提供方(例如 Oracle Identity Cloud Service)中,必须创建所需的组并将每个组映射到 Oracle Cloud Infrastructure Identity and Access Management 中的相应组。