How to PUSH data between a Local DB Server to Cloud DB Server?
I realize this is an old question but may come in handy for others facing similar dilemma.

Your client is correct. Do no open up ports to the world, as this is will create a security risk. You will want a site-to-site VPN between your back offices and "the cloud". Once this is implemented the "the cloud" SQL will be accessible as if it was in your LAN.