Learning Library

← Back to Library

Secure Secret Management for DevOps

Key Points

  • Secrets are digital credentials that authenticate an entity and define its permissions, enabling secure communication with services.
  • In practice, users need credentials to access resources like development repositories, while microservices require configuration data (e.g., database credentials) to interact with each other.
  • If secrets are exposed, they can lead to costly data breaches and operational chaos, especially as the number of microservices and applications grows.
  • Centralized secret management solutions are essential to isolate, protect, and control access to these credentials, reducing breach risk and simplifying DevOps workflows.

Full Transcript

# Secure Secret Management for DevOps **Source:** [https://www.youtube.com/watch?v=iETENR5MEB8](https://www.youtube.com/watch?v=iETENR5MEB8) **Duration:** 00:09:12 ## Summary - Secrets are digital credentials that authenticate an entity and define its permissions, enabling secure communication with services. - In practice, users need credentials to access resources like development repositories, while microservices require configuration data (e.g., database credentials) to interact with each other. - If secrets are exposed, they can lead to costly data breaches and operational chaos, especially as the number of microservices and applications grows. - Centralized secret management solutions are essential to isolate, protect, and control access to these credentials, reducing breach risk and simplifying DevOps workflows. ## Sections - [00:00:00](https://www.youtube.com/watch?v=iETENR5MEB8&t=0s) **Securing Secrets to Prevent Breaches** - In this segment, Alex Greer explains what digital “secrets” are, why they’re critical for authenticating entities to services, and how proper secret management in IBM Cloud safeguards data and stabilizes DevOps workflows. - [00:03:11](https://www.youtube.com/watch?v=iETENR5MEB8&t=191s) **Centralized Secrets Management Overview** - The speaker emphasizes the need to isolate and protect sensitive data via a secrets manager, describing how central storage prevents costly breaches and simplifies developers’ access to credentials, illustrated through a developer’s request for repository access. - [00:06:37](https://www.youtube.com/watch?v=iETENR5MEB8&t=397s) **Securing Database Configuration Credentials** - The passage outlines using a Secrets Manager integrated with cloud IAM to store DB config credentials for read‑only access to a profile database, warns of catastrophic breaches if these configs are mishandled, and suggests mitigation through proper secret management. ## Full Transcript
0:00How are you making sure that your 0:02secrets are securely stored 0:04so that you can avoid data breaches, as 0:06well as chaos in your DevOps workflows? 0:08Hi, I'm Alex Greer with the IBM Cloud 0:10team, and before I get started 0:12make sure to like and subscribe. Now, what 0:14is a secret? 0:15A secret is a digital credential that is 0:17going to allow entities to communicate 0:19and perform actions on a service. This 0:22discrete piece of information 0:23keeps that access point secure. So, let's 0:26take a look at the 0:27the way in which this paradigm exist. So, 0:30let's start with 0:31an entity here 0:34needs to access some sort of service, 0:36we'll leave it a little ambiguous for 0:38right now, but some sort of service. 0:41So, in order to properly communicate with 0:44the service and be able to take the 0:45action that it needs to to get its job 0:46done 0:47this entity is going to need to 0:48communicate to this service two things. 0:51One - who it is. So, that service can 0:54understand 0:55what or who it's interacting with. Two - 0:59it's going to have to know the set of 1:00permissions that it should grant 1:02in the context of its service. 1:05With these the service can now properly 1:09allow that entity to interact with them. 1:12So, how we enable this is with something 1:15we call 1:16a secret. 1:20So, now with this dynamic establish let's 1:23move into an example with users. So for 1:26users, 1:28we'll say user here's our entity, and 1:31we'll say our service here, 1:32let's just say they it's a developer and 1:34they happen to need read or write access. 1:36So, they're interacting with a 1:38development repo in order to do that. 1:42So, in order to gain that access, again 1:44coming back to the 1:46need we have authorization and 1:48permission, how it's going to communicate 1:50it specifically in this circumstance 1:52is by giving it user credentials. 1:59Now that user can interact with that dev 2:01repo in the way that they need to to get 2:02their job done. 2:03Now looking at a cloud native 2:06application story, 2:08we have a lot of microservices that have 2:10to talk to each other. So, 2:11let's look at that so let's just call it 2:15Service A 2:19needs to interact with a database, 2:23called DB, and grab a piece of specific 2:26information that it needs to 2:28get its job done. So, what it needs 2:31in the form of a secret here 2:33is what we call DB Configs. 2:38Again, this DB Config is going to allow 2:40it to have 2:42the right communication with the service 2:43saying this is who I am 2:45and this is what I came here to 2:47accomplish. 2:48But now that we have our user 2:50credentials and our DB Configs as 2:51example of secrets, 2:53we realize the vulnerability that can be 2:55created here if these were to fall into 2:56the wrong hands. 2:57And this is why it's so important to 3:00establish 3:00a centralized place to manage all these 3:02things as we build out more and more 3:04applications, microservices, 3:05and we have more of these that the problem 3:07becomes more complex. 3:09And if it falls into the wrong hands how 3:11is it protected? 3:12How did we block it from getting to 3:14that point, how is that data isolated? 3:18When we look at the the damage that this 3:20can cause we're looking in the millions 3:22of dollars for example for a data breach. 3:25And in terms of developer operations if 3:27you're not properly managing these, 3:29forget even the case in which a bad 3:30actor hasn't been involved but it can be 3:32confusing for teams to use this. 3:34So, what we need to do is make sure that 3:36we have it again centralized 3:38and properly stored so that we can 3:40leverage these secrets in the right way 3:42and they can properly communicate with 3:43services. 3:44Okay, now let's take a look at the next 3:46layer of of the onion. 3:47in a more complicated example. 3:51Now. let's go back to Jane, the Enterprise 3:53Developer. 3:55Jane, or we'll say E-Dev., 3:58here needs again to have access to that 4:02development repo that she was referring 4:03to 4:03earlier. Let's just go ahead and call 4:05this maybe 4:06it's GitHub. So, what she needs to be 4:10able to do is have 4:12write access, 4:16and so she's going to give it, she's 4:18going to need to request the information 4:20that's going to give her access to that 4:23right role. 4:24So, that's where a Secrets manager 4:27service comes in 4:28in a perfect complementary fashion. 4:33So a Secrets manager service 4:37can securely store these credentials 4:39along with 4:40other types of secrets in a centralized 4:42way for her to be able to access, or 4:44maybe other services to access like 4:45we'll see in a second. 4:47But what it's done is it's given her the 4:49peace of mind 4:50that her user credentials are 4:53securely stored and now she can worry 4:56about 4:58authenticating and with the service and 5:00getting her job done, because Secrets 5:02manager is going to take care of that 5:03for her. 5:04However, what's really important for a 5:06secrets manager service to do 5:07is interact with the cloud service 5:09providers IAM write, Identity and 5:11Access Management service. So, this 5:14IAM is going to be the source of truth 5:18allowing secrets manager to one, 5:20authenticate 5:21who she is and so that it can pass it 5:23down to GitHhub and secondarily, 5:25also allow for her to get the right set 5:29of roles based on the paradigm that they 5:31have within 5:32their IAM service. So with this we now 5:35understand what it's like for a user 5:36to get the right permission and be able 5:39to access 5:40the tool of their choice or their 5:42service, and be able to do this in the 5:44context of 5:45using a Secrets manager service. But now 5:48let's look what it's like 5:49for a service to interact with another 5:51service, 5:52and potentially where data bridges could 5:55be harmful. 6:00Now let's look at our service to service 6:02example. 6:03So, what we have to start with is that we 6:06have, 6:07let's just call it a lending application, 6:10so lending app, 6:12and this lending app is going to want to 6:14request permissions 6:18to be able to access, again we were 6:22talking about a database earlier, 6:23let's be a little bit more specific, this 6:25database that it needs to access and a 6:27given table within this database 6:29has necessary information to give to its 6:31model in order to be able to make a 6:33judgment on whether or not they want to 6:34provide a consumer a loan. 6:36So, we're going to call this a profile 6:37database, so within here we have 6:40profile DB, 6:45and we know that the set of permissions 6:47that we want to grant are going to be 6:50read permissions for table 6:55A. So again, where are we going to 6:59store the secret that's ultimately going 7:01to give us access to give us access to 7:03authentication 7:04and ultimately to the set of permissions 7:06that we need here. So that's again going 7:08to be the Secrets manager service 7:10provided 7:14and that service needs to talk to cloud 7:18IAM again. So now that we've got this 7:20established, 7:22what type of credential do we have here? 7:24the credential that we have 7:26is called a DB config. 7:30So, let's think about the scenario we 7:31just walked through this DB config 7:34allows this lending application a 7:36service to be able to have 7:39read access or be able to take a 7:42specific set of information from a given 7:43table 7:44within a database that has some IP data 7:48and some other highly sensitive 7:49information in it. 7:51So in a scenario in which these DB configs 7:53are not stored properly, 7:55or the service that they stored in is 7:58compromised, 7:58what we ultimately get is a pretty 8:00catastrophic scenario for the provider 8:03because the provider of the service of 8:04this lending application then has to go 8:06and tell its customer 8:07that a bad actor was able to take 8:09advantage of access that it got 8:10wrongfully to its DB config, and that 8:13DB config ultimately 8:15allowed that bad actor to steal their 8:17data and do whatever they wanted with it 8:19against that customer. So, what we can do 8:22to mitigate it again, 8:23is store it in a safe location where bad 8:25actors do not have access and you have 8:27the level of data isolation 8:29that you're comfortable with as an 8:30enterprise. So, that's where we have 8:32Secrets manager services. 8:35So again, Secrets manager services 8:39help to ensure the secure storage of 8:42secrets 8:42so that you don't have to worry about 8:44data breaches from lost credentials or 8:47from other types of secrets, 8:48and ultimately it makes it a little more 8:50efficient for the management 8:51of your your secrets while you're going 8:54through your DeVops operations. 8:56Thank you. If you have questions please 8:58drop us a line below. 8:59If you want to see more videos like this 9:01in the future please like and subscribe. 9:03And don't forget, 9:04you can grow your skills and earn a 9:05badge with IBM CloudLabs, which are free 9:07browser-based interactive Kubernetes 9:09labs.