密鑰安全與最小權限

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

插件的 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,插件側換新的。