Если вы обнаружите, что он работает при создании через консоль, но не при использовании API (или чего-то подобного Terraform), то, скорее всего, вы не обновляете политику тем SNS, чтобы она позволяла публиковать событияиз CloudWatch Events.Консоль делает это для вас почти магически, но если вы используете API, у вас есть немного больше работы.
Здесь есть ответ здесь в FAQ с подробностями, но длинными если коротко, вам нужно добавить (а не заменить) что-то вроде этого к вашей политике темы SNS:
{
"Sid" : "CloudWatchEvents",
"Effect" : "Allow",
"Resource" : "${aws_sns_topic.events.arn}",
"Action" : "sns:Publish",
"Principal" : {
"Service" : "events.amazonaws.com"
}
}