了解 Azure NetApp Files 中的 NAS 共用權限
Azure NetApp Files 提供數種方式來保護 NAS 資料。 該安全性的其中一個層面是權限。 在 NAS 中,權限可細分為兩個類別:
- 共用存取權限限制誰能掛接 NAS 磁碟區。 NFS 透過 IP 位址或主機名稱來控制共用存取權限。 SMB 則透過使用者和群組存取控制清單 (ACL) 來進行此控制。
- 檔案存取權限限制在掛接 NAS 磁碟區之後,使用者和群組可以執行的動作。 檔案存取權限會套用至個別檔案和資料夾。
Azure NetApp Files 權限依賴 NAS 標準,並且用熟悉的方法為系統管理員和使用者簡化保護 NAS 磁碟區安全性的流程。
注意
如果共用和檔案上列出衝突的權限,則會套用最嚴格的權限。 例如,如果使用者在共用層級具有唯讀存取權,並在檔案層級具有完全控制,則使用者會在所有層級得到讀取權限。
共用存取權限
在 NAS 環境中要保護的初始進入點是對共用的存取權限本身。 在大部分情況下,應該將存取限制為僅限需要共用存取權的使用者和群組。 使用共用存取權限,您可以鎖定甚至一開始可以掛接共用的人員。
由於限制最嚴格的權限會覆寫其他權限,而共用是磁碟區的主要進入點 (具有最少的存取控制),因此共用權限應該遵守漏斗邏輯,也就是共用允許的存取權限比基礎檔案和資料夾多。 漏斗邏輯會制定更精細且嚴格的控制。
NFS 匯出原則
Azure NetApp Files 中的磁碟區會藉由匯出可供用戶端或一組用戶端存取的路徑,以共用給 NFS 用戶端。 NFSv3 和 NFSv4.x 都使用相同的方法來限制對 Azure NetApp Files 中 NFS 共用的存取:匯出原則。
匯出原則是個容器,用於一組依所需存取順序列出的存取規則。 這些規則會藉由使用用戶端 IP 位址或子網路來控制對 NFS 共用的存取。 如果用戶端未列在匯出原則規則中 (允許或明確拒絕存取),則該用戶端無法掛接 NFS 匯出。 由於規則會依序讀取,如果對用戶端套用了限制較嚴格的原則規則 (例如,透過子網路),則會先讀取並套用。 系統會忽略後續允許更多存取的原則規則。 此圖顯示 IP 為 10.10.10.10 的用戶端取得磁碟區的唯讀存取權,因為子網路 0.0.0.0/0 (每個子網路中的每個用戶端) 會設定為唯讀,並在原則中先列出。
Azure NetApp Files 中可用的匯出原則規則選項
建立 Azure NetApp Files 磁碟區時,有數個選項可設定來控制對 NFS 磁碟區的存取。
- 索引:指定匯出原則規則的評估順序。 如果用戶端屬於原則中的多個規則,第一個適用的規則會套用至用戶端,並忽略後續規則。
- 允許的用戶端:指定套用規則的用戶端。 此值可以是用戶端 IP 位址、以逗號分隔的 IP 位址清單,或包含多個用戶端的子網路。 Azure NetApp Files 中不支援 hostname 和 netgroup 值。
- 存取:指定允許非根使用者存取的層級。 對於未啟用 Kerberos 的 NFS 磁碟區,選項包括:唯讀、讀取及寫入、無存取權。 對於已啟用 Kerberos 的磁碟區,選項包括:Kerberos 5、Kerberos 5i 或 Kerberos 5p。
- 根存取:指定在指定用戶端的 NFS 匯出中如何處理根使用者。 如果設定為 "On",則根使用者為 root。 如果設定為 "Off",則根使用者會壓縮為匿名使用者識別碼 65534。
- chown 模式:控制使用者可以對匯出執行變更所有權命令 (chown) 的內容。 如果設定為「限制」,則只有根使用者可以執行 chown。 如果設定為「不受限制」,任何有適當檔案/資料夾權限的使用者都可以執行 chown 命令。
Azure NetApp Files 中的預設原則規則
建立新的磁碟區時,會建立預設原則規則。 預設原則能避免建立不含原則規則的磁碟區,進而限制任何嘗試存取匯出的用戶端進行存取的情況。 如果沒有規則,則沒有存取權。
預設規則具有下列值:
- 索引 = 1
- 允許的用戶端 = 0.0.0.0/0 (所有用戶端都允許存取)
- 存取 = 讀取及寫入
- 根存取 = On
- Chown 模式 = 限制
這些值可以在磁碟區建立時或在建立磁碟區之後變更。
在 Azure NetApp Files 中啟用 NFS Kerberos 的匯出原則規則
NFS Kerberos 只能在 Azure NetApp Files 中使用 NFSv4.1 的磁碟區上啟用。 Kerberos 會根據使用中的 Kerberos 類型,為 NFS 掛接提供不同的加密模式,以提供額外的安全性。
啟用 Kerberos 時,匯出原則規則的值會變更以允許指定應該允許哪個 Kerberos 模式。 若要存取多個 Kerberos 安全性模式,可以在同一個規則中啟用。
這些安全性模式包括:
- Kerberos 5:只會加密初始驗證。
- Kerberos 5i:使用者驗證加上完整性檢查。
- Kerberos 5p:使用者驗證、完整性檢查和隱私權。 所有封包都會加密。
只有已啟用 Kerberos 功能的用戶端能夠存取匯出規則指定 Kerberos 的磁碟區;啟用 Kerberos 時,不允許 AUTH_SYS
存取。
根使用者壓縮
在某些情況下,您會想要限制對 Azure NetApp Files 磁碟區的根存取。 由於根使用者對於 NFS 磁碟區中的一切存取毫不受限,即使是使用模式位元或 ACL 明確拒絕根使用者的存取亦然,因此限制根存取的唯一方法是告訴 NFS 伺服器,特定用戶端的根使用者不再是根使用者。
在匯出原則規則中,選取 [根存取:off],將根使用者壓縮為非根使用者,匿名使用者識別碼為 65534。 這表示指定用戶端上的根使用者現在是使用者識別碼 65534 (在 NFS 用戶端上通常是 nfsnobody
),而且對於檔案和資料夾的存取權會根據為該使用者指定的 ACL/模式位位而定。 對於模式位元,存取權限通常屬於 Everyone 存取權限。 此外,從用戶端以根使用者身分寫入的檔案,如果受到根使用者壓縮規則影響,會以 nfsnobody:65534
使用者身分建立檔案和資料夾。 若要根使用者就是要以根使用者出現,請將 [根存取] 設定為 [On]。
若要深入了解管理匯出原則,請參閱設定 NFS 或雙重通訊協定磁碟區的匯出原則 (部分機器翻譯)。
匯出原則規則排序
匯出原則規則的順序會決定其套用方式。 清單中適用於 NFS 用戶端的第一個規則便是用於該用戶端的規則。 對匯出原則規則使用 CIDR 範圍/子網路時,該範圍內的 NFS 用戶端可能會因為包含該原則規則的範圍而收到不必要的存取權。
請考慮下列範例:
- 索引中的第一個規則會包含所有子網路中的所有用戶端,這是因為預設原則規則使用 0.0.0.0/0 做為 [允許的用戶端] 項目。 該規則允許對該 Azure NetApp Files NFSv3 磁碟區之所有用戶端的「讀取及寫入」存取權。
- 索引中的第二個規則明確列出 NFS 用戶端 10.10.10.10,並且設定為將存取權限制為「唯讀」,且沒有根存取 (根使用者受到壓縮)。
就目前情況來說,用戶端 10.10.10.10 會因為清單中的第一個規則而收到存取權。 永遠不會評估下一個規則以進行存取限制,因此即使需要「唯讀」,10.10.10.10 仍會得到「讀取及寫入」存取權。 根使用者也是根使用者,而不會被壓縮。
若要修正此問題並設定所需層級的存取權,可以將規則重新排序,把所需的用戶端存取規則放在任何子網路/CIDR 規則之上。 對於每個匯出原則規則,您可以拖曳規則或使用該列 ...
功能表裡的 [移動] 命令,在 Azure 入口網站中重新排序匯出原則規則。
注意
您只能使用 Azure NetApp Files CLI 或 REST API 來新增或移除匯出原則規則。
SMB 共用
SMB 共用可讓使用者在 Azure NetApp Files 中存取 SMB 或雙重通訊協定磁碟區。 SMB 共用的存取控制在 Azure NetApp Files 控制平面中受到限制,只能使用 SMB 安全性選項,例如存取型列舉和不可瀏覽共用功能。 這些安全性選項是在磁碟區建立期間,使用 [編輯磁碟區] 功能設定。
共用層級權限 ACL 是透過 Windows MMC 主控台來管理,而不是透過 Azure NetApp Files。
安全性相關共用屬性
Azure NetApp Files 提供多個共用屬性,以增強系統管理員的安全性。
存取型列舉
存取型列舉 是 Azure NetApp Files SMB 磁碟區功能,可將在 SMB 中列舉檔案和資料夾 (也就是列出內容) 的功能,限制為僅供允許存取該共用的使用者使用。 例如,如果使用者沒有存取權,無法讀取已啟用存取型列舉之共用中的檔案或資料夾,則檔案或資料夾不會顯示在目錄清單中。 在下列範例中,使用者 (smbuser
) 沒有存取權,無法讀取 Azure NetApp Files SMB 磁碟區中名為 ABE 的資料夾。 只有 contosoadmin
具有存取權。
在下列範例中,已停用存取型列舉,因此使用者可以存取 SMBVolume
的 ABE
目錄。
在下一個範例中,已啟用存取型列舉,因此不會向使用者顯示 SMBVolume
的 ABE
目錄。
權限也會延伸至個別檔案。 在下列範例中,已停用存取型列舉,且會對使用者顯示 ABE-file
。
在啟用存取型列舉的情況下,不會對使用者顯示 ABE-file
。
不可瀏覽共用
Azure NetApp Files 中的不可瀏覽共用功能,會藉由隱藏 Windows 檔案總管中的共用檢視,或在 "net view" 中列出共用時,限制用戶端無法瀏覽 SMB 共用。只有知道共用絕對路徑的終端使用者才能找到共用。
在下圖中,未針對 SMBVolume
啟用不可瀏覽共用屬性,因此磁碟區會顯示在檔案伺服器清單中 (使用 \\servername
)。
在 Azure NetApp Files 中,對 SMBVolume
啟用不可瀏覽共用時,檔案伺服器的相同檢視會排除 SMBVolume
。
在下圖中,共用 SMBVolume
已在 Azure NetApp Files 中啟用不可瀏覽共用功能。 啟用時,這是檔案伺服器最上層的檢視。
即使無法在清單中看到該磁碟區,如果使用者知道檔案路徑,仍然可存取。
SMB3 加密
SMB3 加密是 Azure NetApp Files SMB 磁碟區功能,可為 SMB 用戶端強制執行網路加密,以在 NAS 環境中提高安全性。 下圖顯示停用 SMB 加密時網路流量的螢幕擷取。 可以看見敏感性資訊,例如檔案名稱和檔案控制代碼。
啟用 SMB 加密時,封包會標示為加密,而且看不到任何敏感性資訊。 相反地,這會顯示為「加密的 SMB3 資料」。
SMB 共用 ACL
SMB 共用可以控制可掛接和存取共用的人員,以及控制 Active Directory 網域中使用者和群組的存取層級。 被評估的第一個權限層級是共用存取控制清單 (ACL)。
SMB 共用權限比檔案權限更基本:只會套用讀取、變更或完全控制。 檔案權限可以覆寫共用權限,共用權限也可以覆寫檔案權限;最嚴格的權限便是獲得遵守的權限。 例如,如果 Everyone 群組對共用具有完全控制 (此為預設行為),而特定使用者透過檔案層級 ACL 而擁有資料夾的唯讀存取權,則會對這些使用者套用讀取權限。 ACL 中未明確列出的任何其他使用者都具有完全控制
反過來說,如果共用權限設定為特定使用者為「讀取」,但檔案層級權限設定為該使用者具有完全控制,則會強制執行「讀取」存取權。
在雙通訊協定 NAS 環境中,SMB 共用 ACL 僅適用於 SMB 使用者。 NFS 用戶端會將匯出原則和規則用於共用存取規則。 因此,控制檔案和資料夾層級的權限會比共用層級 ACL 更理想,尤其是雙通訊協定 NAS 磁碟區。
若要了解如何設定 ACL,請參閱在 Azure NetApp Files 中管理 SMB 共用 ACL (部分機器翻譯)。