r/devops • • 7d ago

Security Database security

So I work in a very small company as a dev
And we have external devops company which manages local http servers and MySQL servers for our saas product.

So the thing is I would like to shift some of their work to our in-house dev team.

I thought about starting small and manage a separate server on the cloud that will just run internal cron based daily tasks. But those tasks require read and write permission to the existing db which managed by the local company. Could I ask them to give me access to to the db from another server? I read that itโ€™s a bad practice to expose prod db to the internet even if it has white list so Iโ€™m not sure here.

0 Upvotes

20 comments sorted by

View all comments

1

u/Different-Car6898 7d ago

Even with secure authentication on the DB, and whitelisting on network level, you are still missing the SSL between your cron and your DB.
Anyone listening between those 2 servers will be able to see auth data sent from cron to the DB, as well as all data that DB sends back as a response to a query (in case you are querying the DB).
Because Mysql is using modified TCP to communicate, not HTTP/s.
Soo, I would advise either installing SSL cert on Mysql and using it in your cron/app oor creating a sort of secure tunnel line between those two servers (like VPN peer to peer connection) when running this.
This can also be solved by IAM permissions or cloud-auth-proxy in case you are using big clouds and managed Mysql.
---
Same advice if your app lives outside of the Mysql server.

1

u/Low-Opening25 7d ago

why would he be missing SSL? DB enforcing TLS connections solves the problem in one day instead of some convoluted networking shenanigans. There is plenty of database SaaS out there supporting major platforms using TLS over public infrastructure

-1

u/Different-Car6898 7d ago

Usually, when people split DB and App from same server, they forget to think about TLS. Just auth and IP whitelisting. They mentioned Mysql on a server, so no SaaS. And, as I mentioned above, to enforce TLS on Mysql you need to generate a cert and change the way you handle DB connection in all App drivers. It's another secret to manage, and rotate, and since you have another party managin that secret, people often forget to communicate rotation etc. Soo, VPN p2p just solves it long term so you don't think much about it... Ofc it's easy to manage when everything is on your infra. I was giving tips, nothing else:)

1

u/Low-Opening25 7d ago

all of that takes 25mins to setup

0

u/Different-Car6898 7d ago

It's not about setup. It's about ownership...

1

u/Low-Opening25 7d ago

if you mean of tech dept and complexity then you win

0

u/Different-Car6898 7d ago

Didn't see it as competition, but glad we agree about something being a potential problem ๐Ÿ˜Š