Leo Yeh's Blog

SAS Viya (61)

教學目標

初步了解 SAS Viya 平台一般化授權和從 SAS 9 平台升級授權的基本概念。

重點概念

首先 SAS 平台設計內容安全模型是對於 SAS 管理員非常重要,在最佳實務中當我們設定直接存取控制時,不是單個使用者,而是應該使用群組,以及設定直接存取控制資料夾,而不是直接存取控制物件。然而在 SAS 9 和 SAS Viya 中設定直接存取控制的方法不同 SAS 9 和 SAS Viya 雖然皆允許我們明確設定直接存取控制,但是當我們在 SAS 9 中設定明確設定授權時,其被稱為存取控制項目 (Access Control Entry,ACE),當該物件被升級至 SAS Viya 時預設情況下會保留顯式 SAS 9 授權的內容安全模型,至於 SAS 9 的內容升級至 SAS Viya 主要有四個步驟,分別為:

  1. 建立系統資訊的初始對應
  2. 升級內部群組
  3. 升級資料定義
  4. 升級內容

接著 SAS 9 和 SAS Viya 的差異主要在於 SAS 9 允許我們設定直接訪問,透過在物件上套用存取控制樣板 (Access Control Template,ACT)來進行控制,所謂存取控制樣板也是中繼資料物件,該物件包含定義中所有列出的內容,一旦定義了存取控制樣板中繼資料物件,該存取控制樣板就應用於其它中繼資料物件,但是在 SAS Viya 沒有存取控制樣板,所以直接訪問控制。然而當該物件被升級為 SAS Viya 時,則存取控制樣板在物件上定義的內容將被刪除,此時若要保留存取控制樣板對 SAS 9 安全模型的影響,則我們需要客製化的方式授權這些物件,並且在升級至 SAS Viya 時的過程進行保留。

再來為了客製化的方式授權這些物件,我們需要規劃實作授權模型,一開始我們必須先與客戶和利害關係人討論以下問題,分別為:

  1. 客戶將使用哪些資料?
  2. 資料是如何建立、儲存和使用的?
  3. 使用者和群組如何進行組織分配?
  4. 哪些使用者需要存取哪些內容?
  5. 還有哪些其它需求,以及其會如何影響授權?

當討論完問題之後,我們將會進行規劃設計、測試和維護三個階段,在設計階段我們會先識別物件的安全,定義群組、平台資料夾和作業系統資料夾,以及相關權限設定,以利撰寫安全模型設計文件,請注意文件中為什麼 (Why) 會比做什麼 (What) 更重要。當我們按照安全模型設計文件實作之後,下一步就是進行測試存取權限,當測試無誤之後就能夠上線平台營運,然而當平台營運時還需要持續維護安全模型、更新安全模型設計, 以及稽核存取權限等相關作業。

最後在 SAS Viya 一般化授權中,當有兩個衝突授權規則發生時,則禁止優先權最高。所謂權限衝突就是透過物件和群組的繼承,幾個不同的授權規則可以嘗試為同一使用者授予或禁止對同一物件的相同權限,像是規則 A 表示“授權”,但規則 B 表示“禁止,在某些其它授權系統中,像是 CAS 授權或 SAS 9 中繼資料,應用於物件的規則優先於應用於某些父物件的規則,並覆蓋適用於父物件的規則。此外一般化授權主要是基於屬性的授權系統,其會根據以下屬性確定授權,分別為:

  1. 主題:描述嘗試存取的使用者的屬性,像是部門、角色、職稱、…等。
  2. 操作:描述正在嘗試操作的屬性,像是讀取、刪除、批准、…等。
  3. 資源:描述被存取物件的屬性,像是物件類型、位置、…等。
  4. 屬性:處理時間、位置、…等屬性。

總結 SAS 9 和 SAS Viya 在授權方面有許多不相同的地方,請參考下表,所以若我們要將 SAS 9 平台中的資料關聯授權升級至 SAS Viya 平台時,則建議規規劃安全模型設計文件的專業服務,以利後續的營運維護相關任務的順利進行。

SAS 9 SAS Viya
訪問控制模板
角色和能力 針對服務、服務端點、媒體類型或客製 URI 的規則。
內部用戶的權限 (@saspw)
中繼資料伺服器 身份驗證服務、身份服務、授權服務、憑證服務、資料夾服務、…等。
使用者和群組層次結構,其中群組的成員資格是繼承的,評估優先級時會考慮距離。 使用者和群組層次結構,其中群組的成員資格是繼承的,群組的距離對優先權沒有影響,因為扁平化。
物件層次結構主要應用於父物件的存取控制是繼承的,評估優先級時會考慮距離。 物件層次結構主要應用於父物件的存取控制是繼承的,物件的距離對優先權沒有影響,因為扁平化。
優先考慮第一個物件層次結構,然後考慮使用者層次結構,如果其他條件相同,則拒絕批准。 禁止優先。

相關資源

⬅️ Go back