存取金鑰(AccessKey)是您調用阿里雲API時用於完成身分識別驗證的憑證,AccessKey泄露會對該帳號下所有資源的安全帶來威脅,產生非預期的費用以及惡意勒索等,嚴重情況下甚至可能給阿里雲或其他使用者帶來危害。本文為您介紹疑似泄露的AccessKey的處理方案,避免AccessKey泄露造成更大範圍的身份憑證冒用風險。
阿里雲安全措施
阿里雲一直致力於提升雲端服務的安全性,並盡最大努力支援您更好地保護您的賬戶及資產安全。當阿里雲根據外部線索,掌握到您的AccessKey已經被公開,阿里雲將通過您預留的連絡方式及時通知您。同時,為保障您的業務及資料安全,阿里雲將對該AccessKey進行限制性保護,禁止該AccessKey調用部分雲產品的高危許可權API,詳情請參見AccessKey限制性保護說明。
請您務必及時關注簡訊、郵箱、站內訊息等渠道的通知,並結合業務實際需求進行及時處置,同時關注您帳號下的雲資源異動,以免影響業務的正常運行。
阿里雲無法也不可能掌握您全部AccessKey的使用安全情況。根據安全責任共擔模型,雲上的安全由您和阿里雲共同分擔。其中AccessKey屬於雲客戶的帳號和身份訪問憑證,相關安全責任仍需要由您負責承擔,請您務必關注。
AccessKey泄露導致RAM使用者無法登入或提示帳號被凍結怎麼辦?
當阿里雲安全系統檢測到AccessKey存在泄露風險後,會自動觸發保護機制,限制關聯RAM使用者登入控制台。您可能會遇到Authentication.Block.AccountFrozen、"當前帳號不允許登入"等報錯資訊。
處理方法如下:
-
使用阿里雲帳號(主帳號)登入RAM控制台,立即禁用或刪除泄露的AccessKey,然後建立新的AccessKey完成輪轉。僅禁用AccessKey可能不足以釋放保留,必須完成刪除或輪轉操作。
-
完成AccessKey處置後,若RAM使用者仍無法登入,請提交工單申請解除安全風控限制。
阿里雲帳號(主帳號)AccessKey疑似泄露手動處理措施
-
若確認AccessKey不在使用中,請訪問AccessKey管理頁面,直接禁用和刪除AccessKey。
-
若確認AccessKey在使用中,請訪問AccessKey管理頁面,輪轉AccessKey。
您可以先建立一個新的AccessKey,妥善保管AccessKey Secret。將原AccessKey替換為新的AccessKey,驗證正常運行後,禁用和刪除AccessKey。
RAM使用者AccessKey疑似泄露手動處理措施
-
若確認AccessKey不在使用中,訪問RAM控制台,直接禁用和刪除RAM使用者的AccessKey。具體操作,請參見禁用RAM使用者的AccessKey、刪除RAM使用者的AccessKey。
-
若確認AccessKey在使用中且可以直接輪轉,請儘快輪轉。
您可以建立新的AccessKey,妥善保管AccessKey Secret。將原AccessKey替換為新的AccessKey,驗證正常運行後,禁用和刪除舊的AccessKey。具體操作,請參見輪轉RAM使用者的AccessKey。
-
若確認AccessKey在使用中且短期內無法順利輪轉,為降低被盜用的影響,您可以按照下圖所示步驟進行處置。完成後務必儘快輪轉。
步驟一:縮小AccessKey許可權
請先明確業務情境,在不影響當前業務啟動並執行前提下,儘快縮小疑似泄露的AccessKey許可權,限制高風險許可權,降低業務和資費受損的風險。在AccessKey禁用和刪除之前請不要解除該策略(限制高風險許可權)的授權。
建議限制的高風險許可權,例如:禁止該RAM使用者在存取控制(RAM)中建立新的RAM使用者及授權,禁止ECS、RDS、OSS、SLS資源的釋放,禁止傳送簡訊等。
以下提供一個禁用高風險許可權的自訂權限原則樣本,請您充分評估影響,根據業務情況設定。
{ "Version": "1", "Statement": [ { "Effect": "Deny", "Action": [ "ram:AddUserToGroup", "ram:AttachPolicyToGroup", "ram:AttachPolicyToRole", "ram:AttachPolicyToUser", "ram:ChangePassword", "ram:CreateAccessKey", "ram:CreateLoginProfile", "ram:CreatePolicyVersion", "ram:CreateRole", "ram:CreateUser", "ram:DetachPolicyFromUser", "ram:PassRole", "ram:SetDefaultPolicyVersion", "ram:UpdateAccessKey", "ram:SetPasswordPolicy", "ram:UpdateRole", "ram:UpdateLoginProfile", "ram:UpdateUser" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "ecs:DeleteInstance", "ecs:DeleteInstances", "ecs:DeregisterManagedInstance", "ecs:ReleaseDedicatedHost" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "rds:DeleteAccount", "rds:DeleteDatabase", "rds:DeleteDBInstance", "rds:DestroyDBInstance" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "oss:DeleteBucket", "oss:DeleteObject", "oss:PutBucketAcl", "oss:PutBucketPolicy" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "log:DeleteLogStore", "log:DeleteProject", "log:PutProjectPolicy", "log:DeleteProjectPolicy" ], "Resource": "*" }, { "Effect": "Deny", "Action": [ "dysms:CreateProductNew", "dysms:CreateSmsTemplateNew", "dysms:AddSmsTemplate", "dysms:SendSms", "dysms:SendBatchSms" ], "Resource": "*" } ] }具體操作,請參見建立自訂權限原則、管理RAM使用者的許可權。
建議您明確AccessKey所需要的業務許可權,將不需要的許可權全部移除。
步驟二:開啟RAM使用者的MFA
按照最佳實務,建議您阿里雲帳號(主帳號)下所有用於控制台訪問的RAM使用者開啟多因素認證(MFA)。
-
設定主帳號下的RAM使用者登入控制台必須開啟MFA。
具體操作,請參見管理RAM使用者登入設定。
-
為使用者綁定MFA裝置。
具體操作,請參見RAM使用者自行綁定MFA裝置。
步驟三:檢查是否存在AccessKey異常操作
檢查AccessKey是否存在異常操作行為,以及排查是否有其他疑似泄露的身份。重點關注異常的訪問IP、非業務需要的資源建立或刪除操作等。
泄露期間需重點排查的危險操作包括:
身份與許可權變更:建立RAM使用者(
CreateUser)、建立AccessKey(CreateAccessKey)、附加權限原則(AttachPolicyToUser)、建立角色(CreateRole)、開通控制台登入(CreateLoginProfile)等。CreateLoginProfile、AttachPolicyToUser、CreateUser等事件通常意味著攻擊者正在建立後門帳號或提權,需重點核查調用源IP及UserAgent。資源刪除與釋放:刪除ECS執行個體(
DeleteInstance)、刪除RDS執行個體(DeleteDBInstance)、刪除OSS儲存空間(DeleteBucket)等。資料外泄操作:修改OSS儲存空間存取權限(
PutBucketAcl)、修改OSS儲存空間策略(PutBucketPolicy)等。異常調用行為:短時間內大量發起API請求、從非常用IP地址或地區發起操作、非工作時間段的大量操作等。
檢查方式:在RAM控制台尋找RAM使用者的AccessKey列表,在列表中查看操作記錄,或在Action Trail控制台的AccessKey 審計頁面直接輸入AccessKey ID查詢操作記錄。
除Action Trail外,您還可以登入Security Center控制台查看AccessKey泄露警示詳情,擷取被惡意建立的具體RAM使用者名稱、異常調用IP等資訊。
通過Action Trail的AccessKey審計功能,您可以查看指定AccessKey在最近90天內的所有API調用記錄,包括調用時間、操作名稱、源IP地址和訪問的雲端服務等資訊。具體操作,請參見使用Action Trail監控AccessKey的使用。
說明未接入Action Trail的資料類動作記錄,如OSS、SLS等,需要使用各雲產品的日誌功能查詢。
您可以通過安全郵箱、站內信通知確認具體泄露的AccessKey ID。若通知中僅包含一個AccessKey且無其他警示,則通常僅該AccessKey存在泄露。
進一步排查除了已知存在泄露風險的AccessKey之外,是否還有其他RAM使用者和AccessKey存在異常操作行為。若發現存在異常行為,與相關人員確認操作是否由本人執行,若存在疑似泄露風險,建議按以下方式處理:
-
RAM使用者如果需要繼續使用,建議您立即修改RAM使用者密碼並開啟多因素認證(MFA)。
-
RAM使用者並非正常建立的,或確認為閑置使用者不需要繼續使用的,可進行刪除。RAM使用者刪除後會進入資源回收筒,觀察業務是否受到影響,如有影響該RAM使用者可快速恢複。
-
AccessKey異常操作,參照上文所述方法進行許可權限制,然後進行輪轉。
步驟四:檢查是否存在異常費用
在費用與成本檢查是否存在異常的費用產生,結合上一步結果,針對性採取產品的防護措施。
-
僅刪除惡意建立的RAM使用者不足以消除泄露風險。核心風險在於阿里雲帳號(主帳號)或高許可權RAM使用者的AccessKey已泄露,攻擊者可利用該AccessKey持續建立新使用者或提權。您必須執行AccessKey輪轉(建立新AccessKey替換舊AccessKey,並禁用和刪除舊AccessKey),同時排查AccessKey泄露途徑(如代碼、設定檔、伺服器安全等),否則風險將持續存在。
為什麼AccessKey儲存在私人倉庫、Nacos或離線資料庫中仍被檢測為泄露?
即使您認為AccessKey已安全儲存,仍可能通過以下常見途徑被檢測或竊取:
-
代碼倉庫:私人倉庫若曾公開、被Fork或共同作業者上傳至其他位置,AccessKey仍可被掃描服務檢測到。
-
配置中心(如Nacos):若未做許可權控制、存在漏洞或伺服器被入侵,明文儲存的AccessKey可能被竊取。
-
離線儲存:若讀取AccessKey的應用或指令碼曾連網調用API,密鑰可能在傳輸過程中被截獲或被日誌記錄。
-
應用漏洞:RCE(遠程代碼執行)或任意檔案讀取漏洞可導致伺服器內設定檔中的AccessKey被竊取。
防範建議:
-
使用Credentials工具管理認證,避免寫入程式碼AccessKey。
-
配置AccessKey的網路訪問限制(IP白名單)。
-
避免將AccessKey直接寫入原始碼或設定檔。
長期的AccessKey防泄露方案
發現非本帳號的AccessKey泄露,能否申請緊急禁用?
由於隱私保護及許可權隔離,阿里雲無法直接根據泄露的AccessKey禁用非當前登入帳號下的密鑰。建議按以下方式處理:
-
若知曉AccessKey歸屬帳號,應聯絡該帳號持有人自行處理。
-
若擁有該AccessKey對應帳號的許可權,可通過
DeleteAccessKeyAPI或RAM控制台自行刪除。 -
跨帳號或非己方帳號的泄露AccessKey,需通過法律或安全合規渠道協調處理。