全部產品
Search
文件中心

Elastic Compute Service:避免使用自訂鏡像中的預設登入憑證

更新時間:Sep 10, 2025

建立Elastic Compute Service執行個體時,應使用獨立的、新建立的認證憑證(如SSH金鑰組),避免使用自訂鏡像中可能存在的預設登入憑證。

安全風險

當您使用自訂鏡像(公用鏡像中不會有預設密碼)建立新的ECS執行個體時,如果該鏡像包含預設的登入密碼或SSH密鑰,新執行個體便會“繼承”這些憑證。這些憑證通常是為了方便鏡像製作者或早期使用者測試而設定的,但它們構成了安全隱患:

  • 憑證泄露範圍不可控:自訂鏡像的來源多樣,其內建的預設密碼或密鑰可能已被分發給多個使用者,甚至可能在不經意間被發布到公用代碼倉庫或技術論壇中。攻擊者會持續掃描雲平台,用這些已知的公開憑證嘗試登入,一旦成功,即可完全控制您的伺服器。

  • 繞過安全防護:攻擊者一旦掌握了預設憑證,就相當於擁有了您伺服器的鑰匙,可以輕易繞過所有其他安全防護,直接登入系統。

最佳實務

  1. 建立自訂鏡像時,防止預設密碼或SSH密鑰泄漏。

    • 刪除所有使用者的密碼(passwd -d <username>)。

    • 確保 /root/.ssh/authorized_keys 和其他使用者的此檔案是空的。

    • 清除bash記錄 (history -c && history -w)。

  2. 根據自訂鏡像建立執行個體時,避免使用鏡像預設密碼。

    該操作會重新設定root或ecs-user使用者的登入憑證(密碼或金鑰組),並不會清除其他使用者的登入憑證,請參考修複操作進行清除。

    Linux執行個體

    根據自訂鏡像建立執行個體時,避免使用鏡像預設密碼,建議使用金鑰組。

    控制台

    使用自訂鏡像建立執行個體時,避免使用鏡像預設密碼,推薦使用金鑰組

    API

    通過RunInstances或者CreateInstance介面建立執行個體時,設定 PasswordInherit 參數為false

    Windows執行個體

    使用自訂鏡像建立執行個體時,避免使用鏡像預設密碼,推薦設定高強度自訂密碼(不支援通行金鑰對)。

合規能力

檢查:檢查是否存在不符合要求的執行個體

使用Workbench登入Linux執行個體進行檢查。

  • 檢查可疑使用者賬戶:查看/etc/passwd檔案,確認是否存在非您建立或非系統預設的未知使用者。

    cat /etc/passwd
  • 檢查SSH授權公開金鑰:檢查系統關鍵位置的authorized_keys檔案,確認這些檔案定義了哪些公開金鑰可以免密登入。

    # 檢查root使用者的授權公開金鑰
    cat /root/.ssh/authorized_keys
    
    # 檢查其他使用者(例如 'admin')的授權公開金鑰
    cat /home/admin/.ssh/authorized_keys

    仔細審查檔案中的公開金鑰,確保它們都與您當前使用的私密金鑰相對應。任何可疑的、不認識的公開金鑰都應立即移除。

攔截:預防使用鏡像預設密碼建立執行個體

在組織或賬戶層面通過RAM Policy策略,主動攔截使用鏡像預設密碼建立執行個體的行為。

  • 針對企業使用者:

    1. 使用阿里雲主帳號登入資來源目錄控制台,單擊左側功能表列的管控策略建立自訂權限原則,粘貼以下JSON內容。

      建立執行個體、更換系統硬碟等操作時禁止從鏡像中繼承預設密碼。
      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:RunInstances",
                      "ecs:CreateInstance",
                      "ecs:ReplaceSystemDisk"
                  ],
                  "Resource": "*",
                  "Condition": {
                      "Bool": {
                          "ecs:PasswordInherit": [
                              "true"
                          ]
                      }
                  },
                  "Effect": "Deny"
              }
          ]
      }
    2. 在資來源目錄中選擇合適的節點繫結原則,策略將對目錄下的帳號產生攔截效果。

  • 針對非企業使用者:

    1. 使用阿里雲主帳號登入RAM控制台,單擊左側功能表列的權限原則,建立一條與上述內容相同的自訂策略。

    2. 通過系統管理權限策略授權將該條權限原則授權給RAM使用者、RAM使用者組或RAM角色。

修複:修複鏡像預設密碼的執行個體風險

  1. 設定新的登入憑證

    • Linux執行個體:綁定新金鑰組

      1. 進入ECS控制台-執行個體,選擇地區與資源群組,單擊目標執行個體ID進入執行個體詳情頁。

      2. 單擊全部操作 > 綁定金鑰組,選擇已建立的金鑰組後,單擊確定。重啟執行個體後生效。

    • Windows執行個體:重設密碼

      1. 進入ECS控制台-執行個體,選擇地區與資源群組,單擊目標執行個體ID進入執行個體詳情頁。

      2. 單擊全部操作 > 重設執行個體密碼,根據提示設定高強度密碼後,單擊確認修改

  2. 清除原鏡像預設憑證(Linux)

    1. 使用新憑證登入伺服器:使用您剛剛綁定的新金鑰組或新密碼登入到ECS執行個體。

    2. 刪除舊的公開金鑰仔細檢查並清空所有authorized_keys檔案中的舊公開金鑰。

      # 編輯root使用者的authorized_keys檔案,刪除所有不應存在的公開金鑰
      vi /root/.ssh/authorized_keys
      
      # 對其他所有使用者執行相同操作
      vi /home/<username>/.ssh/authorized_keys
    3. 禁用密碼登入:在確認金鑰組可以成功登入後,修改SSH服務配置,徹底禁用密碼登入,只允許金鑰組登入。

      # 1. 編輯SSH設定檔
      sudo vi /etc/ssh/sshd_config
      
      # 2. 找到並修改以下行
      PasswordAuthentication no
      PubkeyAuthentication yes
      
      # 3. 重啟SSH服務使配置生效
      sudo systemctl restart sshd
  3. 清理不必要的系統使用者和檔案

    檢查/etc/passwd/etc/shadow檔案,刪除任何在鏡像製作過程中遺留的非必要使用者賬戶。同時,檢查並刪除可能包含敏感資訊(如舊密碼、密鑰)的臨時檔案或指令碼。