金鑰安全與最小許可權

用專用子賬號,不要用主賬號金鑰

外掛的 AccessKey 會寫入資料庫。如果用雲廠商主賬號 (阿里雲 RAM 、騰訊雲子賬號體系之外) 的金鑰,一旦資料庫洩露,攻擊者就能操作你賬號下的所有資源。正確做法是為外掛建一個只有目標桶許可權的子賬號。

阿里雲 OSS 策略示例

在 RAM 訪問控制新建使用者 (如 wpsss-mysite),建立 AccessKey,然後掛一條自定義策略:

{
  "Version": "1",
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "oss:PutObject", "oss:GetObject", "oss:DeleteObject",
      "oss:GetObjectMeta", "oss:HeadObject",
      "oss:ListObjects", "oss:ListObjectsV2",
      "oss:GetBucketInfo", "oss:GetBucketLocation"
    ],
    "Resource": [
      "acs:oss:*:<你的UID>:<你的桶名>",
      "acs:oss:*:<你的UID>:<你的桶名>/*"
    ]
  }]
}

這套許可權覆蓋外掛全部功能:上傳、下載、刪除、分片上傳、桶間複製、體檢。不需要的許可權一個都不給。

ECS 伺服器免金鑰 (僅阿里雲)

如果 WordPress 跑在阿里雲 ECS 上,可以不填 AccessKey,改用 RAM 角色:在高階設定的 「憑證」 下拉選 「ECS 例項 RAM 角色」,並填 「RAM 角色名」,外掛透過 ECS 後設資料介面取臨時金鑰。臨時金鑰每小時輪換,比長期金鑰更安全。注意安全組要放行 100.100.100.200(後設資料服務) 。

金鑰的日常管理

  • 設定頁裡已儲存的金鑰顯示為 「已儲存」,留空儲存時保持不變——換金鑰時填新值,不用重填舊的。
  • 匯出設定 JSON 不包含金鑰;換站遷移時金鑰要重新填。
  • 懷疑洩露就立刻在雲控制檯停用該 AccessKey,外掛側換新的。