What Is Secrets Management?

5 min. read

Secrets management is the use of tools and techniques to securely store, access, and manage digital authentication credentials, also known as secrets. Organizations use secrets for digital authentication whenever privileged users — humans and machines — attempt to access protected data, applications, services, tools, containers, and cloud-native environments within their IT ecosystems.

An early step in secrets management involves identifying the secrets that need protection. This sensitive information includes:

  • User or autogenerated passwords
  • API keys
  • Tokens for application use
  • SSH keys
  • Private certificates
  • Private encryption keys for systems such as PGP, RSA, and other one-time password devices.

Organizations must choose secure storage and access control methods to maintain compliance with data protection regulations and ensure that only authorized users can access their resources.

Secrets Management Explained

Secrets management requires a comprehensive approach to protect sensitive information and maintain the integrity of systems and applications. In complex cloud environments, multiple nonhuman users, such as applications, services, and automated processes, interact with each other, often across organizational boundaries. This scenario increases the attack surface and the potential for unauthorized access and data breaches.

Modern secrets management demands a holistic approach that accounts for the complexities of cloud environments, CI/CD pipelines, and nonhuman users. Centralized secret stores, least-privileged access control, dynamic secrets, auditing, and secure integration into CI/CD pipelines are key components of an effective secrets management strategy. These enable organizations to protect sensitive information and maintain the integrity of their systems and applications.

Why Is Secrets Management Important?

Applications, scripts, software, third-party tools, automation tools — and people — use privileged credentials to access resources, communicate with databases, and obtain encryption keys. But if these credentials aren’t secured, the gates of the enterprise are swung open, leaving assets across tool stacks, platforms, and cloud environments at risk.

Secrets in the digital era are ubiquitous, making secrets management integral to cloud security. As the use of cloud-based applications and datastores climbs, so does the need to protect sensitive information. Secrets management helps organizations to protect against data theft, unauthorized access, and other security threats.

Secrets Management Across the Enterprise

In enterprise-wide environments, the secrets management process must handle a diverse range of technology stacks, including legacy systems, commercial off-the-shelf applications, and custom applications. This diversity complicates the management process, as each system requires tailored solutions. Multiple departments and teams with varying access levels necessitate a granular and hierarchical approach to access controls.

Manual processes, such as IT teams handling access requests and granting privileges, can increase the risk of human error and unauthorized access. Additionally, compliance and governance are crucial in enterprise-wide environments, demanding comprehensive auditing, reporting, and monitoring capabilities in secrets management solutions.

Secrets Management in DevOps Environments

For digital organizations, securing secrets in the DevOps pipeline is central to minimizing the attack surface. Automation and continuous delivery require secrets management solutions that securely inject secrets into applications and infrastructure as needed. These environments often rely on cloud-native technologies, like container orchestration platforms such as Kubernetes, necessitating tailored secrets management solutions.

The collaborative nature of DevOps teams demands a flexible approach, focusing on rapid access provisioning, revocation, and shared responsibility. What’s more, the frequent deployments and shorter development cycles in DevOps environments result in a higher volume of secrets and more frequent changes, requiring vigorous secrets rotation, automation, and dynamic secrets provisioning.

But security often — commonly — takes a backseat to agility. In the name of speed, developers have been known to hard-code credentials in source code, leaving secrets littered throughout configuration files and configuration management tools, or stored in plaintext in version control, wikis, and shared volumes.

Related Article: Exposed Credentials Across the DevSecOps Pipeline: 5 Places Secrets Hide in Plain Sight

When credentials in source code are publicly exposed, bad actors can gain unauthorized access and instigate attacks involving data leaks, code tampering, or service disruptions.

Challenges of Secrets Management

Despite the critical role secrets management plays in preserving the security of applications and infrastructure, organizations struggle with diverse challenges — including the consequences of mistakes. DevSecOps and IT are complicated fields. The many types of secrets an organization has to control makes transmitting and storing them difficult.

Incomplete Visibility

Managing privileged accounts, applications, tools, containers, and microservices — along with their associated passwords, keys, and secrets — presents a significant challenge in terms of scale. SSH keys can number in the millions at some organizations, for instance. Decentralized approaches, where admins, developers, and other team members manage their secrets separately or not at all, exacerbate this challenge. The result is fragmented control. security gaps, and challenges when it comes to auditing.

Remote Access

As employees access secrets from various locations and devices, the risk of exposure through unsecured networks, personal devices, and insecure communication channels increases. What’s more, the challenge intensifies as organizations need to enforce strict access controls and monitor usage without hindering the productivity of remote employees.

Default Security

Most new applications and IoT devices come preinstalled with default credentials, which are easy to crack. Even professional DevOps tools sometimes come with pre-made credentials that put the organization at risk if not changed.

Cloud-Based Services

Your company likely uses online services like Amazon Web Services and Microsoft Office 365. If so, you probably work with multiple virtual machines, which require secrets. How do you handle secrets with so many factors and data points to track? As the IT ecosystem increases in complexity and secrets proliferate, it becomes increasingly difficult to securely store, transmit, and audit secrets.

Hard-Coded Credentials

DevOps teams rely heavily on secrets for their tasks. As we know, secrets can hide anywhere — in infrastructure as code (IaC) and application code files, repo config files, and more. Subsequently, applications are often deployed with hard-coded credentials that hackers using scanning tools can crack.

Cleartext

When developers work together on an image in AWS, GCP, Azure, or some other cloud-native environment, it’s not uncommon for them to share .PEM files, SSH keys, and other configuration secrets in cleartext through various communication channels or store them in a directory or file assumed secure.

Secrets Sprawl

With the proliferation of multicloud and microservices, organizations have hundreds, or even thousands, of secrets their developers use for accessing machines. These secrets can be shared or left in code or just left unrevoked and leave organizations open to security incidents.

Related Article: The Top 5 Secrets Management Mistakes and How to Avoid Them

Privileged Credentials and the Cloud

Cloud and virtualization administrator consoles (as with AWS, Office 365, etc.) provide broad superuser privileges that enable users to rapidly spin up and spin down virtual machines and applications at a vast scale. Each virtual machine instance has privileges and secrets that need to be managed.

DevOps Tools

While secrets need to be managed across the IT ecosystem, DevOps environments amplify the challenges of managing secrets. Teams typically leverage dozens of tools that rely on automation and scripts requiring secrets to work. These tools, however, frequently have secrets hardcoded within the scripts or files.

Third-Party Vendor Accounts

Organizations rely on external services and APIs, which necessitate additional API keys and access tokens. The growing number of secrets associated with these integrations contributes to secrets sprawl.

Related Article: Ungoverned Usage of Third-Party Services

Manual Secrets Management

Manual secrets management processes are a recipe for error. Poor secrets hygiene, such as lack of password rotation, default passwords, embedded secrets, password sharing, and using easy-to-remember passwords, mean secrets aren’t apt to remain secret. Manual processes, in general, equate to a higher likelihood of security gaps and malpractice.

Related Article: Insufficient Credential Hygiene Explained

Secrets Management Best Practices

By following these best practices for secrets management, organizations can effectively protect their sensitive data, minimize the risk of security breaches, and maintain regulatory compliance.

Identify Sensitive Data

First, identify all types of password keys and other secrets across your entire IT environment. This includes passwords, access tokens, database credentials, encryption keys, and other sensitive information. Bring them under centralized management. Continuously discover and onboard new secrets as they’re created.

Limit Access to Secrets

Begin with access control. Least privilege and role-based access control are essential for managing secrets in complex environments. Ensuring that both human and nonhuman users have access only to the secrets necessary for their specific tasks reduces potential damage in the event of unauthorized access.

Rotate Secrets Regularly

Periodically change and rotate secrets to minimize the potential damage from compromised credentials. Establish a rotation policy that outlines the frequency and process for changing secrets. By implementing short-lived, temporary credentials — instead of long-lived, static credentials — organizations can ensure that even if a secret is compromised, its exposure is limited. Dynamically generated and automated rotation secrets minimize the window of exposure.

Eliminate Hard-Coded Secrets

No secrets in source control. Bring all hard-coded credentials in DevOps tool configurations, build scripts, code files, test builds, production builds, and applications under management. Regularly review your codebase for hard-coded secrets. Incorporate tools and practices, such as secret injection, container scanning, and automated security checks to maintain a high level of security and prevent the accidental exposure of sensitive information. Address any identified issues promptly to maintain a strong security posture.

Eliminate Default Passwords

Enforce password security best practices, Including password length, complexity, uniqueness expiration, rotation, and more across all types of passwords. Secrets should never be shared. If a secret is shared, it should be immediately changed. Secrets to more sensitive tools and systems should have more rigorous security parameters, such as one-time passwords and rotation after each use.

Elevate Accountability

Implement privileged session monitoring. Software that helps manage a secrets vault can also integrate with privileged access management (PAM) platforms, adding an extra layer of security and ensuring that access is restricted to users who need it. DevOps teams should be able to monitor privileged user activity and terminate sessions if necessary.

Encrypt Secrets

Always encrypt secrets, both at rest and in transit. Use strong encryption algorithms, such as AES-256, to protect sensitive data from unauthorized access and potential security breaches. Encryption keys used for encrypting and decrypting secrets should be appropriately managed and protected. This includes secure storage, rotation, and access control of encryption keys.

Extend Secrets Management to Vendors

Ensuring that third-party services follow best practices for using and managing secrets requires oversight. Organizations should assign a dedicated team to manage vendor services. The oversight team should possess the skills and resources to effectively handle third-party integration, including understanding their functionalities, monitoring performance, and addressing security or compliance issues.

Log and Monitor Access

Continuously log and monitor access to secrets, including the identity of the requester, the time of access, and the requested secret. Regularly review logs to detect suspicious activity and potential security threats. The more integrated and centralized your secrets management, the better you can report on accounts, key applications, containers, and systems exposed to risk.

Audit and Compliance

Regularly audit your secrets management practices to ensure adherence to internal policies and external regulations. Address any identified gaps or weaknesses promptly to maintain a strong security posture.

Disaster Recovery and Backup

Implement a disaster recovery plan that includes backing up secrets in a secure, offsite location to ensure that sensitive data can be quickly restored in the event of a system failure or security breach.

DevSecOps

With the speed and scale of DevOps, it’s crucial to build security into the culture. Embracing DevSecOps means everyone shares responsibility for DevOps security, helping ensure accountability and alignment across teams. In practice, this should entail ensuring secrets management best practices are in place and that code doesn’t contain embedded passwords.

Related Article: Shift-Left Secrets Security: How to Prioritize Secrets Risks

A Comprehensive and Automated Solution

Secrets should not be stored in code repositories or configuration files. To ensure they’re not accidentally exposed, secrets should be stored in a secure location, such as a secrets management system or password vault.

But many secret management tools are incomplete, designed for one platform (i.e., Docker) or certain types of secrets. An incomplete tool won’t eliminate hard-coded and default passwords nor will it manage script secrets.

While application password management improves manual management processes and standalone tools with limited use cases, IT security would benefit from a holistic approach that manages passwords, keys, and other secrets throughout the enterprise.

Centralized secret stores, such as HashiCorp Vault or AWS Secrets Manager, enable organizations to maintain a single source of truth for all secrets, simplify access control, and track changes. These stores often provide features like encryption at rest, versioning, and automated rotation, enhancing security and minimizing the risk of compromise.

Secrets Management FAQs

A key vault is a secure, centralized storage system for managing cryptographic keys, secrets, and sensitive information such as API keys, passwords, and certificates. It provides access control, auditing, and encryption, ensuring that only authorized users and applications can access the stored keys and secrets.

Key vaults help organizations maintain compliance, reduce the risk of data breaches, and streamline the management of sensitive data across various services and applications.

Vault secrets management refers to the process of securely storing, organizing, and controlling access to sensitive information such as passwords, API keys, tokens, and certificates within a vault. This involves encrypting the secrets, enforcing access controls, and implementing audit trails to track usage. Vault secrets management solutions often provide features such as automatic secret rotation, versioning, and secure sharing, enabling organizations to enhance their security posture and simplify the handling of sensitive information.
Secrets sprawl is the uncontrolled proliferation of sensitive information such as passwords, API keys, and tokens across an organization's IT environment. This can occur when secrets aren’t securely stored, managed, or retired, leading to their presence in multiple locations, including source code repositories, configuration files, and personal devices. Secrets sprawl increases the risk of unauthorized access, data breaches, and compliance violations, as it becomes challenging to monitor and protect the scattered sensitive information.

Secrets scanning is the process of searching and identifying passwords, API keys, tokens, and other secrets within an organization's IT environment. It can involve scanning source code repositories, databases, cloud storage, configuration files, and other locations where secrets may be inadvertently stored or leaked.

Secrets scanning solutions typically use pattern matching, entropy analysis, or machine learning techniques to detect sensitive information and potential secrets leaking in any part of your SDLC and cloud infrastructure.

Plaintext refers to unencrypted data that can be easily read and understood without the need for decryption. It’s the original, human-readable form of information before being subjected to encryption or other security measures. Cleartext, on the other hand, refers to data that has been decrypted and returned to its original, readable state. Although the terms are sometimes used interchangeably, cleartext specifically implies that the data was once encrypted and has been subsequently decrypted, while plaintext suggests that the data has never been encrypted.
Privileged access management (PAM) is a security strategy that focuses on controlling, monitoring, and auditing access to sensitive systems, resources, and data by privileged users, such as administrators and IT personnel. PAM solutions ensure that privileged accounts are granted the minimum necessary permissions to perform their tasks, following the principle of least privilege.

Privileged session management involves monitoring, recording, and controlling the activities of privileged users during their access to critical systems and data. This security practice enables organizations to detect suspicious actions, enforce access policies, and maintain detailed audit logs for compliance and forensic purposes.

Privileged session management tools often provide features such as real-time alerts, session termination, and playback capabilities, facilitating enhanced oversight and control over privileged user activities.

Vendor privileged access management (VPAM) is the process of securing, monitoring, and controlling access to an organization's critical systems and data by external vendors, contractors, or partners. VPAM solutions help organizations manage temporary or time-limited access permissions, ensuring that third-party users have the necessary privileges to perform their tasks without compromising security.

Application access management is a security practice that focuses on managing and securing user access to applications and services within an organization. It involves implementing authentication, authorization, and auditing mechanisms to ensure that only authorized users can access specific applications and perform allowed actions.

Application access management solutions often include features such as single sign-on (SSO), multifactor authentication (MFA), and role-based access control (RBAC), helping organizations protect their applications from unauthorized access and potential security threats.

API key management is the process of securely generating, storing, distributing, and monitoring the usage of API keys. Effective API key management involves implementing access controls, rate limiting, and monitoring to prevent unauthorized access or misuse of the APIs. Organizations often use API management platforms or services to handle key generation, distribution, and revocation, ensuring the security and integrity of their APIs.
Shared-access password management refers to the secure handling, storage, and distribution of passwords and other sensitive credentials used by multiple users or teams within an organization. This practice aims to prevent unauthorized access, data breaches, and compliance violations that can result from poor password management. Shared-access password management solutions typically provide centralized storage, access controls, and audit trails, ensuring that shared credentials are securely managed and only accessible by authorized users.

A certificate authority (CA) is a trusted entity that issues and manages digital certificates for secure communication and authentication over networks. CAs verify the identity of individuals, organizations, or devices before issuing certificates, ensuring that the certificate holder is legitimate. By validating the authenticity of digital certificates,

CAs play a crucial role in public key infrastructure (PKI), enabling secure communication, and trust in online transactions.

Public key infrastructure (PKI) is a system of policies, procedures, and technologies that enables secure communication, authentication, and data integrity over networks using public key cryptography. PKI components include certificate authorities (CAs), registration authorities (RAs), digital certificates, and public and private key pairs.

By managing the issuance, storage, and revocation of digital certificates, PKI establishes trust in online transactions, ensuring the confidentiality, integrity, and authenticity of the exchanged data.

Digital certificates are electronic documents that use cryptographic techniques to bind a public key to an entity's identity, such as an individual, organization, or device. Digital certificates are issued and signed by a trusted certificate authority (CA) and typically include the certificate holder's name, public key, expiration date, and the CA's digital signature. They enable secure communication and authentication over networks by establishing trust in the certificate holder's identity.
A registration authority (RA) is a subordinate entity within the public key infrastructure (PKI) that assists the certificate authority (CA) in verifying the identities of entities requesting digital certificates. RAs perform tasks such as identity validation, certificate request processing, and certificate revocation reporting. By delegating these tasks to RAs, CAs can maintain the scalability and efficiency of the digital certificate issuance process.
A certificate signing request (CSR) is a message sent by an applicant to a certificate authority (CA) to request the issuance of a digital certificate. The CSR contains the applicant's public key, identity information, and a digital signature created using the corresponding private key. The CA verifies the applicant's identity, validates the CSR, and, if approved, issues a digital certificate that binds the applicant's public key to their identity.
A digital signature is a cryptographic technique used to verify the authenticity and integrity of a digital message or document. By applying a private key to the data, the signer creates a unique digital fingerprint, which recipients can validate using the signer's public key. Digital signatures ensure that the data hasn’t been tampered with during transmission and confirms the identity of the sender, providing non-repudiation and trust in online transactions.

An encryption key is a piece of data used with a cryptographic algorithm to transform plaintext into ciphertext (encryption) or ciphertext into plaintext (decryption). Encryption keys come in two types:

  • Symmetric keys are used in symmetric encryption, where the same key is used for both encryption and decryption.
  • Asymmetric keys, also known as public, and private key pairs, are used in asymmetric encryption, where the public key encrypts data and the private key decrypts it.
Encryption key management is the process of generating, storing, distributing, and retiring encryption keys to ensure the security and integrity of encrypted data. Effective encryption key management involves implementing secure key storage, access controls, and audit trails, as well as adhering to key rotation and backup policies.
Encryption as a service (EaaS) is a cloud-based offering that provides organizations with encryption capabilities for their data, both at rest and in transit, without requiring the management of encryption keys and infrastructure. EaaS providers typically offer APIs, SDKs, or platform integrations that enable easy implementation of encryption across various applications, storage systems, and services.
Encryption at rest refers to the process of securing data by encrypting it when stored on a disk, in a database, or within a cloud storage service. This security measure ensures that the stored data remains protected from unauthorized access, even if the physical storage medium or system is compromised.
Encryption in transit, often implemented using the Transport Layer Security (TLS) protocol, is the process of securing data while it’s transmitted over a network, such as the internet. TLS provides confidentiality, integrity, and authenticity for data in transit by encrypting the communication channel between the sender and receiver. This prevents unauthorized parties from intercepting, modifying, or impersonating the data transmission.
Zero-knowledge encryption is a security model in which a service provider can’t access or decrypt the encrypted data stored on their platform, ensuring complete privacy for the user. In this model, encryption and decryption occur on the client side, and only the user holds the decryption key. As a result, even if the service provider is compelled or hacked, the attacker can’t access the user's sensitive data.

Just-in-time access is a security approach that grants users temporary, time-limited access to sensitive resources or systems only when it’s required for a specific task. JIT access reduces the risk of unauthorized access, data breaches, and insider threats by minimizing the exposure of privileged accounts and sensitive systems. The approach often involves implementing automated workflows to request, approve, and grant access, as well as monitoring and auditing user activities during the granted access period.

JIT access aligns with the principle of least privilege, enhancing an organization's security posture.

Configuration-as-code (CaC) separates configuration from the application code and allows development teams to automate config management for their applications and environments while ensuring consistency and traceability throughout the development lifecycle.
Bring your own key (BYOK) is an encryption key management model that enables companies, as cloud service customers, to encrypt their data and retain control and management of their encryption keys.
Attribute-based access control (ABAC) is a security model that enforces access control decisions based on attributes associated with the user, resource, and environment. Attributes can include user roles, security clearances, location, time, and resource sensitivity. ABAC allows for granular, dynamic, and context-aware access control policies, enabling organizations to define complex rules that govern access to resources. This flexible approach helps organizations achieve greater security and adapt to changing requirements.
Role-based access control (RBAC) is a security model that assigns permissions to users based on their roles within an organization. Instead of granting permissions directly to individual users, RBAC associates permissions with roles, and users are assigned to these roles according to their job responsibilities. This simplifies access management, streamlines the process of granting and revoking permissions, and reduces the risk of unauthorized access by enforcing the principle of least privilege.

Multitenancy is an architecture principle in which a single instance of a software application or service serves multiple tenants, or customers, while keeping their data and configurations separate and secure. This approach enables efficient resource sharing, simplified management, and cost savings for the service provider. In a multitenant environment, strict access controls, data isolation mechanisms, and security measures are essential to prevent unauthorized access to or leakage of data between tenants.

Software as a service (SaaS), an example of multitenant architecture, requires vigilant attention to ensure tenant resources are properly isolated.

Static secrets are sensitive pieces of information, such as passwords, API keys, or tokens, that remain unchanged over time unless manually updated. Unlike dynamic secrets, which are automatically generated and have a limited lifespan, static secrets pose a higher security risk due to their long-term existence and potential for unauthorized access. Managing static secrets requires secure storage, access control, and monitoring to ensure their confidentiality, integrity, and availability.
Static secrets versioning is the practice of maintaining multiple versions of a static secret, such as a password or API key, to track changes and enable secure updates. When a static secret is modified, the previous version is preserved, allowing for audit trails, recovery in case of accidental changes, and rollback to a previous version if needed.
Dynamic secrets are short-lived, automatically generated credentials or tokens used to grant temporary access to sensitive resources, systems, or services. Unlike static secrets, which remain unchanged over time, dynamic secrets have a limited lifespan and are automatically revoked when they expire or when the access is no longer needed. Dynamic secrets reduce the risk of unauthorized access, data breaches, and insider threats by minimizing the exposure of sensitive credentials.
Data at rest describes inactive data stored on hard drives, flash drives, or archives.
Data in transit moves through a network and/or internet, such as uploading information from on-premises storage to a cloud environment.
Data in use is a phrase to describe when a user is presently accessing data or it’s currently open in an application.
Zero standing privileges (ZSP) are a Gartner-authored phrase that alludes to the ideal state for privileged access to minimize risk of stolen credentials, breaches, data loss, privilege abuse, and noncompliance.
Robotic process automation (RPA) is a software-based automation technology that uses robots to emulate human interaction with digital systems, making it easier and faster to execute business and development processes by performing defined actions.
A hardware security module (HSM) is a computing device that performs cryptographic operations such as strong authentication, digital signature encryption and decryption, and digital key management. Typically, HSMs are external devices or plug-in cards that connect to a computer or network server.