Terraform & AWS: сертификат ACM не подтвержден - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь создать сертификат 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. Может быть? Я оставлю это на пару дней и посмотрю, не проблема ли это с временем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...