簡介: 咱們也常有據說例如AK被外部攻擊者惡意獲取,或者員工無意從github泄露的案例,最終致使安全事故或生產事故的發生。AK的應用場景極爲普遍,所以作好AK的管理和治理就尤其重要了。本文將經過兩種AK使用不安全的典型案例,進行分析和介紹。
對於企業上雲的典型場景,雲帳號管理員通常會給員工、應用程序或系統服務建立一個相應的用戶帳號。每一個帳號均可以有獨立的身份認證密鑰,俗稱AK (AccessKey),它用於阿里雲服務API的身份認證。既然是身份證實,證實你是某個雲帳號的合法擁有者,那麼一旦泄露後果着實嚴重。咱們也常有據說例如AK被外部攻擊者惡意獲取,或者員工無意從github泄露的案例,最終致使安全事故或生產事故的發生。AK的應用場景極爲普遍,所以作好AK的管理和治理就尤其重要了。本文將經過兩種AK使用不安全的典型案例,進行分析和介紹。git
典型案例重現github
2020年,某客戶忽然發現本身的一些項目的用戶APP上傳數據出現失敗,這個上傳數據功能使用了該雲廠商上的某存儲服務,客戶發起工單認爲雲廠商的存儲服務有故障。經排查發現該用戶的Region其餘業務方的生產活動正常,未出現明顯異常;遂懷疑網絡問題,建議客戶查詢網絡鏈接,此時客戶提交App端的錯誤日誌,日誌中顯示是訪問密鑰沒有找到,在雲客服的指導下,並未發現有相同ID的密鑰存在,而後在操做審計的記錄中,發現該訪問密鑰是被其本身內部作了刪除操做。安全
緊急處理網絡
影響session
影響顯而易見,對不少初創企業這樣的故障會輕則致使用戶體驗差,重則關鍵功能不可用,對企業留存客戶或者收入都會受到不一樣程度的影響。app
分析和總結工具
上述真實的案例不只帶給咱們巨大的警示,那麼針對訪問密鑰究竟在哪些環節進行規範操做?又應當經過什麼辦法進行管理控制呢?測試
1 、建立:訪問密鑰阿里雲
2 、配置:合適的權限編碼
3 、刪除:訪問密鑰
訪問密鑰的刪除是不可恢復的,因此刪除是具備必定風險的,只有在安全確認這把訪問密鑰沒有任何使用記錄後,才能刪除,標準的流程以下:
四、 泄露:密鑰輪轉
每一個RAM用戶最多能夠建立兩個訪問密鑰。若是您的訪問密鑰已經使用3個月以上,建議您及時輪換訪問密鑰,下降訪問密鑰被泄露的風險。
3 禁用原來的訪問密鑰。
4 驗證使用訪問密鑰的全部應用程序或系統是否正常運行。
5 刪除原來的訪問密鑰。
系統屬性
在系統屬性裏尋找環境憑證,若是定義了 alibabacloud.accessKeyId 和alibabacloud.accessKeyIdSecret 系統屬性且不爲空,程序將使用它們建立默認憑證。
環境憑證
在環境變量裏尋找環境憑證,若是定義了
ALIBABA_CLOUD_ACCESS_KEY_ID和
ALIBABA_CLOUD_ACCESS_KEY_SECRET環境變量且不爲空,程序將使用它們建立默認憑證。
配置文件
若是用戶主目錄存在默認文件
~/.alibabacloud/credentials (Windows 爲 C:UsersUSER_NAME.alibabacloudcredentials),程序會自動建立指定類型和名稱的憑證。默認文件能夠不存在,但解析錯誤會拋出異常。配置名小寫。不一樣的項目、工具之間能夠共用這個配置文件,由於不在項目以內,也不會被意外提交到版本控制。 能夠經過定義
ALIBABA_CLOUD_CREDENTIALS_FILE 環境變量修改默認文件的路徑。不配置則使用默認配置 default,也能夠設置環境變量 ALIBABA_CLOUD_PROFILE 使用配置。
[default] # 默認配置 enable = true # 啓用,沒有該選項默認不啓用 type = access_key # 認證方式爲 access_key access_key_id = foo # Key access_key_secret = bar # Secret [client1] # 命名爲 `client1` 的配置 type = ecs_ram_role # 認證方式爲 ecs_ram_role role_name = EcsRamRoleTest # Role Name [client2] # 命名爲 `client2` 的配置 enable = false # 不啓用 type = ram_role_arn # 認證方式爲 ram_role_arn region_id = cn-test # 獲取session用的region policy = test # 選填 指定權限 access_key_id = foo access_key_secret = bar role_arn = role_arn role_session_name = session_name # 選填 [client3] # 命名爲 `client3` 的配置 type = rsa_key_pair # 認證方式爲 rsa_key_pair public_key_id = publicKeyId # Public Key ID private_key_file = /your/pk.pem # Private Key 文件
六、 審計:按期分析訪問密鑰使用行爲
經過規範訪問密鑰生命週期的管理操做,能夠解決大部分因爲不當操做致使的安全故障,可是不少安全問題,是須要分析訪問密鑰的使用數據才能發現的。
雲廠商也有相似一些方案幫助客戶作檢測,好比阿里云云安全中心的AK泄露檢測。
這種分析主要是對密鑰自己的實際使用相關的數據,日誌等作分析,來看是否已經出現了異常。
廠商方案-操做審計
開啓操做日誌審計,並將其投遞至OSS和SLS長期保存和審計,將操做日誌存儲至OSS,異常狀況時能夠起到固證的做用;操做日誌投遞至SLS,幫助您在日誌數量大的時候也能實現高效檢索。
廠商方案-訪問日誌審計
除了雲產品的操做日誌外,還有大量的雲產品使用訪問日誌,這一部分也每每是數據訪問的主要部分,好比OSS的Bucket上數據的寫入,獲取,修改和刪除等。這部分日誌能夠直接經過阿里雲提供的日誌服務來作到收集,存儲,統計和分析等,您在各個雲產品控制檯開通日誌功能後,便可執行日誌服務相關操做。
本地方案-自建分析引擎
對一些操做日誌審計裏沒有記錄的產品的訪問日誌,也能夠經過雲產品提供日誌存儲功能把這些日誌記錄並下載下來,經過本身離線的計算,和定時比較,發現上述異常訪問記錄。
統計分析
能夠監控報警和分析的維度以下,能夠經過下面相關維度的平常監控,來觀測是否在各個維度上出現了非預期的訪問,若是出現就預示了訪問密鑰可能已經出現泄漏,須要重點關注了:
本文從訪問密鑰的生命週期管理進行了分析和介紹,但願對於您在雲上密鑰管理可以有所啓發和幫助。最後,附上AK使用錦囊:
禁止使用主帳號,子帳號來隔離好;
密碼一次要記好,
AK保密要記牢;
泄露先別亂陣腳,
先禁再刪不可少;
兩把AK分配好,
按期審計很重要;
究極安全無密鑰。
原文連接本文爲阿里雲原創內容,未經容許不得轉載