私はセルフホストされた複数のDiscourseインスタンスを運用しています。すべてAmazon S3にバックアップがあり、各フォーラムにカスタムIAMユーザーとポリシーを設定して、1つの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ポリシーは、バケット名を除いてすべて同一です。ポリシーは、新しいバックアップの作成とアップロードには明らかに機能しています。