AWS Certificate Manager (ACM) handles provisioning, managing, and deploying SSL/TLS certificates. Certificates secure connections for ALB, CloudFront, API Gateway, and other AWS services.
Free SSL/TLS certificates for public-facing resources. Automatically renewed. Requires domain validation via DNS or email. Can only be used with integrated AWS services.
Integrations: ALB, NLB, CloudFront, API Gateway, Elastic Beanstalk, CloudFormation
Private CA for internal resources. Requires AWS Private CA (additional cost). Private key can be exported for use outside AWS. Supports custom validity periods.
Use cases: Internal services, IoT devices, on-premises resources, containers, EC2 instances
ACM itself has limited direct attack surface, but certificate enumeration reveals infrastructure, and mismanaged private CAs can enable MITM attacks. Expired certificates cause service outages.
aws acm list-certificates --region us-east-1aws acm describe-certificate --certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/xxxaws acm list-tags-for-certificate --certificate-arn arn:aws:acm:...:certificate/xxxaws acm-pca list-certificate-authoritiesaws acm-pca get-certificate-authority-certificate --certificate-authority-arn arn:aws:acm-pca:...curl -s "https://crt.sh/?q=%.example.com&output=json" | jq -r '.[].name_value' | sort -uOSINT Tip: CT logs are a goldmine for subdomain enumeration. Use crt.sh, censys.io, or certspotter to discover all issued certificates.
aws acm list-certificates --query 'CertificateSummaryList[*].CertificateArn' --output textaws acm list-certificates --query 'CertificateSummaryList[*].[DomainName,SubjectAlternativeNameSummaries]' --output tableaws acm list-certificates --certificate-statuses ISSUED --query 'CertificateSummaryList[?NotAfter<=`2024-12-31`]'aws acm export-certificate \
--certificate-arn arn:aws:acm:...:certificate/xxx \
--passphrase $(echo -n 'password' | base64)curl -s "https://crt.sh/?q=%.target.com&output=json" | \
jq -r '.[].name_value' | sort -uaws acm describe-certificate \
--certificate-arn arn:aws:acm:...:certificate/xxx \
--query 'Certificate.InUseBy'{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "acm:*",
"Resource": "*"
}]
}Full ACM access allows certificate deletion, private key export, and private CA management
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"acm:DescribeCertificate",
"acm:ListCertificates",
"acm:ListTagsForCertificate"
],
"Resource": "*"
}]
}Read-only access for monitoring and inventory purposes
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"acm-pca:IssueCertificate",
"acm-pca:GetCertificate"
],
"Resource": "*"
}]
}Ability to issue certificates from any private CA enables MITM attacks
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": ["acm-pca:IssueCertificate"],
"Resource": "arn:aws:acm-pca:*:*:certificate-authority/specific-ca-id",
"Condition": {
"StringEquals": {
"acm-pca:TemplateArn": "arn:aws:acm-pca:::template/EndEntityCertificate/V1"
}
}
}]
}Restricted to specific CA and certificate template
Set up CloudWatch alarms for certificates expiring within 30 days.
aws cloudwatch put-metric-alarm \
--alarm-name CertExpiringSoon \
--metric-name DaysToExpiry \
--namespace AWS/CertificateManager \
--threshold 30 --comparison-operator LessThanThresholdPrevent private key export by denying acm:ExportCertificate action.
{
"Effect": "Deny",
"Action": "acm:ExportCertificate",
"Resource": "*"
}Don't use the same wildcard certificate across prod/staging/dev.
Log all ACM and ACM-PCA API calls for audit trail.
aws cloudtrail put-event-selectors \
--trail-name main-trail \
--event-selectors '[{"ReadWriteType":"All","IncludeManagementEvents":true}]'Use HSM-backed keys and restrict IssueCertificate permissions to specific templates.
Use DNS validation with Route 53 for automatic renewal without manual intervention.
aws acm request-certificate \
--domain-name example.com \
--validation-method DNS \
--domain-validation-options DomainName=example.com,ValidationDomain=example.comAWS ACM Security Card • Toc Consulting
Always obtain proper authorization before testing
Toc Consulting: AWS Security & Cloud Architecture
Our team helps engineering teams secure and architect AWS the right way: assessment in week one, a prioritized action plan in week two.