Quando abro /admin/backups.json, recebo apenas um erro genérico de Acesso Negado.
O que não entendo é que usar os seguintes comandos na minha Instância EC2 está funcionando corretamente:
aws s3 ls s3://my-bucket-name
E ao entrar no contêiner do Discourse com ./launcher enter app, também consigo executar isso com sucesso após instalar o s3cmd:
s3cmd ls s3://my-bucket-name
Também consigo fazer upload de coisas para o meu bucket usando esses comandos, portanto a política IAM deve estar boa e não consigo entender por que o Discourse não consegue acessar o bucket. Também tentei adicionar “AdministratorAccess” à função IAM para descartar quaisquer problemas de permissão muito restritos.
Configuração no Discourse:
local de backup: S3
bucket de backup s3: my-bucket-name
s3 usar perfil iam: true
região s3: a correta. verificado triplamente.
As opções s3 restantes são deixadas intocadas → Portanto, na maioria vazias/desativadas.
Não tenho certeza se isso teria algo a ver com suas configurações de S3, parece uma mensagem interna de permissões do Discourse. Você consegue carregar /admin/backups como uma página (em vez de anexar .json no final)?
Esta foi uma dica incrível. Consegui rastrear o erro de permissão e vi que o Discourse estava usando um usuário diferente. Agora, para o grande porquê e por que ninguém teve esse erro antes.
Temos um plugin personalizado para enviar notificações push através do AWS SNS, que estava definindo credenciais globalmente através de Aws.config.update e, portanto, o S3 Backup também parecia estar usando as credenciais erradas que obviamente não tinham as permissões necessárias.
Agora corrigiremos nosso plugin para fornecer localmente as credenciais/região e suportar funções EC2 IAM, que é o que prefiro neste momento