用专用子账号,不要用主账号密钥
插件的 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,插件侧换新的。
