- Role-based, attribute-based, & just-in-time access to infrastructure
- Connect any person or service to any infrastructure, anywhere
- Logging like you've never seen
Database sprawl is a lot like expanding into the suburbs: your house may be empty at first, but before you know it, you’re having to stuff things into your attic.
Similarly, you may start out with a core database, but as you grow, you end up acquiring more and more databases, many with specific purposes, and eventually have a sprawling database ecosystem. There’s no central management; systems are tied to each other even though provisioning is siloed. Suddenly you end up with thousands of databases – and a higher overhead cost to manage them.
While you might have a garage sale in the suburbs to consolidate your things, you can’t exactly do that with your database ecosystem.
The Problem with Database Access
Let’s take a tangible example:
Imagine a company that starts out with a single MySQL database, but then quickly burgeons to five or six of them. Each time an employee needs access, the company will have to provision access to each database manually, based on that individuals’ role and needs. These access requests often go through a multi-stage approval process, which can take days or weeks, especially for production systems. As a result, DevOps, SREs, and/or the IT team spend entirely too much time provisioning database access.
Often, companies will try to create their own database access solution. But not only do they have to build the tool, but they also have to manage it. Every time a bug arises or even a new database is added, the team has to go back in and fix it. Other companies may try to write Ansible scripts to provide access. This approach typically works well at first, when there’s only a few databases and employees, but begins to break once the company starts to scale.
It can also be tempting to keep a lot of security layers in place, no matter what tool you choose. This is especially true for organizations looking to embrace Zero Trust, or those that layer access via a networking, firewall, VPN, and an identity management provider. This can slow down access to databases and be redundant. Working with these layers also means that your team is spending a lot more time maintaining systems.
If this sounds like your organization, you’re not alone. And you know you need to solve this database access problem. When you automate access, the team in charge of provisioning access is freed up for more strategic work. There’s less management overhead, and employees that need access have it that much faster.
Moving Toward Automated Database Access Management
The first step in automating access management is to figure out your access plan and how your permissions work, and then to map out how you intend for it to work. Understanding who is accessing your databases today, how they’re being accessed, and whether specific access is warranted is foundational to simplifying access.
Once this is in place, you have to start the process of automating database access. Why would you want to automate? It provides some tangible benefits:
- Automation removes human error, like overprovisioning and underprovisioning, once you’ve defined your access rules.
- You’ll eliminate the lag time between the request for access and the approval so that employees can get to work developing new applications.
- You’ll also mitigate risk by not automatically granting access to a database that could be used as a backdoor for security breaches.
How to Automate and Get Started
If you don’t want to build your own tool to automate database access provisioning, there are tools available to help you with the automation process (*cough* StrongDM *cough*). The steps are fairly straightforward:
- Inventory all of your resources and users’ access
- Map common permissions into roles
- Reduce the overhead required to grant access to resources
Certainly easier said than done. Traditionally, there’s a networking layer, like a VPN, an access layer for individual systems, and an auditing layer. Using StrongDM consolidates these layers and reduces the complexity that a lot of organizations struggle with. StrongDM is able to automate credentialing because it:
- Automatically assigns permissions based on user role
- Makes it easy to provide/revoke temporary access for contractors or on-call users
- Works with your workflow tools like Terraform, Ansible, or via SDKs
The outcome is a simplified, one-click approach to database access provisioning for users.
See Automated Database Credentialing in Action
Want to know how you can begin or improve automating your database access? It just takes a quick, no BS demo.
To learn more on how StrongDM helps companies with preventing credential sprawl, make sure to check out our Preventing Credential Sprawl Use Case.
About the Author
John Turner, Manager, Customer Engineering, is passionate about helping customers connect to the infrastructure they need to do their jobs, bringing 15+ years of experience in IT environments to his current focus on Infrastructure Automation and Security. He works in multiple cloud environments including AWS, GCP, Azure, and IBM Cloud and stays up to date on various automation tools such as Terraform and Ansible. To contact John, visit his YouTube channel.