Loading...
cert-manager (in-cluster) vs cloud-managed certificates (AWS ACM, GCP, Azure): which approach fits your Kubernetes TLS strategy?
| Feature Matrix | cert-manager CNCF project that automates TLS certificate issuance and renewal inside Kubernetes via ACME, Vault, and CA issuers. | Cloud Certs (ACM / GCP / Azure) Cloud-managed certificate services that handle public TLS certs for load balancers and CDN — zero in-cluster ops. |
|---|---|---|
Architecture cert-manager runs in your cluster; cloud certificate management is external to it. | In-cluster operator — issues and renews certs inside Kubernetes | Cloud-managed (AWS ACM, GCP Managed SSL, Azure App Service Certs) |
Let's Encrypt / ACME cert-manager has native ACME/Let's Encrypt support. Cloud providers use their own CA or charge for public certs. | ||
Internal / Private PKI cert-manager is far more flexible for internal certificate authorities and mTLS. | Yes — self-signed, CA issuers, Vault PKI integration | Limited — AWS Private CA (costly), GCP Private CA |
Kubernetes Secret Integration cert-manager certs are immediately available as K8s Secrets. Cloud certs need the aws-load-balancer-controller or similar. | Native — stores cert in Kubernetes TLS Secret, auto-mounts | Requires sync (AWS ACM doesn't export certs as K8s Secrets without extra tooling) |
Wildcard Certificates Both support wildcards. cert-manager requires a DNS provider integration for DNS-01 challenges. | Yes (DNS-01 ACME challenge) | Yes (AWS ACM, GCP) |
Automatic Renewal Both auto-renew. Cloud providers are zero-ops; cert-manager requires the operator to keep running. | Yes — renews at 2/3 of cert duration (e.g. day 60 for a 90-day Let's Encrypt cert) | Yes — cloud providers handle renewal transparently |
Cost Let's Encrypt via cert-manager is free. AWS ACM public certs are free on ALB. AWS Private CA is expensive. | Free (Let's Encrypt) or Vault PKI costs | Free for public certs on ALB/CloudFront (AWS ACM). Private CA: $400/month |
Operational Complexity Cloud certificate management requires almost no operational overhead once configured. | Medium — CRD setup, issuer config, DNS provider credentials | Low — managed by cloud provider |
Portability cert-manager is cloud-agnostic. Cloud certs only work on that cloud's managed services. | High — works on any Kubernetes, any cloud | Low — tied to cloud provider's load balancer / CDN |
mTLS / Service-to-Service cert-manager is the standard choice for mTLS in service meshes. Cloud certificate management doesn't cover east-west traffic. | Excellent — issues per-service certs, integrates with Istio/Linkerd | Not designed for this |