附註:

深入瞭解標記式 Oracle Cloud Infrastructure Identity and Access Management 政策

簡介

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 原則是強大且安全的雲端環境的基石。它們提供強大的彈性機制,可控制對 OCI 資源的存取,確保只有獲得授權的使用者和服務才能對指定的資源執行特定動作。

OCI IAM 原則是一組以人為可讀語法撰寫的宣告式敘述句,指定可以存取什麼以及在哪些條件之下。這些原則可讓組織強制實行最低權限原則,只授予使用者和服務執行工作所需的權限。這樣可以將安全風險降到最低,同時維持營運效率。

OCI IAM 原則適用於 OCI 階層的各種層級,包括區間、租用戶和特定資源,因此可高度適應複雜的組織結構。透過 OCI 的原則繼承和區間化,管理員可以根據其特定的安全性和操作需求建立精細的控制。如需有關 OCI 原則的詳細資訊,請參閱原則入門

在本教學課程中,我們將探討原則最佳化的重要性、探索微調原則以達到最佳結果的最佳做法,以及強調可充分運用原則最佳化的案例。

目標

必要條件

解密政策元件與語法

若要有效調整 OCI IAM 原則,必須瞭解其結構和主要元件。OCI 中的原則透過指定誰 (主要)、何者 (動作) 以及何處 (範圍) 來定義權限。讓我們細分:

OCI IAM 原則的主要元件

紅利提示:瞭解 OCI IAM 原則中的 Sets-Intersect Concept

OCI IAM 原則中的 sets-intersect 只有在兩組值之間重疊時,才用於授予存取權。這可確保根據群組成員資格、資源標記或其他屬性動態授予權限,而不是對原則中的特定使用者或群組進行硬式編碼。

適用於大規模的 OCI IAM 政策模型

OCI IAM 原則是保護 OCI 上工作負載的基本部分之一。能夠為客戶擴展和支援大型工作負載至關重要。這就是為什麼我們建立了一個需要少量政策的政策模型,在 OCI 的政策限制內,該政策模型適用於任何規模的工作負載。下列是採用可擴充政策模型的部分原因。如需詳細資訊,請參閱 IAM With Identity Domains Limits

調整 OCI IAM 原則是維護安全、可擴展且高效率雲端環境的重要工作,同時維持在 OCI 的原則限制內。以下說明此處理程序的重要原因:

Policy Management 中標記的角色

標記功能是 OCI 中的強大功能,可藉由微點控制資源,大幅強化原則管理。標記是描述資料標籤,以索引鍵 - 值組表示,可以連附至資源。他們協助大規模組織、管理及強制執行存取控制,特別是在具有多個團隊和專案的複雜雲端環境中。如需詳細資訊,請參閱標記功能總覽

標記功能如何增強原則管理

  1. 簡化資源識別:標記提供統一的方式,根據專案、環境、擁有者或部門等屬性將資源分類。這可簡化將原則套用至特定資源子集的程序。

    範例:使用 Project: ProjectX 標記資源會啟用目標存取原則。

    Allow group Developers to manage instances in tenancy where tag.Project = 'ProjectX'
    
  2. 啟用動態原則強制實行:以標記為基礎的原則會適應不斷變化的資源屬性。例如,如果新實例標記為 Environment: Production,則會自動繼承為生產環境定義的原則。

    原則範例:

    Allow group QA to inspect instances in tenancy where tag.Environment = 'Test'
    
  3. 簡化多重專案與多團隊治理:標記可透過將資源與特定團隊或專案建立關聯,協助隔離存取。這可降低管理多個群組的權限時的複雜性。

  4. 加速自動化:標記可驅動自動工作流程,以建立、監控及生命週期管理。例如,成本追蹤指令碼可以擷取所有標記為 CostCenter:Marketing 的資源,以產生詳細的費用報表。

  5. 改善成本管理與報告:標記可為特定專案、部門或環境提供精細的成本歸因。這有助於組織更有效地追蹤支出並最佳化預算。

標記治理:控制標記管理

為了在原則管理中維持一致性、可靠性和安全性,應嚴格控制標記的建立和修改。治理可確保標記正確套用,並符合組織標準。將標記管理限制在特定一組個人或群組,是維護組織雲端環境內控制、一致性及安全性的關鍵元素。

實際使用案例的標記式 OCI IAM 原則

現在,在實際使用案例中,讓我們針對使用者原則和執行處理原則調整 OCI IAM 原則。但在我們這麼做之前,有些常見的政策是,不論客戶的使用案例為何,每個客戶都需要使用。

針對使用者主體調整 OCI IAM 原則

OCI IAM 政策模型:在此政策模型中,目標是撰寫少量由資料 (案例中的標記) 通知的可管理政策 (亦稱為「以屬性為基礎的存取控制」)。系統會將指定給目標資源或目標資源區間的標記稱為權限標記,以進行存取控制。

權限標記:定義租用戶中每個動詞 (動作) + 資源類型組合的權限標記。它們會定義您需要為目標資源指派給使用者群組的唯一權限。清單未設定完成。從少量權限標籤開始。取得政策模型的控點後,您可以新增更多權限標記。在本教學課程中,我們將建立權限標記命名空間作為 mgmt 。此外,我們將建立一個標記命名空間 (此 infosec),其中包含一個名為 gname 的標記索引鍵。

  1. 對於具有四種資源類型的下列區間結構,以及指定這些資源的管理與使用權限,我們將會建立權限標記。

    權限標記

  2. 對於您需要指派給目標的每一個權限 (大多數情況下的區間),請建立一個群組。我們會將權限標記指定給資源 (使用區間預設標記) 和資源區間。標記值是應具有目標資源之指定權限的群組。

    權限標記群組

  3. 定義權限標記之後,我們便可以撰寫原則。最後的結果是,租用戶中定義的每個權限標記只需要一個原則。指定權限的相同原則將在整個租用戶中運作。

    權限標記原則

  4. 隨著我們加入更多工作負載,如果要管理更多資源類型,則您可能必須為這些權限標記新增更多權限標記和原則。否則,您只要將現有的權限標記指定給新的工作負載,其中包含應具有存取權的使用者群組。我們不需要為新工作負載編寫任何新的原則。

此方法在所有此處討論的範例中都保持一致,作為定義 OCI IAM 群組和原則的基礎。

範例 1:每個應用程式的區間

步驟 1:全面瞭解客戶的業務概要

CompanyA 是一家成長型技術公司,為其客戶開發和部署多個雲端原生應用程式。每個應用程式都符合特定的客戶群,並具備嚴格的安全性和規範需求。為了確保隔離、可擴展性和高效率的存取控制,CompanyA 使用結構化的區間化方法組織其 OCI 資源。

步驟 2:設計工作負載的區間結構

如所述,CompanyA 遵循 OCI IAM 政策模型來調整其 OCI IAM 原則。它們為其應用程式建立了不同的隔離專區,以維護資源隔離。

使用案例 1

注意:只有管理員才能夠管理 mgmtinfosec 標記命名空間。

步驟 3:設計下列類型 Verb+Resource 組合的權限標記

在 OCI 中建立群組。

  1. 以具備建立群組權限的管理員帳戶登入 OCI IAM 網域。

    OCI 本位目錄

  2. 前往識別與安全,然後按一下識別底下的網域

    網域

  3. 選取您的區間,然後按一下要為其建立群組的網域。

    選取網域

  4. 按一下群組

    群組

  5. 根據權限標記定義您的群組。( 選擇性 ) 將您的使用者新增至這些群組。

    建立群組

注意:您必須為唯一的權限和目標組合建立群組。如果相同的功能群組使用者 (NetworkAdmin) 需要有管理所有目標之網路的存取權,則您只需要一個群組來管理所有目標的存取權。

以下為這些標記的權限標記和 OCI IAM 群組。請依照上述步驟,為每個定義的權限標記建立群組。

  1. 根區間:根區間可作為最上層管理層。我們的管理群組會標記權限標記。下列標記為:

    • 管理員:管理整體租用戶管理的 manageall 權限。
    • UseAdministrators: useall 存取跨租用戶資源的權限。
    • 稽核者:具備資源唯讀存取權的 readall 權限,可跨租用戶進行監控。
  2. 每個應用程式區間模型:CompanyA 有多個雲端應用程式。我們會為每個應用程式建立個別的父項區間。讓我們探索此模型如何套用至應用程式 1 (App1) 應用程式 2 (App2) 作為父項區間。

    • 應用程式 1 (App1):託管在 OCI 上的客戶導向應用程式。

      • 網路區間: 適用於所有網路相關資源 (例如 VCN、子網路等等) 的區間。現在,您可以建立權限標記及其個別的 OCI IAM 群組。
        • App1NetworkAdmin:用於管理 App1 網路資源之工程師的 managenetwork 資源權限標記。
        • App1NetworkUser: usenetwork 資源權限標記,適用於需要 App1 網路組態有限存取權的開發人員。
        • App1NetworkReader:用於驗證 App1 網路設定之稽核者的 readnetwork 資源權限標記。
      • 運算區間: 運算執行處理的區間。現在,您可以建立權限標記及其個別的 OCI IAM 群組。
        • App1ComputeAdmin: App1 後端的系統管理員佈建和調整運算執行處理的 managecompute 資源權限標記。
        • App1ComputeUser: App1 的開發人員部署及測試後端服務的 usecompute 資源權限標記。
        • App1ComputeReader:監督 App1 之運算資源使用狀況的稽核者所使用的 readcompute 資源權限標記。
      • 資料區間: 資料庫和儲存相關資源的區間。現在,您可以建立權限標記及其個別的 OCI IAM 群組。
        • App1DataAdmin:用於管理 Oracle 自治式資料庫和 App1 OCI 物件儲存的資料庫管理員的 managedb 資源權限標記。
        • App1DataUser: usedb 資源權限標記,可供存取資料集以進行 App1 相關分析的資料科學家使用。
        • App1DataReader:稽核者複查 App1 資料庫組態的 readdb 資源權限標記。
    • 應用程式 2 (App2):用於 CompanyA 作業的內部企業資源規劃 (ERP) 系統。

      注意:我們也將採用相同的區間結構方法,並在父項 App2 區間底下建立網路區間運算區間資料區間。為了避免冗餘,我們只會記下 App2 的權限標記和 OCI IAM 群組。

      • 網路區間:

        • App2NetworkAdmin: managenetwork 資源權限標記。
        • App2NetworkUser: usenetwork 資源權限標記。
        • App2NetworkReader: readnetwork 資源權限標記。
      • 運算區間:

        • App2ComputeAdmin: managecompute 資源權限標記。
        • App2ComputeUser: usecompute 資源權限標記。
        • App2ComputeReader: readcompute 資源權限標記。
      • 資料區間:

        • App2DataAdmin: managedb 資源權限標記。
        • App2DataUser: usedb 資源權限標記。
        • App2DataReader: readdb 資源權限標記。

注意:將權限標記套用至目標 (目標可以是資源或區間),以指定哪些群組將擁有 App1App2 目標的特定權限。

步驟 4:撰寫這些權限標記的 OCI IAM 原則

我們將使用與此處討論的相同方法建立 CompanyA 的原則:更少 - 針對群組調整 OCI IAM 原則。因此,請建立一個標記命名空間 (我們將呼叫此 infosec),其中包含一個名為 gname 的標記索引鍵。

  1. 以具備建立原則之權限的管理員帳戶登入 OCI IAM 網域。

    OCI 本位目錄

  2. 前往識別與安全,然後按一下識別底下的原則

    原則

  3. 選取根區間,然後按一下建立原則

    建立原則

  4. 輸入原則的名稱描述,然後一併新增原則敘述句。按一下建立

    • 所有資源原則:

      Allow any-user to manage all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.manageall)
      Allow any-user to use all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useall)
      Allow any-user to read all-resources in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readall)
      

      原則敘述句

      注意:請依照相同的程序來定義下列所有原則,並新增它們各自的原則敘述句。

    • 雲端保全原則:

      Allow any-user to manage cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecspm)
      Allow any-user to use cloud-guard-family in tenancy where
      sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecspm)
      Allow any-user to read cloud-guard-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readcspm)
      
    • 網路原則:

      Allow any-user to manage virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managenetwork)
      Allow any-user to use virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.useetwork)
      Allow any-user to read virtual-network-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readnetwork)
      
    • 運算原則:

      Allow any-user to manage instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managecompute)
      Allow any-user to use instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usecompute)
      Allow any-user to read instance-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readcompute)
      
    • 資料庫原則:

      Allow any-user to manage database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.managedb)
      Allow any-user to use database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.usedb)
      Allow any-user to read database-family in tenancy where sets-intersect(request.groups.name,target.resource.compartment.tag.mgmt.readdb)
      

範例 2:每個客戶 / 租用戶的區間

步驟 1:全面瞭解客戶的業務概要

CompanyB 解決方案是領先的獨立軟體供應商 (ISV),在雲端基礎架構、資料管理和分析中提供以用戶為基礎的 SaaS 應用軟體。CompanyB 為各行各業的多個客戶提供無縫、安全且可擴展的解決方案。他們的成功需要使用設計完善的區間結構 OCI 來有效管理資源,同時遵守安全性和合規性需求。

步驟 2:設計工作負載的區間結構

CompanyB 已將客戶的工作負載隔離,並已建立專屬子區間。此外,它們也有網路區間、共用儲存體以及資料庫區間。即使是 CompanyB,也遵循 OCI IAM 政策模型來調整其 OCI IAM 政策。

使用案例 2

步驟 3:設計下列類型 Verb+Resource 組合的權限標記

若要建立群組,請參閱範例 1 步驟 3。您必須為下方定義的所有權限標記建立群組。

  1. 根區間 - 集中式治理:根元件可作為監督整個 OCI 租用戶之所有資源和活動的中央層。我們的管理群組會標記權限標記。下列標記為:

    • 管理員:管理整體租用戶管理的 manageall 權限。
    • UseAdministrators: useall 存取跨租用戶資源的權限。
    • 稽核者:具備資源唯讀存取權的 readall 權限,可跨租用戶進行監控。
  2. 網路區間 - 作業骨幹:網路區間支援 CompanyB 的雲端網路基礎架構,可跨所有資源進行連線。這包括虛擬雲端網路 (VCN)、子網路、閘道及負載平衡器。讓我們定義權限標記及其個別的 OCI IAM 群組。

    • NetworkAdmin:用於管理 CompanyB 網路資源之工程師的 managenetwork 資源權限標記。
    • NetworkUser: usenetwork 資源權限標記,適用於需要 CompanyB 網路組態有限存取權的開發人員。
    • NetworkReader:用於驗證 CompanyB 網路設定之稽核者的 readnetwork 資源權限標記。
  3. 租用戶區間 - 不同客戶工作負載的隔離區間:租用戶區間的結構為隔離每個從屬端 (租用戶) 的資源和工作負載。這可確保 CompanyB 提供安全和私有服務,同時維持營運效率。

    • 租用戶 1 區間:租用戶 1 代表使用 CompanyB 進行應用程式開發與記錄日誌服務的主要企業從屬端。下列是權限標記和個別的 OCI IAM 群組:

      • t1devadmin租用戶 1 之開發團隊的 manageappdev 資源權限具有管理權限,可設定及部署自訂應用程式。
      • t1devuser useappdev 可監視與調整應用程式資源的資源權限。租用戶 1 的開發人員使用這些資源進行日常開發與測試。
      • t1logsadmint1devuser記錄日誌和監督角色的 managelogsuselogs 資源權限可確保 administrators 可設定記錄日誌服務,而 developers 存取日誌則可對應用程式進行除錯和最佳化。
      • t1devadmint1devuser租用戶 1 的 managecspmusecspm 資源權限,因為它們也著重於安全態勢,並且能夠監督及修正安全風險。
    • Tenant 2 and Tenant 3 Compartments: The structure for Tenant 2 and Tenant 3 mirrors that of Tenant 1, with roles like t2devadmin, t2devuser, t3devadmin, t3devuser, t2logsadmin and t3logsadmin ensuring that each tenant operates in a fully isolated environment.此方法可讓 CompanyB 維持一致的治理,同時滿足特定租用戶的需求。

    • 共用區間 - 所有租用戶的集中式資源:共用區間包含多個租用戶使用但依然以邏輯方式隔離的資源 (例如資料庫和物件儲存),以提供隱私權和安全性。

      • 資料庫區間:
        • dbadminCompanyB 資料庫管理員的 managedb 資源權限會處理所有用戶使用的共用資料庫,包括佈建、調整及修正。
        • dbuser租用戶特定使用者的 usedb 資源權限會存取其個別的資料庫綱要或服務。
        • dbreader稽核者的 readdb 資源權限具有唯讀存取權,以確保資料庫組態符合安全原則。
      • 儲存區間: OCI Object Storage 會集中管理,每個租用戶都有專用的儲存桶:
        • osadmin負責管理共用物件儲存資源的 manageobject 資源權限。
        • osuser useobject 用戶特定的儲存資源權限 (例如 t1osurt2osurt3osur) 可確保用戶只能存取其個別的儲存桶。
        • osreader規範團隊的 readobject 資源權限會複查儲存組態和使用模式。

步驟 4:撰寫這些權限標記的 OCI IAM 原則

若要建立原則,請參閱範例 1 步驟 4。您必須建立下列原則。

範例 3:大型企業區間結構

步驟 1:全面瞭解客戶的業務概要

CompanyC 解決方案是專門從事創新軟體解決方案的跨國組織,決定將其關鍵任務工作負載移轉至 OCI。該公司在財務和醫療照護等高度監管的產業營運,其中安全、合規和擴展性至關重要。

步驟 2:設計工作負載的區間結構

現在讓我們探索 CompanyC 的區間結構,此區間遵循 OCI IAM 政策模型來調整其 OCI IAM 政策。

使用案例 3

步驟 3:設計下列類型 Verb+Resource 組合的權限標記

若要建立群組,請參閱範例 1 步驟 3。您必須為下列所有權限標籤建立群組。

  1. 根區間 - 集中式治理:根元件可作為監督整個 OCI 租用戶之所有資源和活動的中央層。我們的管理群組會標記權限標記。下列標記為:

    • 管理員:管理整體租用戶管理的 manageall 權限。
    • UseAdministrators: useall 存取跨租用戶資源的權限。
    • 稽核者:具備資源唯讀存取權的 readall 權限,可跨租用戶進行監控。
  2. 產品區間:代管關鍵任務生產工作負載 (直接影響業務作業和一般使用者) 的區間。每個應用程式都有專屬的子區間,可用於資源隔離和最佳化管理。讓我們定義權限標記及其個別的 OCI IAM 群組。

    • NetworkAdmin:用於管理 CompanyC 網路資源之工程師的 managenetwork 資源權限標記。
    • NetworkReader:用於驗證 CompanyC 網路設定之稽核者的 readnetwork 資源權限標記。
    • ComputeAdmin: managecompute 資源權限標記,可供系統管理員佈建及調整 CompanyC 的運算執行處理。
    • ComputeReader:監控 CompanyC 之運算資源使用狀況的稽核者所使用的 readcompute 資源權限標記。
    • StorageReader:儲存管理員團隊管理儲存組態的 manageobject 資源權限。
    • StorageReader:規範團隊的 readobject 資源權限會複查儲存組態和使用模式。
    • SecurityAdmin: Compartment PRODmanagecspm 資源權限也著重於安全態勢,並且能夠監控及修正安全風險。

    現在,我們將繼續為應用程式特定的子區間定義權限標記和個別的 OCI IAM 群組。有時候,我們已經為這 3 個不同的應用程式區間合併並定義了權限。

    • 應用程式區間:
      • PRApp1NetAdmin、PRApp2NetAdmin 及 PRApp3NetAdmin: 分別管理 App1App2App3 之網路資源的工程師,擁有 managenetwork 資源權限標記的管理 OCI IAM 群組。
      • PRApp1NetUser、PRApp2NetUser 及 PRApp3NetUser: 分別管理 App1App2App3 之網路資源的工程師,擁有 usenetwork 資源權限標記的管理 OCI IAM 群組。
      • PRApp1ComputeAdmin、PRApp2ComputeAdmin 及 PRApp3ComputeAdmin: 分別管理 App1App2App3 之 OCI Compute 執行處理的工程師,擁有 managecompute 資源權限標記的管理 OCI IAM 群組。
      • PRApp1ComputeUser、PRApp2ComputeUser 及 PRApp3ComputeUser: 分別為 App1App2App3 使用 OCI Compute 執行處理的工程師,以 usecompute 資源權限標記管理 OCI IAM 群組。
      • PRApp1StorageAdmin、PRApp2StorageAdmin 及 PRApp3StorageAdmin: 分別為 App1App2App3 管理 OCI Object Storage 之工程師的 manageobject 資源權限標記管理 OCI IAM 群組。
      • PRApp1StorageUser、PRApp2StorageUser 及 PRApp3StorageUser: 分別為 App1App2App3 使用 OCI Object Storage 的工程師,以 useobject 資源權限標記管理 OCI IAM 群組。
  3. NPROD 區間:專用於暫存開發品質保證環境。此區間的結構與 PROD 類似,可確保一致性。讓我們定義權限標記及其個別的 OCI IAM 群組。

    • NetworkAdmin:用於管理 CompanyC 網路資源之工程師的 managenetwork 資源權限標記。
    • NetworkReader:用於驗證 CompanyC 網路設定之稽核者的 readnetwork 資源權限標記。
    • ComputeAdmin: managecompute 資源權限標記,可供系統管理員佈建及調整 CompanyC 的 OCI Compute 執行處理。
    • ComputeReader:監控 CompanyC 之 OCI Compute 資源用量之稽核者的 readcompute 資源權限標記。
    • StorageReader:儲存管理員團隊管理儲存組態的 manageobject 資源權限。
    • StorageReader:規範團隊的 readStorage 資源權限會複查儲存組態和使用模式。
    • SecurityAdmin:區間 NPRODmanagecspm 資源權限,因為它們也著重於安全態勢,並且能夠監控和修正安全風險。

    同樣地,現在我們將繼續為應用程式特定的子區間定義權限標記和個別的 OCI IAM 群組。

    • 應用程式區間:
      • NPApp1NetAdmin、NPApp2NetAdmin 及 NPApp3NetAdmin: 分別管理 App1App2App3 之網路資源的工程師,擁有 managenetwork 資源權限標記的管理 OCI IAM 群組。
      • NPApp1NetUser、NPApp2NetUser 及 NPApp3NetUser: 分別管理 App1App2App3 之網路資源的工程師,擁有 usenetwork 資源權限標記的管理 OCI IAM 群組。
      • NPApp1ComputeAdmin、NPApp2ComputeAdmin 及 NPApp3ComputeAdmin: 分別管理 App1App2App3 之 OCI Compute 執行處理的工程師,擁有 managecompute 資源權限標記的管理 OCI IAM 群組。
      • NPApp1ComputeUser、NPApp2ComputeUser 及 NPApp3ComputeUser: 分別為 App1App2App3 使用 OCI Compute 執行處理的工程師,以 usecompute 資源權限標記管理 OCI IAM 群組。
      • NPApp1StorageAdmin、NPApp2StorageAdmin 及 NPApp3StorageAdmin: 分別為 App1App2App3 管理 OCI Object Storage 之工程師的 manageobject 資源權限標記管理 OCI IAM 群組。
      • NPApp1StorageUser、NPApp2StorageUser 及 NPApp3StorageUser: 分別為 App1App2App3 使用 OCI Object Storage 的工程師,以 useobject 資源權限標記管理 OCI IAM 群組。
  4. 共用區間: 共用區間會代管資源以進行監控,例如記錄日誌和雲端保全 OCI 服務。它也具有多個用戶所使用的加密和解密金鑰,同時確保邏輯隔離以維護私密性和安全性。您應用程式中需要存取這些服務的所有管理員都將新增至針對這些服務建立的 OCI IAM 群組中。讓我們定義權限標記及其個別的 OCI IAM 群組。

    • Oracle Cloud Guard 區間:

      • cspmAdmin管理 Oracle Cloud Guard for PRODNon PROD 區間之管理員需有 managecspm 資源權限標記的管理 OCI IAM 群組。
      • cspmUser: OCI IAM groups with usecspm resources permission tag for engineers using/monitoring Oracle Cloud Guard for PROD and Non PROD compartments.
      • cspmReader具備 readcspm 資源權限標記的 OCI IAM 群組,供讀取 Oracle Cloud Guard for PRODNon PROD 區間的工程師使用。
    • OCI 日誌記錄區間:

      • logsAdmin 管理 OCI IAM 群組含有管理 PRODNon PROD 區間之 OCI 日誌記錄的 managelogs 資源權限標記。
      • logsUser針對 PRODNon PROD 區間使用 / 監控 OCI Logging 的工程師,使用 uselogs 資源權限標記的 OCI IAM 群組。
      • logsReader具備 readlogs 資源權限標記的 OCI IAM 群組,供讀取 PRODNon PROD 區間的 OCI 日誌記錄的工程師使用。
    • 金鑰區間:

      • kmsAdmin 管理 OCI IAM 群組含有管理 PRODNon PROD 區間之金鑰保存庫的 managekeys 資源權限標記。
      • kmsUser針對使用 / 監控 PRODNon PROD 區間之金鑰保存庫的工程師,使用 usekeys 資源權限標記的 OCI IAM 群組。
      • kmsReader具備 readkeys 資源權限標記的 OCI IAM 群組,可供工程師讀取 PRODNon PROD 區間的金鑰保存庫。
  5. 操場區間:用於實驗、開發及測試的彈性與隔離環境。此區間未與生產環境或規範限制連結,因此適用於創新。在這裡,我們只有一個 OCI IAM 管理員群組適用於非常子項區間,並將管理權限提供給測試需求所需的所有 OCI 資源。

    • 開發區間:

      • DevAdmin具有 managenetworkmanagecomputemanageobjectmanagekeysmanagelogs 資源權限的管理 OCI IAM 群組,可供開發管理員在開發區間中測試新的實行。
    • 測試區間:

      • TestAdmin具有 managenetworkmanagecomputemanageobjectmanagekeysmanagelogs 資源權限的管理 OCI IAM 群組,可供開發管理員在「測試區間」內測試新的實行。
    • 效能測試區間:

      • PerfTestAdmin具有 managenetworkmanagecomputemanageobjectmanagekeysmanagelogs 資源權限的管理 OCI IAM 群組,可供開發管理員在「效能測試區間」內測試新的實行。

步驟 4:撰寫這些權限標記的 OCI IAM 原則

若要建立原則,請參閱範例 1 步驟 4。您必須建立下列原則。

注意:每次您上線新工作負載時,都會出現此類情況:

精細存取控制的標記型權限模型

到目前為止,我們已討論過一系列資源的建立管理、使用者或讀取權限。不過,大多數客戶都需要精細的存取控制才能遵循最低權限的模型。教學課程的重點是瞭解政策模型,這也是我們談論簡單使用案例的原因。不過,讓我以四個網路人員為例,以及如何為這四個角色設計精細的權限標記和 OCI IAM 原則。

我們會將 networkownernetworkadminnetworkoperatornetworkuser 定義為網路區間上的四個標記。對於這些標記,我們將會指定可存取網路區間的群組名稱。

調整執行處理主體 OCI IAM 原則

範例 1:OCI 中共用儲存和加密密碼的多租用戶執行處理存取控制

步驟 1:全面瞭解客戶的業務概要

XYZ Cloud Solutions 是 SaaS 供應商,提供託管在 OCI 上的 Document Management System (DMS)。此平台為多個企業客戶提供服務,每個客戶都需要嚴格隔離其資料,同時利用共用基礎架構。

客戶需求:

步驟 2:設計工作負載的區間結構

現在讓我們探索 XYZ Cloud Solutions 的區間結構,此區間遵循 OCI IAM 政策模型來調整其 OCI IAM 政策。

實例使用個案 1

步驟 3:建立 OCI IAM 群組

為確保 OCI 多用戶環境中的安全和隔離存取管理,將定義下列原則:

注意:這些群組和 OCI IAM 原則已經如通用 OCI IAM 原則區段中所述建立。

步驟 4:為定義的群組建立 OCI IAM 原則

用戶資源存取原則:若要維持資料隔離,用戶資源只能存取自己的加密密碼和物件儲存。

Allow any-user to use object-family in compartment Storage where request.principal.compartment.tag.Enterprise.Tenant = target.resource.tag.Enterprise.Tenant
Allow any-user to use secret-family in compartment Tenants where request.principal.compartment.tag.Enterprise.Tenant = target.resource.tag.Enterprise.Tenant

如果租用戶執行處理原則也需要建立新物件的權限,則您可以建立與租用戶名稱相同名稱的儲存桶名稱,並使用租用戶名稱標記與儲存桶名稱進行比較。

Allow any-user to manage objects in compartment Storage where request.principal.compartment.tag.Enterprise.Tenant = target.bucket.name

範例 2:針對共用 OCI 儲存模型中的多重服務資料存取進行微點存取控制

步驟 1:全面瞭解客戶的業務概要

XYZ Corp 是一家專門從事數位轉型解決方案的快速成長企業。XYZ Corp 在全球營運,並在多個區域營運,並利用 OCI 託管關鍵應用程式、管理資料,以及確保團隊之間的無縫協作。

客戶需求:

步驟 2:設計工作負載的區間結構

現在讓我們探索 XYZ Corp 的區間結構,此區間遵循 OCI IAM 政策模型來調整其 OCI IAM 政策。

實例使用個案 2

步驟 3:建立 OCI IAM 群組

為確保 OCI 多用戶環境中的安全和隔離存取管理,將定義下列原則:

注意: InfoSec 和 Terraform-Runner 群組和 IAM 原則已經如上所述建立,如通用 OCI IAM 原則一節所述。

步驟 4:為定義的群組建立 OCI IAM 原則

用戶資源存取原則:若要維持資料隔離,用戶資源只能存取自己的加密密碼和物件儲存。

Allow dynamic-group AdminInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Admin’}

Allow dynamic-group SalesInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Sales’}

Allow dynamic-group SupplyInstances to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Supply’}

Allow any-user to use object-family in compartment Storage where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Shared’}

Allow dynamic-group AdminInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Admin’}

Allow dynamic-group SalesInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Sales’}

Allow dynamic-group SupplyInstances to use secret-family in compartment Tenants where all {request.principal.compartment.tag.Enterprise.Tenant=target.resource.tag.Enterprise.Tenant, target.resource.tag.Enterprise.Service=’Supply’}

認可

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center