執行個體RAM角色和憑證 Ram role and AccessKey

Alibaba Cloud環境中每個服務在啟用時均會預設帶入predifined role以讓該服務功能可被完整的使用,但predefined role多半具有上千個不同的權限,而實際使用情境很可能只用到其中的數十個不等的權限,建議可依照每個使用服務情境來做細緻化的權限設定,盡可能減少使用predifined roles來做權限配置。

常見的問題發生於開發人員為圖操作方便,將AccessKey寫入程式/api呼叫中,甚至將程式上傳至公開的git管理平台上,造成這些重要的資訊以明碼的方式暴露在網路上,任何有心人士均可在提取帳密後對公司的環境進行操作、甚至是提權。

 

切記:

  1. 妥善保管AccessKey。
  2. 勿將AccessKey寫於程式內,建議以檔案呼叫的方式撰寫,並且勿將含有AccessKey的程式碼上傳至git中。

 

保護服務帳戶及服務帳戶金鑰 Secure a ram role and AccessKey

當服務帳戶(Ram role)建立時可使用金鑰(Key)進行帳戶存取保護,以方便開發人員存取 Alibaba Cloud 環境資源。然而多數情境為開發人員為圖方便,將服務帳戶所產生的金鑰寫入程式碼中,並且將程式碼放置於版本管控平台上(Github, Gitlab…..),往往服務帳戶的權限多使用預設權限,也就是具有極大的權限可以針對雲端環境資源進行存取/編輯/刪除等操作,在未收斂權限且金鑰暴露的狀況下,任何不法人士很可能造成憑證洩漏(Credential leakage)、提權(Privilege escalation)、資訊洩漏(Information disclosure)、不可否認(Non-repudiation)等資安隱憂。

Alibaba Cloud在文件中建議在收斂服務帳戶的同時,勿在開發時將金鑰放置於程式碼中,以下有幾種方法可以強化使用服務帳戶的安全性:服務帳戶權限收斂、刪除不必要的服務帳戶以及第三方git環境檢測金鑰功能[1][2]。

 

除了上述的方法外,遵循良好的國際組織規範[3][4]更可對於所有DevOps行為進行檢視和稽核,更進一步強化開發流程安全性。

關於保護服務帳戶及服務帳戶金鑰請參考下方連結資訊。

  [1]Github secret scanning

  [2]Gitlab secret scanning

  [3]ISO27001-2013- A.10 密碼學 

  [4]ISO27001-2013- A.14 系統開發與維護

 

保護API金鑰 Secure API Key

使用API呼叫Alibaba Cloud 的服務前必須產生API 金鑰(key),API keys主要是針對Alibaba Cloud 的專案帳單以及配額為驗證目的。然而API金鑰在儲存或傳輸時應被妥善保護,若未妥善保護則可能導致您的帳號遭駭近一步產生無法預期的費用。因此在管理API金鑰時有以下建議之方式以保護金鑰[1]:

  1. 避免將API金鑰嵌入至程式碼中,且應避免上傳至任何版本控管平台當中。
  2. 針對API金鑰進行限制,例如哪些來源(ip,url,android,ios)可以存取
  3. 刪除已經未再使用的API金鑰以避免被揭露的風險。
  4. 定期更新API金鑰,並讓應用程式採用新的API金鑰。
  5. 配置針對使用API 金鑰的最小權限原則。

 

關於保護API金鑰請參考下方連結資訊。

  [1]Secure an API key