Application Default Credentials is a Google authentication framework that lets software obtain credentials from the environment instead of hard-coding them. It supports multiple methods, including service account keys and workload identity, which makes it useful for cloud workloads that need to authenticate to Google services from Kubernetes or other runtime environments.
What Application Default Credentials Do
Application Default Credentials let software discover credentials from its runtime environment instead of embedding secrets in code. That makes authentication portable across local development, cloud runtimes, and managed services, but it also means the security of the surrounding environment determines which identity the application actually uses.
For Google-based workloads, the key security question is not just whether the app can authenticate, but which credential source it will pick up at runtime. In practice, that can range from a developer machine configuration to a service account context or a workload identity binding, so configuration hygiene matters as much as code.
Why ADC Matters for Cloud Workloads
ADC is most useful when software must authenticate to Google services across different environments without changing application code. It reduces hard-coded secret handling, but it also centralises trust in runtime discovery, which means misconfiguration can silently give the workload the wrong level of access.
That is why ADC is often discussed alongside secrets management and credential and access controls: the goal is to reduce static secret sprawl while keeping strong control over where credentials come from, how long they live, and what they can do.
In Kubernetes and similar platforms, ADC is especially valuable because it can support more portable runtime authentication patterns than copied key files. When that is done well, the application depends less on embedded material and more on environment-backed identity.
Credential Sources, Secret Handling, and Rotation
ADC is not a single credential type. It is a lookup and selection mechanism that may resolve to different underlying sources, which is why teams need to understand the credential precedence in each environment and avoid assuming that one deployment behaves like another.
That distinction matters because the same application can be secure in one environment and overly exposed in another if a long-lived key file is still available as a fallback. For that reason, ADC should be paired with disciplined handling of service account keys, scoped access, and rotation practices rather than treated as a complete security solution.
NHIMG’s static vs dynamic secrets guidance is relevant here because ADC often sits at the boundary between long-lived credentials and short-lived runtime authentication. The more your deployment can move toward ephemeral runtime credentials, the less exposure you carry if a host, container, or build step is compromised.
How ADC Fits Into Runtime Identity and Access
ADC is part of a broader runtime access model: the application authenticates as the identity made available by the environment, and downstream permissions are then enforced by the cloud service. That means least privilege, service account scoping, and workload-to-service trust boundaries are central to getting ADC right.
For cloud-native environments, the preferred design is usually to let the platform issue or broker the credential rather than store a reusable secret in the workload image or filesystem. The Google Cloud and Kubernetes pattern is therefore less about convenience alone and more about reducing secret distribution and making access contingent on the deployed context.
The strongest operational habit is to treat ADC as a discovery layer, not a permission model. It can tell the application how to authenticate, but it does not tell you whether the resulting access is appropriately limited, monitored, or easy to revoke.
When ADC Becomes a Security Concern
ADC can become risky when a runtime environment contains more than one valid credential source, when developers rely on defaults they do not understand, or when a cloud workload inherits broader access than intended. In those cases, the application may still “work” while silently using a credential path that is too powerful or too persistent.
Failure mechanism: if a host, container, or CI/CD environment exposes a fallback key file or overly permissive service account, the workload can authenticate successfully while bypassing the intended control plane. That creates a hidden privilege problem, especially when the credential is reusable outside the original runtime.
Impact: compromise of the runtime environment can expose cloud API access, service account permissions, and any data or management actions reachable through those permissions. The practical result is often broader blast radius than the application developer expected.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 addresses the attack and risk surface, while NIST SP 800-53 Rev 5 sets the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-02 — Secret Leakage | ADC often depends on runtime credential material that should not be embedded or exposed. |
| NHI-07 — Long-Lived Secrets | ADC can fall back to reusable key material unless deployments prefer short-lived runtime credentials. | |
| Recommendation — Move runtime credentials out of code and images, and centralise detection for leaked authentication material. Prefer ephemeral credentials over reusable keys, and shorten the lifetime of any fallback secret path. | ||
| NIST SP 800-53 Rev 5 | IA-5 — Authenticator Management | ADC depends on lifecycle control for the authenticators that supply runtime access. |
| IA-9 — Service Identification and Authentication | ADC is used by software and workloads authenticating to Google services. | |
| AC-6 — Least Privilege | ADC is only safe when the resolved runtime identity has tightly scoped permissions. | |
| Recommendation — Manage issuance, storage, rotation, and revocation for every authenticator the workload can use. Use service-level authentication controls so each workload gets only the access it needs. Assign the resolved workload identity the minimum permissions needed for its function. | ||
Practitioner Guidance
What to watch for: review which ADC source will be selected in each deployment path, especially when local development, CI/CD, containers, and managed runtimes differ. The main governance mistake is assuming that “ADC enabled” is itself a security posture, when the real control is the credential source and the authority attached to it.
Governance implication: standardise which runtime sources are allowed, prefer short-lived and environment-bound credentials, and make credential fallback behaviour explicit in deployment review. If a workload can unexpectedly authenticate through a broader source, it should be treated as an access design defect, not just an implementation detail.
Related resources from NHI Mgmt Group
- Guide: Firebase Credentials Security Guide
- Should teams treat AI-related credentials differently from ordinary application secrets?
- What breaks when default credentials exist on an AI workflow account?
- Why do default credentials remain dangerous in operational technology?
- Why do default credentials and standing privilege create PCI DSS risk?
Deepen Your Knowledge
Free weekly newsletter
Subscribe to the NHI & AI Identity Journal
The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.
Bonus 33% off our NHI Course when you subscribe.
Reviewed and updated by the NHIMG editorial team on October 30, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org