CloudFront SaaS Manager - broken integration with zone apex DNS records / alias records

1

It appears the CloudFront SaaS Manager requires CNAME records to point to CloudFront, which is inefficient, doesn't support zone apex records, and has been long since solved by R53 and standard CloudFront via ALIAS records

For example, any use of ALIAS records will fail on certificate issuance for the distribution tenant:

aws route53 change-resource-record-sets \
  --hosted-zone-id ****  \
  --change-batch '{
    "Changes": [
      {
        "Action": "CREATE",
        "ResourceRecordSet": {
          "Name": "lab1.cloudshiftdev.io",
          "Type": "A",
          "AliasTarget": {
            "HostedZoneId": "Z2FDTNDATAQYW2",
            "DNSName": "****.cloudfront.net",
            "EvaluateTargetHealth": false
          }
        }
      }
    ]
  }'

aws cloudfront create-distribution-tenant \
  --distribution-id **** \
  --name business-id-12345 \
  --domains '[{
    "Domain": "lab1.cloudshiftdev.io"
  }]' \
  --parameters Name=business-id,Value=12345 \
  --connection-group-id **** \
  --managed-certificate-request '{
            "ValidationTokenHost": "cloudfront"
          }' \
  --enabled

This fails with An error occurred (InvalidArgument) when calling the CreateDistributionTenant operation: The provided Domain Name is not valid. Could not verify Domain Name ownership. It may not be pointing to a valid CloudFront resource. (same error doing this operation in the console).

Switching to a CNAME record works - to the extent that CNAME records are usable, which isn't the case for zone apex records.

Concerningly, the blog post "Reduce your operational overhead today with Amazon CloudFront SaaS Manager" grossly misrepresents this, showing zone apex domains (e.g. my-flower-store.com) as being DNS verified - but that could only have happened doing manual verification (modifying web server configuration or dropping verification token files), not using the touted "reduce operational overhead" that CF/ACM integration provides.

Standard CF distributions support - and recommend - DNS alias records (its required for zone apex, and offers improved performance); gross design flaw/regression to ship CF multi-tenant that doesn't support alias records / zone apex domains. And: aside from that single blog post, none of the CF documentation mentions using CNAME records (or not supporting alias records). Non-specific statements such as "Update your DNS records to route traffic from each domain to the CloudFront routing endpoint.".

Its not an option to use the manual verification methods offered by CF/ACM integration, as these require an existing service to host a well-known token file/redirect - for new domains there's nothing existing, which CF handles nicely (when its a CNAME record).

asked 25 days ago117 views
1 Answer
0

You've identified a significant limitation in the CloudFront SaaS Manager's DNS verification process. You're correct that the CloudFront SaaS Manager currently requires CNAME records for domain validation, which indeed presents challenges, especially for zone apex (root domain) records.

This requirement is indeed a step back from the standard CloudFront distribution setup, which supports and recommends using ALIAS records. ALIAS records are particularly useful for zone apex domains and offer improved performance compared to CNAME records.

The error message you received when trying to use an ALIAS record confirms this limitation. The CloudFront SaaS Manager is looking specifically for a CNAME record pointing to the CloudFront distribution, and it cannot validate domain ownership through ALIAS records.

You're also correct in pointing out the discrepancy between the blog post you mentioned and the actual capabilities of the service. If the blog post shows zone apex domains being verified, it's likely that manual verification methods were used, which goes against the "reduced operational overhead" that the CloudFront/ACM integration is supposed to provide.

This limitation does indeed seem like a design flaw or regression in the CloudFront multi-tenant offering. It's particularly problematic because it prevents the use of zone apex domains without manual intervention, which is a common requirement for many websites.

For now, if you need to use the CloudFront SaaS Manager with a zone apex domain, you would need to use manual verification methods. However, this workaround defeats part of the purpose of using the SaaS Manager, which is to simplify operations.

It would be advisable to provide feedback to AWS about this limitation, as supporting ALIAS records would significantly improve the usability and flexibility of the CloudFront SaaS Manager, especially for zone apex domains. I will also file a feedback on this as well.

Sources
Workaround for CNAME to external web sites at the zone apex | AWS re:Post
Choosing between alias and non-alias records - Amazon Route 53

profile picture
answered 25 days ago
AWS
SUPPORT ENGINEER
revised 24 days ago
AWS
SUPPORT ENGINEER
revised 24 days ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions