Я пытаюсь создать сертификат ACM для применения к моему Amazon ALB с использованием Terraform 0.12.0. Я могу создать свой ALB без сертификата без проблем. Весь стек инфраструктуры построен и развернут, как и ожидалось. Теперь я добавил следующий код, чтобы создать запись проверки Route 53, запросить сертификат и назначить его новому слушателю ALB:
ресурс "aws_route53_zone" "main" {
name = "$ {var.zone_name}"
}
resource "aws_route53_record" "validation" {
name = "${aws_acm_certificate.main.domain_validation_options.0.resource_record_name}"
type = "${aws_acm_certificate.main.domain_validation_options.0.resource_record_type}"
zone_id = "${aws_route53_zone.main.zone_id}"
records = ["${aws_acm_certificate.main.domain_validation_options.0.resource_record_value}"]
ttl = "60"
}
resource "aws_acm_certificate_validation" "main" {
certificate_arn = "${aws_acm_certificate.main.arn}"
validation_record_fqdns = "${aws_route53_record.validation.*.fqdn}"
}
resource "aws_alb_listener" "front_end_tls" {
load_balancer_arn = "${aws_alb.main.id}"
port = "443"
protocol = "HTTPS"
ssl_policy = "ELBSecurityPolicy-2016–08"
certificate_arn = "${var.certificate_arn}"
default_action {
target_group_arn = "${aws_alb_target_group.main.id}"
type = "forward"
}
}
Однако, когда я запускаю terraform apply
, он застревает при проверке сертификата. Я вижу такие сообщения:
module.dns.aws_acm_certificate_validation.main: Still creating... [38m21s elapsed]
Я позволил коду работать более 45 минут, пока в конце концов не увидел сообщение об ошибке:
Error: Error creating LB Listener: SSLPolicyNotFound: SSL policy 'ELBSecurityPolicy-2016–08' not found
status code: 400, request id: a5f052c1-86df-11e9-993c-f99526fa9bba
on alb/main.tf line 25, in resource "aws_alb_listener" "front_end_tls":
25: resource "aws_alb_listener" "front_end_tls" {
Error: Expected certificate to be issued but was in state PENDING_VALIDATION
on dns/main.tf line 38, in resource "aws_acm_certificate_validation" "main":
38: resource "aws_acm_certificate_validation" "main" {
Если я войду в консоль, я увижу запрос сертификата все еще в состоянии Pending Validation. Я также вижу запись проверки маршрута 53, созданную, как и ожидалось.
Почему этот запрос сертификата никогда не обрабатывается и не применяется? Я что-то упустил в своем коде Terraform?
ОБНОВЛЕНИЕ: Когда я использую существующую зону Route 53 (с другим именем домена, отличным от того, которое я пытаюсь описать выше) и ссылаюсь на него как на источник данных в моем aws_route53_record
, он работает с нет проблем. Доменное имя, которое я пробовал в этом тесте, было только что куплено сегодня по маршруту 53, поэтому мне интересно, связано ли это с моей проблемой. Я не могу выполнить nslookup ни для одной из записей, хотя вижу их в консоли Route 53. Может быть? Я оставлю это на пару дней и посмотрю, не проблема ли это с временем.