使用 OCI API 閘道設定 REST 端點的資源型存取
以資源為基礎的存取控制可讓您根據使用者的屬性和特性,管理對資源的存取。這不同於以角色為基礎的存取控制,其中的資源存取權是根據角色所授予。透過資源型存取控制,您可以針對個別用戶精細指定 REST API 集合 (部署) 的權限。
以下是針對 REST API 端點實行以資源為基礎的存取控制的一些優點:
- 對 Oracle SaaS 和 Oracle Cloud Infrastructure (OCI) 代管的 API 端點實施微點控制。
- 請避免對一般使用者和應用程式顯示後端 API 證明資料。
- 對透過各種 OCI 服務 (例如 Oracle Cloud Infrastructure Kubernetes Engine 和 OCI Functions) 公開的 API 強制執行以資源為基礎的存取。
OCI API Gateway 在為 REST 端點導入以資源為基礎的存取控制時,啟用額外的 API 管理功能:
- 使用用量計畫協助將企業 API 貨幣化。
- 使用速率限制和配額控制 API 使用狀況。
- 運用儀表板監控合併的訂戶型 API 使用狀況。
架構
此架構概述 OCI 上代管之 REST 端點的資源型存取控制。來自人力資本管理 (HCM) 和供應鏈和製造 (SCM) 的使用者和應用程式要求只能存取其各自的資源。REST 端點透過 Oracle SaaS 應用程式和 Oracle 服務 (例如 OCI Functions 、Oracle Integration Cloud Service 和 OCI Kubernetes Engine) 代管和公開。
HCM 和 SCM 部署是在 OCI API 閘道中建立。REST 端點是在個別部署底下設定為後端服務。OCI Identity and Access Management 機密應用程式用於 HCM 和 SCM 網域。用戶端機密應用程式的範圍和受眾詳細資料應與個別的 OCI API 閘道部署 JWT 驗證組態相符。HCM 和 SCM 用戶應該可以存取其機密應用程式存取記號 URL、從屬端 ID、從屬端密碼以及權杖產生範圍。與用戶共用 OCI API Gateway HCM 和 SCM 部署端點。
在公用子網路中佈建 OCI API 閘道以攔截所有網際網路流量。OCI Functions 和 Oracle Integration Cloud Service 是原生 OCI 服務,可顯示設定為後端 OCI API Gateway 部署的 REST API。OCI API Gateway 透過服務閘道與這些 REST API 通訊。OCI Kubernetes 引擎容器服務可以在專用子網路中代管,而透過 OCI Kubernetes 引擎叢集公開的 REST 端點。OCI API Gateway 和 OCI Kubernetes Engine 叢集之間的通訊可透過安全清單和路由規則進行啟用。
下圖說明此參考架構。
以資源為基礎的 -access-rest-api-arch.zip
下列圖表說明資料流程:
HCM 和 SCM 使用者的資料流程如下:
- (a,b) 以範圍和目標對象設定用戶端機密應用程式和資源應用程式。
- (a,b) 使用 REST 端點、範圍和目標對象來設定 OCI API 閘道部署。
- (a,b) 使用者應用程式會使用用戶端機密應用程式產生 JWT 憑證。權杖包含編碼的範圍和對象。
- (a,b) 使用者使用其權杖觸發 OCI API 閘道端點部署。
- (a,b) OCI API Gateway 會根據部署中設定的範圍和目標對象驗證權杖。
- (a,b) 如果驗證成功,則會根據路由組態授予個別的 API 存取權。
- (a,b) 如果驗證失敗,則會傳回 401 個未授權的錯誤。
架構具有下列元件:
- 地區
Oracle Cloud Infrastructure 區域是一個本地化地理區域,其中包含一或多個稱為可用性網域的資料中心。區域獨立於其他區域,而廣大的距離可以將其分開 (跨國家或大陸)。
- 可用性網域
可用性網域是區域內的獨立獨立資料中心。每個可用性網域中的實體資源會與其他可用性網域中的資源隔離,以提供容錯能力。可用性網域不會共用基礎架構 (例如電源或冷卻系統) 或內部可用性網域網路。因此,一個可用性網域的故障不應影響該區域中的其他可用性網域。
- 容錯域
容錯網域是可用性網域內的一組硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分散到多個容錯域時,您的應用程式可以容忍容錯域內的實體伺服器故障、系統維護和電源故障。
- 虛擬雲端網路 (VCN) 和子網路
VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。與傳統的資料中心網路一樣,VCN 可讓您控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,您可以在建立 VCN 之後變更。您可以將 VCN 區隔成子網路,此子網路可以設定區域範圍或可用性網域。每個子網路都是由連續的位址範圍組成,這些位址不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用或專用。
- OCI Kubernetes 引擎
Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes 引擎或確定 ) 是完全託管、可擴展且高可用性的服務,可用來將容器化應用程式部署到雲端。您可以指定應用程式所需的運算資源,而 Kubernetes 引擎則會在現有租用戶的 Oracle Cloud Infrastructure 上佈建這些資源。OKE 使用 Kubernetes 將跨主機叢集的容器化應用程式部署、調整規模及管理自動化。
- API 閘道
Oracle API Gateway 可讓您發布內含可從您網路存取之專用端點的 API,並視需要向公用網際網路公開。端點支援 API 驗證、要求和回應轉換、CORS、驗證和授權以及要求限制。
- 功能
Oracle Cloud Infrastructure Functions 是一個完全託管的多租戶、高度可擴充、隨選、Functions-as-a-Service (FaaS) 平台。由 Fn Project 開放原始碼引擎提供技術支援。Functions 可讓您部署程式碼,並直接呼叫程式碼或觸發程式碼以回應事件。Oracle Functions 使用 Oracle Cloud Infrastructure Registry 中代管的 Docker 容器。
- 整合
Oracle Integration 是一項完全託管的服務,可讓您整合應用程式、自動化流程、深入瞭解業務流程,以及建立視覺化應用程式。
- 身分識別與存取管理 (IAM)
Oracle Cloud Infrastructure Identity and Access Management (IAM) 是 Oracle Cloud Infrastructure (OCI) 和 Oracle Cloud Applications 的存取控制層。IAM API 和使用者介面可讓您管理識別網域和識別網域內的資源。每個 OCI IAM 識別網域都代表獨立的識別與存取管理解決方案,或代表不同的使用者群體。
建議
- 生產環境和非生產環境
為生產環境和非生產環境建立多個識別網域和個別的 OCI API Gateway 執行處理,以更好地控制使用者存取和隔離。
- 安全
將後端證明資料儲存在 OCI Vault 中以增強安全性。如果從屬端密碼遭到洩漏,請重新產生從屬端密碼。
注意事項
實行此參照架構時請考量下列事項:
- 效能
OCI API Gateway 提供速率限制和配額功能,可讓您發揮最大效能並降低延遲。以下是一些優點:
- 保護您的後端不會被太多要求超載,以維持高可用性及公平的資源使用。
- 防止拒絕服務攻擊。
- 限制資源使用成本。
- 限制客戶使用者使用的 API 將 API 貨幣化。
- 安全
建立治理流程以管理從屬端證明資料和用戶。
- 使用狀態
在區域子網路 (非可用性網域特定子網路) 中建立 API 閘道,以確保高可用性。
- 成本
OCI API Gateway 是具有公平定價模式的合乎成本效益選項。