ACM Private CA Policy

Uses: Kong Mesh

You can use Amazon Certificate Manager as a Certificate Authority (CA) for mTLS with Kong Mesh.

Supported mTLS backends

The default mTLS policy in Kong Mesh supports the following Certificate Authority (CA) backends:

  • builtin: Kong Mesh automatically generates the CA root certificate and key used to generate Data Plane certificates.
  • provided: The CA root certificate and key can be provided by the user.
  • vault: Uses a CA root certificate and key stored in a HashiCorp Vault server.
  • acmpca: Uses Amazon Certificate Manager Private CA to generate Data Plane certificates.
  • certmanager: Uses the Kubernetes cert-manager certificate controller.

How ACM Private CA works

In acmpca mTLS mode, Kong Mesh uses Amazon Certificate Manager to automatically generate Data Plane certificates. The private key of the CA is secured by AWS and never exposed.

You configure Kong Mesh to use the ACM resource and optionally specify AWS authentication credentials. The system uses the AWS default credential chain (environment variables, config files, roles).

Certificates are issued and rotated by the Zone Control Plane for each Data Plane proxy.

ACM Private CA configuration

To configure ACM Private CA in Kong Mesh:

  • Create an ACM Private CA in AWS. You can use a Root or Intermediate CA.
  • Record the ARN and Root Certificate Chain of the CA.
  • Apply a Mesh resource with an acmpca mTLS backend using either Kubernetes or Universal mode.

The acmpca backend can authenticate via:

  • The default AWS credential chain (preferred)
  • Inline credentials (for testing only)
  • Mesh-scoped secret resources

For example:

These configurations can be applied with kumactl apply -f [..].

Multi-zone and ACM Private CA

In a multi-zone environment, the global Control Plane provides the Mesh to the zone Control Planes. However, you must make sure that each zone Control Plane can communicate with ACM Private CA. This is because certificates for Data Plane proxies are requested from ACM Private CA by the zone Control Plane, not the global Control Plane.

Something wrong?

Help us make these docs great!

Kong Developer docs are open source. If you find these useful and want to make them better, contribute today!