建議限制鏡像匯出、鏡像與快照集共用許可權,防止資料的意外泄露。
安全風險
鏡像的共用與匯出功能在提升開發與部署效率的同時,也帶來了資料安全挑戰。不當的許可權配置或疏忽的鏡像製作流程,可能導致核心代碼、環境配置乃至敏感性資料的有意或無意泄露。例如,內部員工可能利用匯出許可權複製生產環境的伺服器鏡像,從而擷取敏感資訊。此外,在鏡像製作過程中未能徹底清理測試資料、設定檔或臨時憑證,會導致這些資訊在鏡像的後續使用和共用中意外暴露,構成安全隱患:
待用資料快照: 鏡像和快照捕獲了雲端服務器在特定時間點的完整狀態。這不僅包括作業系統和應用程式檔案,還可能包含各類敏感性資料,例如:
身份憑證: SSH私密金鑰、API AccessKey、資料庫連接字串、應用的寫入程式碼密碼。
使用者資料: 企業核心代碼、資料庫資訊、使用者隱私等。
系統痕迹: Shell操作歷史 (.bash_history)、臨時檔案、各類應用的日誌與緩衝。
許可權擴散風險: 共用和匯出操作,本質上是將資料的存取權限從一個可控的內部環境,擴散到了一個更廣的、甚至不可控的範圍。一旦包含敏感資訊的鏡像被共用給錯誤的帳號,或被匯出到線下環境,將導致資料被濫用或被黑產利用。
最佳實務
鏡像建立
建立鏡像前,請務必登入執行個體檢查是否存在敏感資訊。若鏡像中存在SSH密鑰等登入資訊,即使建立執行個體時選擇重新綁定金鑰組或使用賬密方式登入,鏡像中已有的密鑰資訊也會被寫入執行個體中,即使用者使用鏡像建立執行個體後,原鏡像中的金鑰組、賬密在新的執行個體依然可以使用。
清理使用者密碼資訊:
Linux:檢查並清理 /etc/shadow 和 /etc/passwd 中的非必要使用者資訊。
Windows:運行系統準備工具 Sysprep 來通用化鏡像,此操作會重設電腦SID、清除目前使用者資訊並要求在下次啟動時建立新賬戶或重設管理員密碼。同時,應在本機使用者和組 (lusrmgr.msc) 中手動刪除所有非必要的本地賬戶。
刪除所有SSH密鑰:
Linux:刪除 /root/.ssh 和所有使用者家目錄 (/home/*/.ssh)下的密鑰檔案(特別是id_rsa和authorized_keys)。
Windows:刪除 C:\Users\Administrator\.ssh 和所有使用者家目錄 (C:\Users\*\\.ssh) 下的密鑰檔案。同時,檢查並清空認證管理員 (Credential Manager) 中的所有緩衝憑據。
清理Shell記錄:
Linux:執行 history -c 並刪除/root/.bash_history和所有使用者家目錄(/home/*/.bash_history)的 .bash_history 檔案。
Windows:執行 Clear-History 清除當前 PowerShell 會話歷史,並刪除所有使用者的 PowerShell 記錄檔案(通常位於 AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt)
清理臨時檔案與日誌:
Linux:清空 /tmp、/var/tmp 目錄,並對 /var/log 下的日誌進行審查和清理。
Windows:運行磁碟清理(cleanmgr.exe)工具清空系統臨時檔案、資源回收筒等。同時,使用 wevtutil cl <LogName> (例如 wevtutil cl System) 命令或在事件檢視器中,手動清除所有主要的 Windows 事件記錄(如應用程式、安全、系統日誌)。
移除寫入程式碼憑證: 檢查應用程式代碼和設定檔,確保沒有硬式編碼資料庫密碼、API密鑰等敏感資訊。
清理業務資料和應用緩衝: 清理Web伺服器、資料庫等應用中的業務資料和緩衝目錄。
合規能力
攔截:禁止鏡像匯出、鏡像和快照集共用
對於可信度較低的RAM(存取控制)使用者或使用者組,應明確禁止其對核心鏡像資產進行高危操作。通過配置“拒絕”(Deny)策略,強制性地阻止其共用和匯出鏡像。在組織或賬戶層面通過RAM Policy策略,主動攔截鏡像匯出、鏡像和快照集共用的行為。
針對企業使用者:
使用阿里雲主帳號登入資來源目錄控制台,單擊左側功能表列的管控策略,建立自訂權限原則,粘貼以下JSON內容。
禁止鏡像匯出、鏡像與快照集共用的操作。
{ "Version": "1", "Statement": [ { "Action": [ "ecs:ExportImage", "ecs:ModifyImageSharePermission" ], "Resource": "*", "Effect": "Deny" }, { "Action": [ "resourcesharing:CreateResourceShare", "resourcesharing:AssociateResourceShare" ], "Resource": "*", "Condition": { "StringEquals": { "resourcesharing:RequestedResourceType": [ "Snapshot", "Image" ] } }, "Effect": "Deny" } ] }在資來源目錄中選擇合適的節點繫結原則,策略將對目錄下的帳號產生攔截效果。
針對非企業使用者:
使用阿里雲主帳號登入RAM控制台,單擊左側功能表列的權限原則,建立一條與上述內容相同的自訂策略。
通過系統管理權限策略授權將該條權限原則授權給RAM使用者、RAM使用者組或RAM角色。