CPFS 通用版支援服務端加密和傳輸加密,全鏈路保障您的資料安全。
-
服務端加密:保護靜態儲存的資料,防止物理磁碟丟失或被盜取導致的資料泄露。
-
傳輸加密:保護網路傳輸中的資料,防止資料在傳輸過程中被竊聽或篡改。
工作原理
-
服務端加密
採用業界標準的信封加密機制,通過阿里雲Key Management Service (KMS) 實現。系統會為每個檔案系統產生一個唯一的資料加密金鑰(DEK),並使用AES-256演算法加密您的資料。該DEK自身則由您在KMS中指定的使用者主要金鑰(CMK)加密保護。此過程對使用者透明,在保障資料安全的同時,通過DEK緩衝機制維持了較高的讀寫效能。
-
傳輸加密
基於開源軟體Stunnel實現端到端的資料安全傳輸。掛載檔案系統時,CPFS用戶端工具(
aliyun-alinas-utils)在ECS執行個體上啟動Stunnel代理進程。該進程將所有NFS流量封裝在TLS加密隧道中進行傳輸,有效防止資料在網路中被竊聽或篡改。
選擇加密方案
對於最高安全等級的業務,建議同時啟用服務端加密和傳輸加密,實現全鏈路資料保護。
|
對比維度 |
服務端加密 |
傳輸加密 |
|
核心價值 |
保護待用資料安全,防止物理介質泄露。 |
保護傳輸中資料安全,防止網路竊聽。 |
|
適用情境 |
|
|
|
效能影響 |
IOPS和輸送量可能略有下降,CPU開銷少量增加。 |
有約10%的效能損耗(訪問延遲增加10%,IOPS下降10%)。 對於吞吐密集型應用,每個掛載點的Stunnel進程在極端情況下可能佔用一整個CPU核心。建議根據業務負載預留足夠的CPU資源。 |
|
成本 |
|
免費 |
|
管理複雜度 |
建立時一次性配置。 使用者管理的密鑰若被誤刪,資料將永久丟失且無法恢複。 |
需要安裝和維護用戶端,並關注認證有效期間。 用戶端認證到期將導致檔案系統停止回應。 |
佈建服務端加密
服務端加密僅支援在建立檔案系統時配置。建立完成後,加密功能不可關閉,綁定的密鑰不可更改。開啟加密會對效能產生輕微影響,IOPS和輸送量可能略有下降。
步驟一:選擇密鑰管理方式
根據您的安全合規需求,選擇合適的密鑰管理方式:
-
託管密鑰:由CPFS服務代您建立和管理密鑰,您無需關心密鑰的生命週期,僅擁有審計許可權。此方式免費且管理簡單,適用於通用安全情境。
-
使用者管理密鑰(KMS):使用您在KMS中管理的金鑰組檔案系統進行加密,您擁有密鑰完整生命週期系統管理權限(建立、啟用、禁用、輪轉、刪除),適用於嚴格合規要求或需自主掌控密鑰的情境。支援兩種密鑰來源:
-
KMS建立的密鑰:在KMS控制台建立使用者主要金鑰(CMK)。
-
內建密鑰(BYOK):將外部產生的密鑰匯入KMS使用。
如選擇使用者管理密鑰,需提前在Key Management Service控制台建立或匯入使用者主要金鑰(CMK)。
-
步驟二:建立加密的檔案系統
-
登入CPFS控制台,進入建立CPFS檔案系統頁面。
-
在加密類型配置項,選擇託管密鑰或使用者管理密鑰(KMS)。
-
若選擇使用者管理密鑰(KMS),請從密鑰ID下拉式清單中選擇一個您已建立的自訂密鑰。
首次使用時,系統會引導您建立服務關聯角色,以授權CPFS訪問您的KMS資源。
-
完成其他配置項,然後建立檔案系統。
步驟三:驗證加密配置
建立完成後,在檔案系統列表中查看加密列狀態,確認加密功能已啟用。
此時,所有寫入該檔案系統的資料都將在儲存時被自動加密。
配置傳輸加密
傳輸加密通過在掛載時添加特定參數實現,用於保護NFS流量在網路傳輸中的安全。
前提條件
-
目標ECS執行個體已配置公網或綁定Elastic IP Address。
步驟一:安裝CPFS-NFS用戶端
-
登入待掛載CPFS檔案系統的Elastic Compute Service。串連方式,請參見選擇ECS遠端連線方式。
-
下載並安裝CPFS-NFS用戶端。
Alibaba Cloud Linux
-
下載CPFS-NFS用戶端。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.al.noarch.rpm -
安裝CPFS-NFS用戶端。
sudo yum install aliyun-alinas-utils-*.rpm
CentOS
-
下載CPFS-NFS用戶端。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.el.noarch.rpm -
安裝CPFS-NFS用戶端。
sudo yum install aliyun-alinas-utils-*.rpm
Ubuntu
-
下載CPFS-NFS用戶端。
sudo wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.deb -O /tmp/aliyun-alinas-utils-latest.deb -
安裝CPFS-NFS用戶端。
sudo apt-get update sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
Debian
-
下載CPFS-NFS用戶端。
sudo wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.deb -O /tmp/aliyun-alinas-utils-latest.deb -
安裝CPFS-NFS用戶端。
sudo apt-get update sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
SUSE
-
下載CPFS-NFS用戶端。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.lp15.x86_64.rpm -
安裝CPFS-NFS用戶端。
sudo zypper --no-gpg-checks install -y aliyun-alinas-utils-*.rpm
-
-
檢查CPFS-NFS用戶端安裝結果。
which mount.cpfs-nfs成功返回樣本如下:
/usr/sbin/mount.cpfs-nfs
步驟二:啟用傳輸加密掛載
開啟傳輸加密功能時,如果您的目標ECS執行個體上對應目錄(例如/mnt)已掛載NFS協議檔案系統,請先卸載NFS協議檔案系統,再根據本文重新掛載NFS協議檔案系統。
在標準的掛載命令中,添加 -o tls 參數即可啟用傳輸加密。掛載時,CPFS用戶端工具會自動將掛載點映射寫入/etc/hosts檔案,卸載時會刪除相應映射。
# 樣本:啟用傳輸加密掛載
sudo mount -t cpfs-nfs -o tls,vers=3,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.cpfs.aliyuncs.com:/share/path /mnt
-
-o tls:必需參數,啟用傳輸加密。 -
vers=3:使用NFSv3協議,提供更好的相容性。 -
rsize=1048576,wsize=1048576:設定1MB的讀寫塊大小,最佳化傳輸效能。 -
hard:硬掛載模式,確保資料一致性。
如需瞭解更多掛載參數,請參見CPFS-NFS用戶端掛載檔案系統(推薦)。
步驟三:驗證加密生效
掛載成功後,您可以通過檢查Stunnel進程和網路連接來驗證加密是否已生效。
-
檢查
Stunnel進程:確認Stunnel代理進程已在運行。ps aux | grep stunnel -
檢查網路連接:確認Stunnel已建立到CPFS服務端的加密串連。
netstat -anp | grep stunnel預期會看到
stunnel進程與CPFS服務端的12049連接埠建立了串連。
驗證通過後,您對掛載目錄的所有讀寫操作都將通過加密隧道進行。
配額與限制
-
服務端加密限制
-
建立時配置:必須在建立檔案系統時配置,建立後無法開啟、關閉或更改。
-
演算法限制:僅支援AES-256演算法,不支援SM4等其他演算法。
-
-
傳輸加密限制
-
檔案系統支援:僅支援CPFS通用版NFS協議檔案系統。
-
網路連接埠佔用:Stunnel進程預設需要使用本地
12049連接埠,請確保該連接埠未被業務佔用。您可以執行
ss -ant | grep -w 12049命令判斷目標連接埠是否被佔用。如果返回為空白,則表示目標連接埠未被佔用。如果連接埠被佔用,可通過修改設定檔更換連接埠。 -
本地IP佔用:每個啟用了傳輸加密的掛載點會按順序佔用
127.0.1.1~127.0.255.254範圍內的一個IP地址,卸載後釋放。您可以通過cat /etc/hosts查看當前佔用情況。 -
掛載模式互斥:不支援在同一個用戶端上,對同一個檔案系統掛載點同時使用加密(TLS)和非加密模式進行掛載。如需切換,必須先卸載原有的掛載點。
-
作業系統支援:僅支援以下64位作業系統版本。
作業系統類型
作業系統版本
Alibaba Cloud Linux
-
Alibaba Cloud Linux 3.2104 64位
-
Alibaba Cloud Linux 2.1903 64位
CentOS
-
CentOS 8.x 64位
-
CentOS 7.x 64位
Ubuntu
-
Ubuntu 20.04 64位
-
Ubuntu 18.04 64位
-
Ubuntu 16.04 64位
Debian
-
Debian 10.x 64位
-
Debian 9.x 64位
-
Debian 8.x 64位
SUSE
-
SUSE Linux Enterprise Server 15 64位
-
-
故障與日誌排查
傳輸加密相關的用戶端日誌位於/var/log/aliyun/alinas/目錄。通過修改/etc/aliyun/alinas/alinas-utils.conf檔案可調整日誌配置:
|
參數 |
說明 |
預設值 |
|
|
用戶端工具的記錄層級。 |
INFO |
|
|
單個記錄檔最大容量 |
1048576(1MB) |
|
|
記錄檔最大保留數量 |
10 |
|
|
Stunnel調試日誌開關,開啟後可輸出更詳細的TLS握手資訊。 |
false |
|
|
是否檢查服務端認證的網域名稱。生產環境建議設為 |
false |
|
|
是否檢查服務端認證的有效期間和頒發機構。生產環境建議設為 |
false |
修改配置後執行以下命令重啟服務:
sudo service aliyun-alinas-mount-watchdog restart
應用於生產環境
-
密鑰管理風險(服務端加密)
如果您使用的是使用者管理密鑰,請務必制定嚴格的密鑰管理流程。一旦密鑰被禁用或刪除,加密的檔案系統將無法讀寫任何資料,且資料無法恢複。建議開啟 KMS 的密鑰刪除保護功能。 -
認證管理(傳輸加密)
CPFS用戶端傳輸加密功能依賴第三方認證,第三方認證需要定期更換,CPFS會提前一個月通過郵件、站內信發出通知,請您關注資訊並及時更新CPFS用戶端工具
aliyun-alinas-utils版本,未更新CPFS用戶端工具將導致使用傳輸加密方式掛載的CPFS檔案系統在認證到期後停止回應。
常見問題
Q: 服務端加密的密鑰被禁用或刪除後,資料還能訪問嗎?
不能。 如果您使用的是“使用者管理密鑰”,一旦密鑰被禁用或刪除,加密的檔案系統將無法讀寫任何資料。請謹慎操作。
Q: 檔案系統開啟伺服器端加密且為靜態加密類型,有效儲存容量是否會縮小?
不會。AES屬於區塊編碼器,遵循自動補位機制,靜態加密自動補位的資料不計算在檔案系統執行個體的有效儲存容量中。
Q:服務端加密支援SM4演算法嗎?
不支援。CPFS 伺服器端加密金鑰採用行業標準AES-256密碼編譯演算法,保護檔案系統待用資料,並通過信封加密機制防止未經授權的資料訪問。伺服器端加密金鑰依託於KMS服務產生和管理。KMS服務能最大程度保障密鑰的保密性、完整性和可用性。更多加密資訊,請參見使用KMS信封加密在本地加密和解密資料。
Q:使用傳輸加密方式掛載時報錯:The mountpoint <mountpoint> is already mounted with tls/non-tls, mixing tls and non-tls is not supported in this version。
報錯原因:同一掛載地址不能同時支援傳輸加密(TLS)和非傳輸加密(非TLS)兩種模式。當用戶端檢測到混合掛載操作時,會報錯並終止掛載。
解決方案:使用umount命令卸載當前掛載點,在TLS和非TLS中選擇一種,重新執行掛載命令。
Q:使用傳輸加密方式掛載時報錯:Cannot mount with tls/non-tls now, please wait <sec> seconds for the unmount to complete。
報錯原因:在傳輸加密模式和非傳輸加密模式之間切換時,系統需要完成卸載緩衝期才能重新掛載。如果切換間隔時間過短,會觸發此錯誤。
解決方案:
-
根據錯誤提示等待指定的秒數,等待時間結束後,重新執行掛載命令。
-
還可通過配置
unmount_grace_period_sec參數調整卸載緩衝期時間長度。具體配置方法請參見CPFS用戶端參數配置詳情。