設計安全的多層網路

當您設計安全多層網路時,請在層中建立架構。

將您最機密的資源 (例如資料庫) 置於專用子網路的最裡層。定義控制資源之網路存取的安全規則。透過基礎主機和負載平衡器,從公用網際網路遞送流量。

決定您的子網路策略

子網路是 VCN 內連續範圍的 IP 位址。若要控制網路流量與子網路,您可以附加安全清單、路由表格以及一組 DHCP 選項。

判斷子網路策略時,請考量下列因素:
  • 子網路建立之後,您就無法變更它的大小。因此,請先計劃所需的所有子網路大小,再加以建立。
  • 子網路可以是專用或公用。您可以在建立子網路時進行這項選擇,之後就無法加以變更。
  • 典型的策略是只建立專用子網路。
    • 來自內部部署網路的流量可以使用 IPSec VPN 連線或 Oracle Cloud Infrastructure FastConnect 連結。
    • 公用網際網路的流量可以透過公用負載平衡器來遞送。
    • 公用網際網路的流量連結可以透過網路位址轉譯 (NAT) 閘道進行遞送。NAT 閘道允許專用子網路中的資源連線至網際網路,以及接收相同連線的資料。不允許從網際網路輸入連線。
  • 如果您的應用程式架構需要公用 IP 位址 (例如,將內部部署應用程式移轉至雲端時),請使用包含專用和公用子網路的架構。
  • 在區間中建立子網路,然後在其中佈建需要子網路的資源。
  • 子網路可以專屬於可用性網域 (AD) 或區域。AD 失敗並不會影響區域子網路。

設計安全清單

對於每個子網路,您都可以建立安全規則,以指定來源、目的地以及必須允許加入和移出子網路的流量類型。您可以在安全清單中定義這些規則,然後將安全清單附加至子網路。

若要對輸入和輸出網路流量實行精細控制,您可以為個別子網路建立安全清單。您可以保留個別 (全域) 安全清單中之所有子網路通用的規則。下列是一些您可以考量的安全清單:
  • 全域安全清單:此安全清單包含要用於所有子網路的規則。此清單通常包含幾個規則。
  • 分層特定安全清單:您可以在多層架構中定義特定層的安全清單 (例如,商業邏輯或資料庫層)。透過仔細設計子網路,您可以大幅減少跨層通訊所需的安全規則數目。例如,您可以只建立兩個安全規則 (一個輸入和一個輸出),讓商業邏輯層與資料庫層通訊。
  • 系列安全清單:這份清單適用於構成單一服務的子網路或構成可用性網域內單一客戶的安全規則。例如,適用於商業邏輯層之可用性網域內的 Web、應用程式和負載平衡器服務子網路的規則。
  • 網路特定安全清單:這些清單包含個別子網路特有的規則。
  • 暫時安全清單:您可以針對正在測試或測試的規則,使用暫時安全清單。例如,在測試特定輸入使用案例時,您可以在暫時安全清單中建立必要的規則。

定義安全規則

使用安全規則來控制資源的網路流量。每個規則都會定義允許流量的方向、來源、目的地、連接埠和協定。

下表是您應該針對子網路系列定義的規則範例。決定應用程式所需的規則。

子網路系列 輸入規則 傳出規則
DMZ
  • TCP/22,從任何位置開始
  • TCP/80,從任何位置開始
  • TCP/443 的位置
TCP/22 至 VCN
負載平衡器
  • TCP/80,從任何位置開始
  • TCP/443 的位置
  • TCP/80 到中間層
  • TCP/443 到中間層
中間層
  • 負載平衡器的 TCP/80
  • 負載平衡器的 TCP/443
TCP/1521 到資料庫層
資料庫 中間層的 TCP/1521 無。

注意事項:

定義安全清單和規則是保護網路的第一個步驟。在將網路公開到網際網路之前,請考慮如何處理分散式拒絕服務 (DDoS)、SQL 插入,以及其他網路攻擊。

定義區間

您可以使用區間來組織邏輯容器中的雲端資源,以及控制資源的存取。您定義的原則可控制使用者在特定區間建立和管理資源的能力。

根據您雲端資源的管理方式設計區間和原則。目標是確保使用者只能依據其商業和 IT 角色存取需要的資源。例如,如果一組使用者管理中間層,而另一個群組管理資料庫層,則為每一層建立一個區間。即使只有一個人使用者管理這兩層,請考慮針對每一層使用個別的區間。此方法可讓您在需要時輕鬆分隔權限。

區間也可讓您追蹤和管理雲端預算的使用狀況。例如,您可以為組織中的每個部門建立一個區間,然後監督各個隔間中的雲端資源。

指派邏輯名稱給您的區間。使用命名慣例,讓您可以輕易地識別容器中資源的性質和狀態。

下表提供典型多層架構的區間和子網路結構範例。在此範例中,區間名稱中的 xxx 可以是 DevTestStageProd;而 yyy 可以是您應用程式或工作負載的名稱。例如,名稱 Prod_Ordering_SharedServices 表示隔間包含「排序」應用程式之共用服務所使用的生產資源。

隔艙 子網路 資源
xxx_yyy_Networks 無。 VCN 與閘道
xxx_yyy_Admin DMZ 子網路 Bastion hosts
xxx_yyy_BusinessLogic
  • Web 伺服器子網路
  • 應用程式伺服器子網路
  • 負載平衡器子網路
  • Web 伺服器執行處理
  • 應用程式伺服器執行處
  • 負載平衡器節點
xxx_yyy_Database 資料庫子網路 資料庫實例
xxx_yyy_SharedServices 共用服務子網路 共用的元件

xxx_yyy_Networks 隔間中建立虛擬雲端網路及其閘道,並在其他隔間建立必要的子網路。

建立使用者

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 Cloud 時,Oracle 會建立 Administrators 群組。此群組中的使用者具有租用中所有資源的完整存取權,包括管理使用者和群組。將成員身分限制在此群組。

IAMManagers
  • 管理使用者。
  • 管理 AdministratorsNetSecAdmins 以外的所有群組。
NetworkAdmins
  • 讀取租用中的所有資源。
  • 管理所有網路資源,安全清單、網際網路閘道、IPSec VPN 連線及客戶優先順序設備除外。
NetSecAdmins
  • 讀取租用中的所有資源。
  • 管理安全清單、網際網路閘道、客戶預備設備、IPSec VPN 連線以及負載平衡器。
  • 使用所有虛擬網路資源。
ReadOnly 檢視並檢查租用。此群組是供不預期建立或管理任何資源 (例如,稽核員和受訓者) 的使用者使用。
StorageAdmins
  • 讀取租用中的所有資源。
  • 管理物件儲存與區塊磁碟區資源。
SysAdmins
  • 讀取租用中的所有資源。
  • 管理運算和儲存體資源。
  • 管理區間。
  • 請使用負載平衡器、子網路與 Vnic。

在聯合識別提供者 (例如 Oracle Identity Cloud Service) 中,您必須建立必要的群組,並將每個群組對應至 Oracle Cloud Infrastructure Identity and Access Management 中的對應群組。