Terraform을 사용하여 DNS 검증으로 ACM 인증서 생성

이것은 HTTPS AWS 인증서(ACM)를 생성하고 DNS 검증을 사용하여 AWSRoute53의 내 도메인에서 이를 검증하는 방법입니다. 모두 인프라를 코드 도구 Terraform으로 사용합니다.

이것은 HTTPS AWS 인증서(ACM)를 생성하고 DNS 검증을 사용하여 AWSRoute53의 내 도메인에서 이를 검증하는 방법입니다. 모두 인프라를 코드 도구 Terraform으로 사용합니다.

전제 조건


  • AWS CLI configured
  • Terraform
  • R53 Domain
  • AWS Terraform providers

  • 도메인에 대한 변수 추가




    variable "root_domain_name" {
      type    = string
      default = "helloworld.info"
    }
    


  • helloworld.info를 도메인
  • 으로 바꿉니다.

    Route53



    나는 이미 그렇게 수입된 루트 53을 가지고 있었다. 자세한 내용은 terraform 문서를 참조하십시오.

    resource "aws_route53_zone" "hello_world_zone" {
      name = var.root_domain_name
    }
    Create an ACM Certificate
    resource "aws_acm_certificate" "hello_certificate" {
      domain_name       = var.root_domain_name
      validation_method = "DNS"
      lifecycle {
        create_before_destroy = true
      }
    }
    


  • 이렇게 하면 변수로 설정한 도메인 이름에 대한 AWS ACM 인증서가 생성됩니다
  • .
  • 유효성 검사 모드를 DNS로 설정합니다
  • .

    DNS 레코드 추가




    resource "aws_route53_record" "hello_cert_dns" {
      allow_overwrite = true
      name =  tolist(aws_acm_certificate.hello_certificate.domain_validation_options)[0].resource_record_name
      records = [tolist(aws_acm_certificate.hello_certificate.domain_validation_options)[0].resource_record_value]
      type = tolist(aws_acm_certificate.hello_certificate.domain_validation_options)[0].resource_record_type
      zone_id = aws_route53_zone.hello_world_zone.zone_id
      ttl = 60
    }
    


  • 이렇게 하면 위 리소스의 DNS 레코드가 추가되고 이를 Route53 호스트 영역에 입력합니다. 수동으로 수행하는 것과 유사한 방식

  • 인증서 유효성 검사




    resource "aws_acm_certificate_validation" "hello_cert_validate" {
      certificate_arn = aws_acm_certificate.hello_certificate.arn
      validation_record_fqdns = [aws_route53_record.hello_cert_dns.fqdn]
    }
    


  • 도메인 이름으로 ACM 인증서를 검증합니다
  • .

    Terraform 실행




    terraform fmt
    terraform validate
    terraform plan
    terraform apply
    


    ACM 확인


  • AWS 콘솔 > 인증서 관리자에서
  • 상태가 발급됨이어야 합니다
  • .

    이것이 도움이 되길 바랍니다.

    질문이나 피드백은 댓글로 남겨주세요✌️

    행복한 코딩,

    아즈👨🏾‍💻

    학점



  • https://www.oss-group.co.nz/blog/automated-certificates-aws
    - https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route53_record
  • https://giphy.com/gifs/southparkgifs-26ueZwfsRvivkoHvO
  • https://app.diagrams.net/
  • https://www.terraform.io/
  • https://aws.amazon.com/
  • 좋은 웹페이지 즐겨찾기