【问题标题】:Terraform can't create a CloudFront's origin with a static S3 website endpointTerraform 无法使用静态 S3 网站端点创建 CloudFront 的源
【发布时间】:2019-07-29 03:33:58
【问题描述】:

我有一个使用两个模块的计划:bucket-websitecloudfront-website

bucket 模块中的其他内容(策略等)包括以下资源用于创建bucket 并将其用作网站:

resource "aws_s3_bucket" "bucket-website" {
  bucket = "${var.bucket_name}"
  region = "${var.region}"

  website {
    index_document = "index.html"
  }

  tags = "${local.common_tags}"
}

此模块还具有以下输出:

output "website_endpoint" {
  value = "${aws_s3_bucket.bucket-website.website_endpoint}"
}

cloudfront-website 模块具有包含所有这些云端属性(IP、缓存内容等)的资源,但相关部分是:

resource "aws_cloudfront_distribution" "distribution" {
.....
  origin {
    domain_name = "${var.domain_name}"
    origin_id   = "${var.domain_name}"
  }
.....
}

计划中对cloudfront模块的调用传递以下参数:

domain_name = "${module.bucket-website.website_endpoint}"

我可以确认该值是正确的,因为在terraform apply的日志中可以看到:

  origin.123456.domain_name: "" => "foo.s3-website-eu-west-1.amazonaws.com"
  origin.123456.origin_id:   "" => "foo.s3-website-eu-west-1.amazonaws.com"

如果我仅使用 AWS 控制台进行此设置,我将使用哪个端点,即获取存储桶的静态 Web 端点(不同于标准存储桶端点)并将其用作Cloudfront 的起源。

但是,出于某种原因,Terraform 抱怨该域名:

 * aws_cloudfront_distribution.distribution: error creating CloudFront Distribution: InvalidArgument: The parameter Origin DomainName does not refer to a valid S3 bucket.

而且我已经没有想法了。一切看起来都很好。端点是正确的。我检查了其他示例,他们也使用${aws_s3_bucket.<BUCKET_RESOURCE_NAME>.website_endpoint},所以老实说我不明白出了什么问题。

【问题讨论】:

    标签: amazon-web-services terraform terraform-provider-aws


    【解决方案1】:

    刚刚找到解决方案。通过 CloudFront 为 S3 网站提供服务时,必须将以下代码添加到 origin 部分,即使其他地方没有指定这样做。

        custom_origin_config {
          http_port              = "80"
          https_port             = "443"
          origin_protocol_policy = "http-only"
          origin_ssl_protocols   = ["TLSv1", "TLSv1.1", "TLSv1.2"]
        }
    

    【讨论】:

    • 如何解决创建源访问身份的问题,以便只有 CloudFront 发行版可以访问您的 S3 存储桶?
    猜你喜欢
    • 1970-01-01
    • 2014-06-10
    • 2017-06-24
    • 2019-11-17
    • 2018-08-05
    • 1970-01-01
    • 2017-10-03
    • 2021-05-21
    • 2022-01-08
    相关资源
    最近更新 更多