檔案系統驗證與授權
在您了解工作負載的整體效能與流量特性之後,將必須考慮安全性層面。 您的資料可能具有敏感性,例如,病患放射影像。 基於許多原因,建議您限制對資料的存取。 建議您為每位研究人員提供一個「主目錄」,讓他們可從中載入資料並進行 HPC 分析與模擬。
當您選取雲端 HPC 儲存體時,請留意它將如何與您目前的安全性態勢整合。 了解檔案系統驗證和授權存取檔案的方法。 請注意強制執行是本地還是遠程 (或兩者皆是),以及身份驗證和授權的來源。 如果您使用遠端共用檔案系統,您必須了解如何使用標準的 NAS 實務來控制存取權。 最後,如果您為使用者提供獨特的工作空間 (主目錄),請了解如何配置該空間。
在此單元中,我們會檢查安全性考慮,以及它們如何影響您的儲存體架構。
驗證與授權的概觀
驗證:當您提供檔案系統的存取權時,必須使用一些信任的認證來驗證要求者。 許多用戶端/伺服器架構會針對此類認證 (例如,使用者或電腦帳戶) 發出挑戰。 然後會檢查那些認證,以確保它們對環境而言是有效的。 驗證之後,要求者 (使用者或電腦/處理程序) 接著會獲得授權。 您環境的必要存取通訊協定可能會限制解決方案的驗證。 例如,如果您有 Windows 環境,您很可能是使用伺服器訊息區 (SMB) 作為網路檔案存取通訊協定。 SMB 驗證需求與 NFS 需求不同。
授權:允許使用者或電腦存取環境是一件事,但存取「層級」是什麼呢? 例如,使用者 A 可能會讀取檔案系統上的檔案,而使用者 B 可能會讀取及寫入檔案。 授權可以比讀取及寫入更深入。 例如,使用者 C 可能會修改檔案,但不能在指定的目錄中建立新檔案。
授權層級通常以指定檔案的「權限」來表示。 這些包括讀取、寫入及執行。
使用者和群組:當您有大量使用者時,授與對某一組資源的存取權可能會變得很麻煩。 如果您想要將不同層級的存取權授與多組使用者,這也會變得複雜。 接著變成必須使用「群組」。 您可以將使用者指派給特定群組或群組集合。 然後,可以根據該群組識別碼來授權資源的存取權。
驗證與授權結合在一起,即代表您想要授與資源的使用者層級、群組層級與電腦層級存取權 (在我們的案例中,授與給檔案)。
Linux OS 會將「使用者識別碼」(UID) 指派給個別使用者帳戶。 UID 是一個整數。 系統會使用它來判斷特定使用者可存取哪些系統資源,包括檔案與資料夾。
Linux OS 會使用「群組識別碼」(GID) 來進行群組指派。 使用者會與單一主要群組產生關聯。 在大部分的新式 Linux 系統上,使用者幾乎可與任意數目的補充群組指派產生關聯,最多可達 65,536 個。
本機和遠端驗證與授權
本機驗證與授權指的是使用者/電腦帳戶對本機檔案系統的存取權,該帳戶也是電腦的本機帳戶。 例如,我可以建立一個使用者帳戶,然後為其授與本機檔案系統上 /data 目錄的存取權。 該使用者帳戶是本機帳戶,如同所有獲授與該目錄存取權的其他帳戶一樣。 我也可以使用群組指派來控制存取權。 使用者和群組授權的組合可為使用者提供對檔案或資料夾的「有效」權限。
如果您查看 ls -al
目錄命令的一般輸出,可能會看到下列內容:
drwxr-xr-x 4 root root 4096 Dec 31 19:43.
drwxr-xr-x 13 root root 4096 Dec 11 05:53 ..
drwxr-xr-x 6 root root 4096 Dec 31 19:43 microsoft
drwxr-xr-x 8 root root 4096 Dec 31 19:43 omi
-rw-r--r-- 1 root root 0 Jan 21 15:10 test.txt
drwxr-xr-x
字元代表使用者和群組對檔案或目錄所擁有的授權存取層級。 d
指出該項目是目錄 (如果第一個值是 -
,則該項目為檔案項目)。其餘的字元則代表讀取 (r)、寫入 (w) 及執行 (x) 的權限群組授權。 前三個值指出檔案或目錄的「擁有者」。 接下來的三個值指出指派給檔案或目錄的群組權限。 最後三個值則指出允許系統上所有其他使用者使用的權限。
以下是範例:
-rw-r--r-- 1 root root 0 Jan 21 15:10 test.txt
-
指出此資源是檔案。rw-
指出擁有者具有讀取與寫入權限。r--
指出指派的群組僅具有讀取權限。r--
指出其餘的使用者僅具有讀取權限。- 另請注意,擁有使用者與指派的群組會透過兩個
root
資料行來表示。
本機電腦上已驗證的使用者會由 UID 與主要和補充的 GID 來表示。 那些值是電腦的本機值。 如果您有五部或甚至 50 部電腦,會發生什麼事? 您必須在每一部電腦上複寫 UID 與 GID 指派。 使用者管理的複雜度層級會增加,意外將檔案或資料夾存取權授與錯誤的使用者的情況也是。
透過 NFS 進行遠端檔案存取
如果您以單一使用者/群組指派的形式執行一切,則本機 UID 與 GID 指派均可正常運作。 如果多個專案關係人正在取用您執行的 HPC 叢集,而且每個專案關係人都有敏感性資料和資料的多個取用者,該怎麼辦?
在檔案伺服器或 NAS 環境中尋找資料,可讓您從遠端存取資料。 這種方法有助於降低本機磁碟成本、確保所有使用者都能使用最新資料,並減少整體的使用者和群組管理。
如果您集中尋找檔案,則可能需要包含使用者和群組設定的「目錄服務」。 目錄服務 (例如,Active Directory 或輕量型目錄存取通訊協定 (LDAP)) 可讓您建立所有遠端系統接著都可使用的使用者/群組對應。 您可以設定遠端電腦與您的 NAS 環境作為目錄服務的用戶端。 您也可以使用 Windows 使用者帳戶與特定 UID 和 GID 組合之間的 Active Directory 對應。
從遠端存取檔案的一般方法是使用網路檔案系統 (例如 NFS 或 SMB) 或平行檔案系統 (例如 Lustre)。 這些通訊協定會定義用來存取資料的用戶端與伺服器 API。 我們已在「檔案系統效能考量」單元中討論過 NFS 作業。 我們將在下一個單元詳細討論 NFS 的用法。
注意
當您使用 NFS 時,不需要目錄服務。 但若您未使用,則當您有大量使用者與系統時,UID 與 GID 管理仍很困難。
主目錄
假設有多位研究人員正在使用您的 HPC 環境,但他們的獨特資料必須個別保存。 假設那些研究人員會不斷地修改並新增至自己的資料。 為研究人員提供他們自己的主目錄,是區分其資料的有效方式。
研究人員會處理主目錄中的權限,讓他們可視需要共同作業。
在此環境中,主要挑戰之一是儲存空間。 假設您有 500 TB 的 NAS 環境。 什麼會完全阻止一位研究人員使用它?
您可以將「配額」指派給個別目錄。 配額會反映允許的最大資料量。 達到配額之後,它可以拒絕進一步的資料,或警告系統管理員,表示研究人員已超過限制。 例如,若您有 NAS 系統,就可將配額指派給每位研究人員。 而且,如果您隔離每位研究人員對主目錄的存取權,就可輕鬆地設定及監視其使用方式。