OK, isso é difícil para mim postar porque me sinto tão estúpido, mas a solução direta para o meu problema foi que eu não tornei meu link público no Amazon S3. É por isso que eu estava recebendo um erro 403.
A confusão potencial é que você pode usar o link não público, que é uma longa sequência de caracteres codificados. Mas ele usa um URL em cache. Como o cache é temporário, o cache foi descartado antes que meu processo de restauração pudesse ser concluído.
Portanto, a resposta é tornar o link do Amazon S3 público e usar o link público, por exemplo:
https://s3-us-west-2.amazonaws.com/your_bucket_name/your_file_name.dump
. Então:
heroku pg:backups restore 'https://s3-us-west-2.amazonaws.com/your_bucket_name/your_file_name.dump' HEROKU_DATABASE_URL
. Dito isto, concomitante a este problema, acredito que ainda haja um problema de 'deadlock' relacionado ao
AccessExclusiveLock
que eu preciso resolver separadamente, isso estava fazendo o pg_restore demorar o suficiente para o cache atingir o tempo limite, mas isso é um problema separado.