我运行了多个 Discourse 实例,全部是自托管的。它们都有 Amazon S3 备份,并且我为每个论坛设置了自定义 IAM 用户和策略,只授予对一个 S3 存储桶的访问权限。
有些论坛没有删除旧备份,而其他论坛则运行正常。这似乎与站点设置无关,因为它们都基本相同。我倾向于将保留的备份数量限制在 10-20 个,并且每天晚上进行备份。
行为异常的实例具有以下共同点:
- AWS 凭证可以正常创建新备份和列出现有备份,但在尝试删除时会引发“访问被拒绝”错误。
- 所有实例都运行最新的 tests-passed (今天更新) 3.3.0.beta5-dev。
- 它们不会自动删除旧备份,即使是那些 远远 超过应删除年龄的备份。
- 它们似乎对任何站点设置组合都无响应,例如
maximum backups、remove older backups、s3 disable cleanup等。 - 在 Discourse 管理 UI 中删除旧备份不起作用 - 日志中出现
Aws::S3::Errors::AccessDenied。 - 手动在 AWS 中删除(显然)可以工作,但这只是一个变通方法。
我只是想了解如何进一步调试这个问题。
IAM 用户的 JSON 策略除了存储桶名称外,都 相同。策略显然可以用于创建和上传新备份。