代码之家  ›  专栏  ›  技术社区  ›  Anna Berezko

AWS匹配不支持的TLD域名和S3 bucket静态网站

  •  0
  • Anna Berezko  · 技术社区  · 1 年前

    我创建了aws S3 bucket作为静态网站。一切都很完美。我有这样的链接:

    http://my-bucket-name.s3-website-us-east-1.amazonaws.com
    

    我有我自己的域名由当地注册商注册,它已经工作:

    my-site.kiev.ua
    

    此域具有一些DNS服务器设置

    Name-server-1 ns1.servername.com
    Name-server-2 ...
    Name-server-3 ...
    

    据我所知,我无法将乌克兰的基夫乌阿域名转移到aws。当我尝试时,我得到了按摩:

    UnsupportedTLD aws
    

    那么我如何将这个域与aws S3 bucket静态网站相匹配?我该怎么办?

    0 回复  |  直到 1 年前
        1
  •  1
  •   Caldazar    1 年前

    您不必在AWS中拥有DNS,就可以通过您的域为网站提供服务。

    更简单的选项: 在DNS提供商处创建一个CNAME记录,并将其指向您拥有的S3存储桶的网站URL。不是100%确定,但您可能有SSL问题,因为S3网站没有HTTPS

    更好的选择:

    1. 为您的网站创建ACM证书(您需要在DNS提供商中添加一个记录以进行确认)
    2. 创建一个CloudFront分发,其中Origin指向您的S3存储桶。
    3. 将分发的备用域名设置为 my-site.kiev.ua
    4. 复制AWS生成的CloudFront Distribution DNS名称,并在您的DNS提供商中为添加CNAME记录 我是基辅人 指向此DNS名称
        2
  •  0
  •   Anna Berezko    1 年前

    这就是http协议的答案。 创建具有公共访问权限的S3存储桶my-site.kiev.ua,并添加S3存储桶策略(用您的实际存储桶名称替换“[YOUR_bucket_NAME]”):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
           "Sid": "PublicReadGetObject",
            "Effect": "Allow", 
            "Principal": "*", 
            "Action": "s3:GetObject", 
            "Resource": "arn:aws:s3:::[YOUR_BUCKET_NAME]/*" 
      } ] 
    }
    

    然后保存并设置静态网站托管为true。 创造 www.my-site.kiev.ua bucket没有完全访问权限,只需在静态网站托管部分向上一个bucket添加重定向设置即可。

    然后前往53号公路->托管区域->创建主体分区。名称my-site.kiev.ua(公共托管区) 您将看到NS和SOA类型的新字段。将NS值/路由流量中的4个值复制到并逐字段将它们与您的DNS服务器设置匹配(不在aws中,在域提供商端)。 然后按

    Create record -> Simple routing -> Define simple record -> Match with S3 bucket my-site.kiev.ua -> Create records
    

    最后为www连接创建相同的记录