반응형
테라폼 AWS 인증서 생성 및 유효성 검사 방법
여기에 있는 Terraform 설명서의 예를 따라 Terraform을 사용하여 AWS 인증서를 만들고 검증하려고 합니다:
내 Terform 파일은 다음과 같습니다:
resource "aws_acm_certificate" "vpn_server" {
domain_name = "stuff.mine.com"
validation_method = "DNS"
tags = {
Name = "certificate"
Scope = "vpn_server"
Environment = "vpn"
}
}
resource "aws_acm_certificate_validation" "vpn_server" {
certificate_arn = aws_acm_certificate.vpn_server.arn
validation_record_fqdns = [for record in aws_route53_record.my_dns_record_vpn_server : record.fqdn]
timeouts {
create = "2m"
}
}
resource "aws_route53_zone" "my_dns" {
name = "stuff.mine.com"
tags = {
name = "dns_zone"
}
}
resource "aws_route53_record" "my_dns_record_vpn_server" {
for_each = {
for dvo in aws_acm_certificate.vpn_server.domain_validation_options : dvo.domain_name => {
name = dvo.resource_record_name
record = dvo.resource_record_value
type = dvo.resource_record_type
}
}
allow_overwrite = true
name = each.value.name
records = [each.value.record]
ttl = 60
type = each.value.type
zone_id = resource.aws_route53_zone.my_dns.zone_id
}
문제는 검증을 실행할 때 항상 시간 초과에 도달하고 다음 오류 메시지와 함께 실패한다는 것입니다:
aws_acm_certificate.vpn_server: Creating...
aws_acm_certificate.vpn_server: Creation complete after 8s [id=arn:aws:acm:eu-west-2:320289993971:certificate/7e859491-141f-49d5-b50e-c44cf4e1db4e]
aws_route53_zone.my_dns: Creating...
aws_route53_zone.my_dns: Still creating... [10s elapsed]
aws_route53_zone.my_dns: Creation complete after 52s [id=Z09112516IIP4OEAIIQ7]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Creating...
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [10s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [20s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [30s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [40s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Still creating... [50s elapsed]
aws_route53_record.my_dns_record_vpn_server["stuff.mine.com"]: Creation complete after 58s [id=Z09112516IIP4OEAIIQ7__ebd2853fcbfc7cc8bd6582e65d940d54.stuff.mine.com._CNAME]
aws_acm_certificate_validation.vpn_server: Creating...
aws_acm_certificate_validation.vpn_server: Still creating... [10s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [20s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [30s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [40s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [50s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m0s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m10s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m20s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m30s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m40s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [1m50s elapsed]
aws_acm_certificate_validation.vpn_server: Still creating... [2m0s elapsed]
╷
│ Error: Error describing created certificate: Expected certificate to be issued but was in state PENDING_VALIDATION
│
│ with aws_acm_certificate_validation.vpn_server,
│ on main.tf line 61, in resource "aws_acm_certificate_validation" "vpn_server":
│ 61: resource "aws_acm_certificate_validation" "vpn_server" {
│
╵
인증서 유효성 검사를 완료하기 위해 누락된 항목이 무엇인지 알려주실 수 있습니까?
도메인 유효성 검사 레코드는 올바르게 위임된 공용 영역에 있어야 합니다. 따라서 만약 당신이 존을 소유하고 그 다음에 존을 만들고 싶다면, 당신은 당신이 여기서 하지 않고 이미 구성된 존을 사용하지 않는 존의 NS 서버에 대한 그 포인트에 대한 기록을 설정해야 할 것이다.
그렇지 않으면 해당 영역에 레코드가 생성되지만 해당 영역이 제대로 위임되지 않으므로 해당 레코드를 해결할 수 없습니다. 이러한 문제를 직접 해결하거나 등의 외부 해결 도구를 사용하여 테스트할 수 있어야 합니다.
여기서는 고려해야 할 사항이 많을 수 있지만 생성하려는 최종 레코드(따라서 인증서를 원하는 웹 서버/로드 밸런서와 ACM 도메인 유효성 검사 레코드를 가리키는 레코드)가 포함된 영역을 별도로 설정한 다음 를 사용하여 영역을 참조할 수 있습니다rds는 거기서 생성된다.
은 이를 위해 특별히 설계되었습니다. 출처:
Usage with Route53 DNS validation (recommended)
module "acm" {
source = "terraform-aws-modules/acm/aws"
version = "~> 4.0"
domain_name = "my-domain.com"
zone_id = "Z2ES7B9AZ6SHAE"
subject_alternative_names = [
"*.my-domain.com",
"app.sub.my-domain.com",
]
wait_for_validation = true
tags = {
Name = "my-domain.com"
}
}
반응형
'개발하자' 카테고리의 다른 글
Typescript에서 비동기 요청의 응답으로 설정되는 변수를 초기화하는 방법은 무엇입니까? (0) | 2023.02.25 |
---|---|
Svelte SPA 라우터 - 잘못된 구성 요소 개체 오류 (0) | 2023.02.24 |
터라폼 설정 - 원격 상태 s3 - 잘못된 매개 변수 유효성 검사 오류 (0) | 2023.02.23 |
애니메이션 백드롭 필터 플러터 (0) | 2023.02.22 |
사용자가 Verification Code 입력 플러터에서 입력을 삭제하는 경우를 아는 방법 (0) | 2023.02.22 |