CloudFront InvalidArgument, когда Origin DomainName является корзиной S3 - PullRequest
2 голосов
/ 05 мая 2020

Я не могу использовать ранее созданный сегмент S3 (это не сегмент S3 для веб-сайта!) Для одного из моих источников распространения CloudFront:

Error: error creating CloudFront Distribution: InvalidArgument: The parameter Origin DomainName does not refer to a valid S3 bucket.
    status code: 400, request id: xxxx

  on modules/cloudfront/main.tf line 20, in resource "aws_cloudfront_distribution" "app":
  20: resource "aws_cloudfront_distribution" "app" {

Примечание: я успешно создал распространение CloudFront с источник, использующий тот же сегмент S3 через веб-консоль для проверки сегмента S3.

resource "aws_s3_bucket" "static" {
    bucket = "static.any-domain.tld"
    acl = "public-read"
}

resource "aws_cloudfront_distribution" "app" {
    enabled         = true
    is_ipv6_enabled = true
    comment         = "k8s test"

    # without this origin, cloudfront distribution is successfully created
    origin {
        # tried different dns domain names:
        # static.any-domain.tld.s3.eu-west-1.amazonaws.com
        # or static.any-domain.tld.s3-eu-west-1.amazonaws.com
        # or static.any-domain.tld.s3.amazonaws.com
        domain_name = aws_s3_bucket.static.bucket_regional_domain_name
        origin_id = "S3-${aws_s3_bucket.static.bucket}/any/path"
        origin_path = "/any/path"

        # tried with and without the following:
        s3_origin_config {
            origin_access_identity = "origin-access-identity/cloudfront/${aws_cloudfront_distribution.app.id}"
        }
    }

    origin {
        domain_name = "any-valid-stuff.eu-west-1.elb.amazonaws.com"
        origin_id   = "ELB-any-valid-stuff"

        custom_origin_config {
            origin_read_timeout = 30
            origin_keepalive_timeout = 30
            http_port = 80
            https_port = 443
            origin_protocol_policy = "http-only"
            origin_ssl_protocols = ["TLSv1"]
        }
    }
...
}
...