We're building a SaSS platform with support for integrations. Each client has multiple integrations. We'd prefer not to store these integration tokens in a centralized location, where there's a single point of access to all tokens for all clients.
Our current approach is to run separate servers for each client, with separate hosting accounts. This means in order to access all N clients accounts you'd have to know N sets of credentials. The only way to access those accounts would be to have physical access to someone on our teams devices.
Obviously that's not the most scalable solution...
We looked at having N EC2 instances under one account - they requires physical PEM files to access the server which we like - but you can just regenerate new PEM files from the one account, so there's a single point of access still.
There are suprisingly few/no results online about how to go about this - presumably because companies are just storing this information in a centralized way. The reason we considered it was especially important was because our database and system is relatively insensitive, but all of these integration accounts are sensitive (i.e. Quickbooks).
We limit what each integration token is able to do to the actions we need to take, but would feel best if there was no single point of access to them.
Are there any good precedents for this scenario or suggestions of a better way for us to go about this?
We're looking for something:
- secure (no single point of access other than keys/passwords on a physical employee device)
- scalable (low overhead per client, easy to make changes to the architecture)