Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Terraform - issue with aws_acm_certificate_validation

I am trying to generate a certificate and make it validate via DNS... all seems to work, until the last steps when I use resource "aws_acm_certificate_validation"

my code is the following:

# Create Certificate
resource "aws_acm_certificate" "ic_cert" {
    provider = aws.us-east-1
    domain_name = aws_s3_bucket.ic_bucket_main.bucket
    subject_alternative_names = [aws_s3_bucket.ic_bucket_redirect.bucket]
    validation_method = "DNS"

  tags = {
    Billing = "company X"
  }

  lifecycle {
    create_before_destroy = true
  }
}

# Validate Certificate via DNS
# get zone_id

data "aws_route53_zone" "selected" {
    provider = aws.us-east-1
    name = aws_s3_bucket.ic_bucket_main.bucket
}

# Generate DNS Records
resource "aws_route53_record" "ic_DNS_validation" {
    provider = aws.us-east-1
    for_each = {
        for dvo in aws_acm_certificate.ic_cert.domain_validation_options : dvo.domain_name => {
            name    = dvo.resource_record_name
            record = dvo.resource_record_value
            type    = dvo.resource_record_type
            zone_id = data.aws_route53_zone.selected.zone_id
        }
    }
    allow_overwrite = true
    name = each.value.name
    records = [each.value.record]
    ttl = 60
    type = each.value.type
    zone_id = each.value.zone_id
}

# Confirm certificate creation 
resource "aws_acm_certificate_validation" "ic_cert_validation" {
  certificate_arn         = aws_acm_certificate.ic_cert.arn
  #validation_record_fqdns = [for record in aws_route53_record.ic_DNS_validation : record.fqdn]
  #validation_record_fqdns = [aws_route53_record.ic_DNS_validation.fqdn]
  validation_record_fqdns = [for record in aws_route53_record.ic_DNS_validation : record.fqdn]
}

and I get the following error:

Error: reading ACM Certificate (arn:aws:acm:us-east-1:xxxxxxxxxxxxxxxxxxxxx8:certificate/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx): couldn't find resource
 
│   with aws_acm_certificate_validation.ic_cert_validation,
│   on certificates.tf line 45, in resource "aws_acm_certificate_validation" "ic_cert_validation":
│   45: resource "aws_acm_certificate_validation" "ic_cert_validation" {

would anybody spot what is the issue?

like image 386
FiNaR Avatar asked Oct 12 '25 11:10

FiNaR


1 Answers

Since ACM is a regional serivce and the certificate was created using provider = aws.us-east-1 the resource used for certificate validation should also use the same configuration (as the certificates were already created in that region):

resource "aws_acm_certificate_validation" "ic_cert_validation" {
  provider                = aws.us-east-1
  certificate_arn         = aws_acm_certificate.ic_cert.arn
  validation_record_fqdns = [for record in aws_route53_record.ic_DNS_validation : record.fqdn]
}
like image 134
Marko E Avatar answered Oct 16 '25 08:10

Marko E