本頁面說明如何控管 Filestore 執行個體的存取權。
透過 NFSv4.1 通訊協定,您可以使用 Kerberos 保護 Filestore 執行個體的存取權。詳情請參閱「關於支援的通訊協定」。
或者,您也可以使用 Linux 選項控管 NFS 存取權,並使用身分與存取權管理 (IAM) 控管執行個體作業的存取權,例如建立、編輯、查看及刪除執行個體。以下指南會逐步說明如何完成這些工作。
檔案共用匯出設定
系統會為 Filestore 檔案共用區指派下列預設 /etc/exports
設定:
- 允許連線至檔案共用區的用戶端清單,由您為 Filestore 執行個體選取的虛擬私有雲網路中的所有內部 IP 位址組成。內部 IP 位址可以是「子網路範圍」中列出的任何範圍。不過,如果您有使用非 RFC 1918 子網路範圍的用戶端,則必須使用以 IP 為基礎的存取控管機制,明確授予這些用戶端存取 Filestore 執行個體的權限。
- 使用
rw
選項,因此檔案共用區允許讀取和寫入作業。 - 採用使用者 ID 對應選項
no_root_squash
,因此在 Filestore 執行個體與用戶端中的所有使用者與群組 (包括 root 使用者) 都應相同。 - 其他所有選項都使用
/etc/exports
預設值。
基本級別執行個體
基本 SSD 和基本 HDD 執行個體會建立標示為 /config/google-prober
的匯出共用,用於支援內部探測程序,進而驗證存取權、耐用性或效能。共用內容會匯出至客戶清單,並使用與前一個部分相同的設定,讓只有執行個體 IP 位址可以存取。只有在執行個體上或由執行個體產生的探測器,才能存取分享內容,在執行個體以外的位置則無法存取。無論是否套用依據 IP 設定的存取權控管機制,執行個體都會匯出共用項目。使用者可以使用 showmount -e
指令查看匯出的共用內容。
依據 IP 設定的存取權控管機制
您可以使用 Google Cloud 控制台建立存取控制規則,或是在使用 gcloud CLI 建立執行個體時指定 JSON 設定檔,來變更這些匯出設定。詳情請參閱「設定 IP 存取權控管」。
您也可以在建立執行個體後,新增存取權控管規則或修改現有規則。詳情請參閱「編輯執行個體」。
檔案共用權限
當您建立 Filestore 執行個體時,這個執行個體的檔案共用區擁有預設 POSIX 檔案權限 rwxr-xr-x
。這些權限設定表示在 Filestore 執行個體上,只有在已連線用戶端中的 root 使用者才擁有檔案共用區的讀取和寫入權限。其他使用者則預設為僅擁有讀取權限。用戶端 root 使用者可以變更權限和擁有者。
設定檔案共用區的存取權
掛接檔案共用區時,您可以使用掛接選項和 /etc/fstab
設定,判斷檔案共用區是否可寫入,以及是否可以在檔案共用區上執行檔案。掛接檔案共用區後,您可以使用 chmod
和 setfacl
等標準 Linux 指令來設定檔案和檔案共用權限。只有基本層級支援 setfacl
。
設定一致的權限
強烈建議您為連線至相同 Filestore 執行個體的所有用戶端上每位使用者設定一致的權限,以防權限提升。如果檔案共用區已掛載至多個用戶端,且使用者在其中一個用戶端上具有 root 權限,但其他用戶端則沒有,則可能會發生以下權限提升情境:
- 使用者在具有 Root 存取權的用戶端上,為可執行檔案設定
setuid
屬性。 - 接著,使用者會將可執行檔案上傳至檔案共用區。
- 使用者會在至少具有讀取權限的任何用戶端上,以 root 身分執行上傳的檔案。
這是因為 setuid
位元可讓使用者使用檔案擁有者的權限執行檔案,在本例中為 root。
重疊權限
可用區、區域和企業執行個體現在支援重疊權限。
如果為重疊的 IP 位址子網路定義兩個不同的存取控制規則,系統會優先套用為較小子網路定義的規則。
舉例來說,如果 JSON 設定檔包含授予 IPv4 位址子網路 10.0.0.0/24
讀取和寫入權限的規則,以及授予 IPv4 位址子網路 10.0.0.0/28
唯讀權限的個別規則,Filestore 會先辨識並套用較小子網路的規則。然後將其他規則套用至定義 IP 位址子網路的其餘部分。在這個範例中,使用 IPv4 位址 10.0.0.20
的用戶端會獲得讀取和寫入權限,而使用 10.0.0.12
的用戶端則會獲得唯讀權限:
{
"--file-share":
{
"capacity": "2048",
"name": "my_vol",
"nfs-export-options": [
{
"access-mode": "READ_WRITE",
"ip-ranges": [
"10.0.0.0/24"
],
"squash-mode": "ROOT_SQUASH",
"anon_uid": 1003,
"anon_gid": 1003
},
{
"access-mode": "READ_ONLY",
"ip-ranges": [
"10.0.0.0/28"
],
"squash-mode": "NO_ROOT_SQUASH"
}
]
}
}
但須遵守下列限制:
系統不支援相同 IPv4 子網路的重疊權限,並會傳回錯誤。
基本 SSD 或基本 HDD 執行個體不支援重疊權限。