Você pode redirecionar a saída de erro para um arquivo e, em seguida, recuperar essa saída:
trap "rm -f /tmp/cfn-error.txt" 0 1 2 3 15
/opt/aws/bin/cfn-init -s ... 2>/tmp/cfn-error.txt ||
error_exit $(</tmp/cfn-error.txt)
Você deve sempre limpar sua bagunça, então não se esqueça de excluir qualquer arquivo temporário que você criar.