Acabei de configurar isso e acredito que a entrega de mensagem bruta deve estar DESABILITADA, não HABILITADA.
Com a entrega de mensagem bruta habilitada, as notificações de rejeição do SNS não incluem os metadados do SNS que o discourse requer para validar a mensagem. Meus logs de acesso continham entradas como esta:
"POST /webhooks/aws HTTP/1.1" "Amazon Simple Notification Service Agent" "-" 406 414 "-" 0.008 0.008 "-" "-" "-" "-" "-" "-" "-"
ou seja, status HTTP 406, “Não Aceitável”.
Após desabilitar a entrega de mensagem bruta, os logs de acesso mostraram:
"POST /webhooks/aws HTTP/1.1" "Amazon Simple Notification Service Agent" "-" 200 402 "-" 0.022 0.022 "-" "-" "-" "-" "-" "-" "-"
ou seja, status HTTP 200, “OK”.