簡體   English   中英

驗證來自 AWS Terraform 中 2 個不同賬戶的證書

[英]Validate the certificates from 2 different accounts in AWS Terraform

我有一個個人(開發)帳戶,證書是基於以下模塊創建的。 驗證發生在 root 帳戶(即 prod 帳戶)中,所以當我 go 到 root 帳戶的路由 53 並添加域條目(創建記錄)並復制域的 CVALUE 並將其粘貼到那里時,然后我的個人賬戶證書得到驗證並從“待驗證”更改為“已發布”。

我希望下面的 tf 將條目(域名和 CVALUE)添加到 root 帳戶,以便在 terraform 應用時驗證證書。 現在,我正在手動將 CVALUE 條目添加到根帳戶以進行驗證。

public_dns.tf

resource "aws_route53_zone" "public" {
  name = var.domain
}

resource "aws_acm_certificate" "elb_cert" {
  domain_name = var.domain
  subject_alternative_names = ["*.${var.domain}"]
  validation_method = "DNS"
}

resource "aws_route53_record" "cert_validation" {
  for_each = {
    for dvo in aws_acm_certificate.elb_cert.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 = aws_route53_zone.public.zone_id
}

resource "aws_acm_certificate_validation" "elb_cert" {
  count = var.certify_domain ? 1 : 0
  certificate_arn = aws_acm_certificate.elb_cert.arn
  validation_record_fqdns = [for record in aws_route53_record.cert_validation : record.fqdn]
}

要完成您想要的,您將需要使用多個 aws 提供商(別名)。 一個用於根帳戶,一個用於開發帳戶,因為您將在兩個不同的帳戶中管理資源。

它看起來像這樣:

provider "aws" {
  alias  = "prod"
  ***
}

provider "aws" {
  alias  = "dev"
  ***
}

resource "aws_******"{
  provider = aws.prod
  ***
  ***
}

resource "aws_******"{
  provider = aws.dev
  ***
  ***
}

官方文檔

關於它的中篇文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM