附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
建立及設定 Oracle Cloud Infrastructure Zero Trust Packet Routing
簡介
Oracle Cloud Infrastructure (OCI) Zero Trust Packet Routing 透過從基礎網路架構單獨管理網路安全原則,防止對資料進行未經授權的存取。安全性管理員可以使用易於理解和意圖為基礎的政策語言,為資料定義特定的存取路徑。原則未明確允許的流量無法經由網路傳送、改善安全性,同時簡化安全性、網路和稽核團隊的工作。
下列教學課程提供如何設定 OCI Zero Trust Packet Routing 以套用安全控制,以管理 Oracle Cloud Infrastructure (OCI) 租用戶內網路間通訊的詳細資訊。在本教學課程中,已部署下列架構。
在此架構中,已設定下列資源:
-
financeprod
是 Oracle Autonomous Database 的執行處理,設定為由專用網路代管的生產資料庫,可透過專用端點在專用子網路內存取。 -
client-prod
是在生產環境中模擬企業應用程式的運算執行處理。在此情況下,這是執行 Oracle Instant Client 的 Oracle Linux 執行處理。 -
client-dev
是在開發環境中模擬企業應用程式的運算執行處理。如同 client-prod ,這是一個執行 Oracle Instant Client 的 Oracle Linux 執行處理。
此外,已為此使用案例設定個別 VCN (so-vcn-pt
),其中包括:
-
subnet-public
是包含運算執行處理的公用子網路。 -
subnet-private
是包含資料庫的專用子網路。 -
sl-allow-public
是允許從網際網路存取 SSH 的安全清單。傳出規則也已設定為允許傳出流量。它會指派給subnet-public
。 -
sl-allow-private
是允許來自subnet-public
的 Oracle Instant Client 流量 (連接埠1522
) 的安全清單。傳出規則也已設定為允許傳出流量。此安全清單指定給subnet-private
。 -
route-public
是將所有流量遞送至網際網路閘道的路由表。指定給subnet-public
。 -
route-private
是將所有流量遞送至 NAT 閘道的路由表。指定給subnet-private
。 -
gw-internet
是route-public
中使用的網際網路閘道。 -
gw-nat
是route-private
中使用的 NAT 閘道。
目標
-
設定 OCI 零信任封包路由的新安全屬性。
-
建立 OCI 零信任封包路由原則,以控制網路流量的流程。
-
將 OCI Zero Trust Packet Routing 安全屬性指定給資源。
-
測試 OCI 零信任封包路由原則。
必要條件
-
OCI 租用戶的付費訂閱,具備管理 OCI Zero Trust Packet Routing 資源的適當權限。
-
架構中定義的網路結構。
-
依據架構部署在公用子網路中的兩個運算執行處理。
-
在兩個運算執行處理上安裝並設定 Oracle Instant Client (包括 SQL*Plus 從屬端)。
注意:請從此處下載並安裝 Oracle Instant Client:使用 RPM 安裝 Oracle Instant Client 。
-
根據架構建立 Oracle Autonomous Database 執行處理,並在專用子網路內以專用端點進行部署。
-
設定從兩個運算執行處理上的 Oracle Instant Client 存取資料庫。
作業 1:確認從從屬端存取資料庫
在這項任務中,我們將確認這兩個運算執行處理都能夠透過 Oracle Instant Client 存取資料庫。
-
以
opc
使用者身分使用 SSH 連線至您的 client-prod 運算執行處理。 -
執行
sqlplus
命令以連線至您的自治式資料庫。依據先決條件,應安裝並設定 Oracle Instant 從屬端。以下為設定步驟的摘要:
-
下載並安裝 Oracle Instant Client。
-
設定 Oracle Instant Client。
-
從 OCI 下載自治式資料庫的連線公事包。
-
將公事包擷取至資料夾。
-
設定公事包資料夾內的
sqlnet.ora
檔案,以指向您的公事包位置。 -
匯出變數
TNS_ADMIN
以指向擷取的公事包位置。例如,export TNS_ADMIN=/opt/wallet
。 -
執行
sqlplus
命令,例如sqlplus admin@financeprod_low
,並在出現提示時輸入您的密碼。
如果您的 Oracle Instant Client 正常運作且完成所有先決條件,您應該順利連線至資料庫並執行命令。執行
show user;
命令以查看使用者。 -
-
重複來自 client-dev 的資料庫連線測試。
如果您的 Oracle Instant Client 正常運作且完成所有先決條件,您應該順利連線至資料庫並執行命令。執行
show user;
命令以查看使用者。
作業 2:啟用 OCI 零信任封包路由
如果這是您第一次在租用戶中使用 OCI Zero Trust Packet Routing,則必須啟用此功能。
-
以具備適當權限的使用者身分登入 OCI 主控台,以管理 OCI Zero Trust Packet Routing 資源和本教學中使用的其他資源。
-
移至識別與安全性,然後按一下零信任封包路由。
-
按一下啟用 ZPR ,按鈕將會變成灰色,而 OCI Zero Trust Packet Routing 功能表將可供存取。
作業 3:設定 OCI 零信任封包路由安全屬性
若要設定 OCI 零信任封包路由,我們必須設定將用於 OCI 零信任封包路由原則的安全屬性。
在此工作中,我們將建立三個新的安全屬性,代表網路、資料庫和應用程式。我們會為這些安全性屬性建立預先定義的值。
-
移至零信任封包路由,然後按一下安全屬性命名空間。
-
在清單範圍下,選取
root
區間。我們會看到預先定義的oracle-zpr
命名空間。 -
按一下
oracle-zpr
,您會看到預先定義的sensitivity
安全屬性。我們不會使用此教學課程中的屬性。 -
選取建立安全性屬性以建立新的安全性屬性。
-
在建立安全性屬性中,輸入下列資訊。
- 名稱:輸入
app
。 - 描述:輸入
Security attribute representing applications
。 - 安全性屬性值類型:選取值清單。
- 值:輸入
prod
和dev
(在個別行上)。
- 名稱:輸入
-
按一下建立,即可建立新屬性。
-
重複步驟 5 和步驟 6,再建立兩個安全性屬性。
-
使用下列資訊建立資料庫的安全屬性:
- 名稱:輸入
db
。 - 描述:輸入
Security attribute representing databases
。 - 安全性屬性值類型:選取值清單。
- 值:輸入
prod
和dev
(在個別行上)。
- 名稱:輸入
-
使用下列資訊為網路建立安全屬性:
- 名稱:輸入
network
。 - 描述:輸入
Security attribute representing networks
。 - 安全性屬性值類型:選取值清單。
- 值:輸入
prod
和dev
(在個別行上)。
- 名稱:輸入
完成之後,您應該會看到您的安全屬性清單,包括預先定義的
sensitivity
屬性。 -
作業 4:建立 OCI 零信任封包路由原則
我們已經定義了安全性屬性,現在需要建立原則來控制網路上的資訊流。
在此使用案例中,我們需要一個允許生產環境應用程式能夠與生產環境資料庫通訊的原則。在這項任務中,我們將設定 OCI Zero Trust Packet Routing 原則以達到此目的。
-
移至 OCI 主控台,瀏覽至識別與安全、零信任封包路由,然後按一下原則。
-
按一下建立原則即可建立新的 OCI 零信任封包路由原則。
-
輸入下列資訊,然後按一下新增原則敘述句,將原則敘述句新增至您的原則。
- 名稱:輸入
prod_policy
。 - 描述:輸入
Policy to allow production clients in the production network to access production databases
。
- 名稱:輸入
-
檢查建立原則敘述句的三個選項,選取手動建立原則,輸入下列原則敘述句,然後按一下新增來儲存原則敘述句。
- 原則敘述句:輸入
in network:prod VCN allow app:prod endpoints to connect to db:prod endpoints with protocol = 'tcp/1522'
。
注意:即使沒有說明,原則敘述句也很容易瞭解。為求明確起見,您會告訴 OCI Zero Trust Packet Routing,您希望將安全性屬性為
app:prod
的任何資源都指派到這些資源,以便能夠在network:prod
VCN over TCP 通訊協定 1522 內與已指派db:prod
安全性屬性的任何資源進行通訊。您完成的原則應該如下:
- 原則敘述句:輸入
-
按一下建立原則,即可完成建立
prod_policy
。注意:將安全屬性指定給資源之後,便會強制實行 OCI 零信任封包路由原則,而且只允許符合 OCI 零信任封包路由原則的流量通過網路。由於不會有 OCI 零信任封包路由原則允許 SSH 存取您的從屬端,因此您將對這兩個運算執行處理指定安全屬性,因此您將失去對這些運算執行處理的 SSH 存取權。因此,您必須建立兩個額外的原則來修正此問題。
-
重複步驟 2 到 5 以建立兩個額外的 OCI 零信任封包路由原則,以便透過 SSH 連線至您的運算執行處理。
-
允許 SSH 存取 client-prod 的原則:
- 名稱:輸入
prod_client_access_policy
。 - 描述:輸入
Policy to allow SSH access to the production clients in the production network
。 - 原則敘述句:輸入
in network:prod VCN allow 'x.x.x.x/32' to connect to app:prod endpoints with protocol='tcp/22'
。
- 名稱:輸入
-
允許 SSH 存取 client-dev 的原則:
- 名稱:輸入
dev_client_access_policy
。 - 描述:輸入
Policy to allow dev clients in the production network to access production databases
。 - 原則敘述句:輸入
in network:prod VCN allow 'x.x.x.x/32' to connect to app:dev endpoints with protocol='tcp/22'
。
注意:
-
將
x.x.x.x
取代為您的 IP 位址。 -
在生產環境案例中,通常透過 OCI 堡壘主機存取從屬端。不過,若要讓本教學課程保持簡單,請直接存取。因此,需要包括透過 SSH 連線至用戶端的來源機器外部 IP 位址。
- 名稱:輸入
您完成的原則應該會如下:
-
作業 5:指定資源的安全屬性
在此工作中,若要設定 OCI 零信任封包路由,我們會將安全屬性指定給必要的資源。
我們會將 db
安全屬性與您的資料庫建立關聯、將 app
安全屬性與您的兩個從屬端建立關聯,並將 network
安全屬性與您的 VCN 建立關聯。
注意:指定安全屬性時,可以從「OCI 零信任封包路由」畫面或個別資源完成。本教學課程將向您展示這兩種方法。
-
將安全性屬性指派給資料庫。
-
移至 OCI 主控台,瀏覽至 Oracle Database 和 Autonomous Database 。
注意:請確定您位於建立資料庫的區間中,便會看到該區間。
-
請從可用資料庫清單選取您的資料庫 (例如
Finance-PROD
)。 -
按一下安全屬性。您會看到目前空白且未指派安全性屬性。
-
按一下新增安全屬性,然後輸入下列資訊。
- 命名空間:選取
oracle-zpr
。 - 索引鍵:選取
db
。 - 值:選取
prod
。
- 命名空間:選取
-
按一下新增安全性屬性,將安全性屬性指派給資料庫。將會更新資料庫並指派屬性。
-
-
指定運算執行處理的安全屬性。
-
移至 OCI 主控台,瀏覽至運算和執行處理。
注意:請確定您位於建立運算執行處理的區間中,但應該會看到這兩個區間。
-
從可用的執行處理清單中選取您的 client-prod 執行處理。
-
按一下安全性。此項目空白,因為尚未指定安全屬性給執行處理。
-
按一下新增安全屬性,然後輸入下列資訊。
- 命名空間:輸入
oracle-zpr
。 - 索引鍵:輸入
app
。 - 值:輸入
prod
。
- 命名空間:輸入
-
按一下新增安全性屬性,將安全性屬性指派給資料庫。將會更新運算執行處理並指定屬性。
-
移至 OCI 主控台,瀏覽至運算和執行處理。
-
從可用的執行處理清單中選取您的 client-dev 執行處理。
-
按一下安全性。
-
按一下新增安全屬性,然後輸入下列資訊。
- 命名空間:選取
oracle-zpr
。 - 索引鍵:選取
app
。 - 值:選取
dev
。
- 命名空間:選取
-
按一下新增安全性屬性,將安全性屬性指派給資料庫。將會更新運算執行處理並指定屬性。
-
-
將安全屬性指定給 VCN。
-
移至 OCI 主控台,瀏覽至網路和虛擬雲端網路。
注意:請確定您位於建立 VCN 的區間中,便會看到該區間。
-
從可用的 VCN 清單中選取您的 so-vcn-pt VCN。
-
按一下安全性。
注意:若要指定此安全屬性,您將透過「OCI 零信任封包路由」功能表來指定此屬性,而不是從資源指定。這裡顯示指定 OCI Zero Trust Packet Routing 安全屬性的兩種不同方式。
-
移至 OCI 主控台,瀏覽至識別與安全、零信任封包路由,然後按一下受保護的資源。
您將會看到已經受保護的現有資源清單,例如已將安全屬性指定給它們。
-
按一下新增安全屬性至資源。
-
若要篩選清單,請選取您建立 VCN 的區間,然後選取資源類型作為
Vcn
。 -
選取您的 VCN ( so-vcn-pt),然後按一下下一步。
-
請輸入下列資訊。
- 安全屬性命名空間:選取
oracle-zpr
。 - 安全性屬性:選取
network
。 - 安全性屬性值:選取
prod
。
- 安全屬性命名空間:選取
-
按一下下一步並複查摘要。
-
按一下提交與關閉,以結束工作要求。在數分鐘後,將會完成工作要求,而 VCN 將會顯示在受保護資源中。我們也可以簽入 VCN,以確保已指派安全性屬性。
-
重複步驟 1 到 3,查看指定給 VCN 的安全屬性。
-
作業 6:測試原則
現在,OCI Zero Trust Packet Routing 組態已完成,最終任務是測試原則。在本自學課程中,我們有兩個測試案例。
-
第一個測試案例是確保 client-prod 仍然可以存取 financeprod 資料庫。
-
以
opc
使用者身分使用 SSH 連線至您的 client-prod 運算執行處理。您的 OCI 零信任封包路由原則允許從您的本機機器進行此連線,因此您的 SSH 連線應成功。
-
執行
sqlplus
命令以連線至您的自治式資料庫。您的 OCI 零信任封包路由原則允許將此連線從您的生產環境從屬端 ( client-prod) 連線至您的生產環境資料庫 ( financeprod),因此您應該順利連線至您的資料庫,並且能夠執行
show user;
命令。
-
-
第二個測試案例是確保 client-dev 無法再存取 financeprod 資料庫。
-
以
opc
使用者身分使用 SSH 連線至您的 client-dev 運算執行處理。您的「零信任封包路由」原則允許從您的本機機器進行此連線,因此您的 SSH 連線應成功。
-
執行
sqlplus
命令以連線至您的自治式資料庫。由於沒有任何 OCI 零信任封包路由原則允許從您的開發從屬端 ( client-dev) 連線至生產環境資料庫 ( financeprod),因此將會封鎖連線。
-
相關連結
認可
- 作者 - Paul Toal (資深協理 CISO 領域)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Create and Configure Oracle Cloud Infrastructure Zero Trust Packet Routing
G17492-01
October 2024