Production Linkerd with AWS Private CA issuer

Install cert-manager

helm repo add jetstack https://charts.jetstack.io --force-update
helm repo update
helm upgrade --install  cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set crds.enabled=true --waiy

Install AWS PrivateCA Issuer

Create IAM Policy

pca-iam-policy.json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "awspcaissuer",
      "Action": [
        "acm-pca:DescribeCertificateAuthority",
        "acm-pca:GetCertificate",
        "acm-pca:IssueCertificate"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:acm-pca:*:*:certificate-authority/*"
    }
  ]
}

Create service account and IAM Role

Install via helm

Create a Private Root CA for Linkerd

Follow your preferred method for creating a private root CA via AWS documentation and note the certificate ARN for use when creating the Issuer

Create an AWSPCAIssuer

Create Linkerd Identity Issuer Certificate

Validate that the linkerd-identity-issuer certificate is ready

Install Linkerd

Download the private CA from AWS Private Certificate Authority and store it in a file named ca.crt

AWS Private Certificate authority root CA

Install linkerd CRDs and Control Plan via helm (using ha-values)

Apply to Immuta deployment

Validate tls identity on pods