标签: amazon-cloudfront

Cloudfront CNAME与DNS CNAME

我已经设置了一个发行版,但我对可以在Cloudfront中设置的CNAME的目的感到有点困惑.假设我指定的Cloudfront域是d27fwrff25jcfdafa.cloudfront.net,我可以使用AWS管理控制台分配"nice"CNAME static.example.com.

我不明白为什么我想这样做.为什么我不在我的网站DNS记录中创建CNAME并直接指向d27fwrff25jcfdafa.cloudfront.net而不是在Cloudfront中创建CNAME?这就是我所做的,它完美无缺,但我不喜欢不理解的东西.

或者,如果我仅使用管理控制台创建CNAME,那么我是否需要将我的名称服务器设置为亚马逊,以便可以正确解析CNAME?我在文档中找不到任何提及的步骤,所以我想我必须遗漏一些东西!

谢谢你的帮助,保罗.

cname amazon-web-services amazon-cloudfront

21
推荐指数
1
解决办法
8114
查看次数

设置默认缓存控制并为整个S3存储桶/ CloudFront过期

我有一个亚马逊S3桶,里面有大约300K商品,供大型网站使用.我想设置从S3存储桶中提供的所有CloudFront对象的到期时间,以便用户的计算机将它们缓存在浏览器中.是否有一种简单的方法可以对存储桶中当前的所有s3对象设置缓存控制,最重要的是为存储桶设置默认值,以便添加的任何新项目也可以获得过期和缓存控制标头,或者可以使用CloudFront完成此操作?

到目前为止,我已经阅读了许多AWS文档但却一无所获:

caching amazon-s3 amazon-web-services amazon-cloudfront

21
推荐指数
1
解决办法
1万
查看次数

使用IAM限制对特定Cloudfront分发的访问

我正在尝试将特定IAM用户的访问权限授予特定的Cloudfront分发版.我试过这个政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1428659042000",
            "Effect": "Allow",
            "Action":["cloudfront:*"],
            "Resource": [ "arn:aws:cloudfront:E3J2B3GMZI73G0" ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

AWS-IAM策略检查程序表明arn无效.根据有关Cloudfront的IAM限制的文档,AWS未指出任何限制对特定分发的访问的示例.他们总是指:

"Resource":"*"
Run Code Online (Sandbox Code Playgroud)

关于如何让特定用户访问具体Cloudfront Distribution的想法?

amazon-web-services amazon-cloudfront amazon-iam

21
推荐指数
1
解决办法
5456
查看次数

AWS cloudfront不会更新S3中的文件更新

我在S3上使用我的文件在cloudfront中创建了一个发行版.它工作正常,我的所有文件都可用.但今天我在S3上更新了我的文件并试图通过Cloudfront访问它们,但它仍然提供了旧文件.

我错过了什么?

amazon-s3 amazon-web-services amazon-cloudfront

21
推荐指数
7
解决办法
1万
查看次数

AWS Cloudfront重定向到S3存储桶

我创建了一个用于静态网站的cloudfront发行版.S3是原始服务器.现在,如果我们访问cloudfront url,它会重定向到S3位置.

d2s18t7gwlicql.cloudfront.net或test.telekha.in

在浏览器中显示 https://telekha-test-www.s3.ap-south-1.amazonaws.com/index.html#/dashboard

我期待https://test.telekha.in/#/dashboard

如果我通过curl 访问https://test.telekha.in,它将返回我的index.html文档

如果我通过curl 访问http://test.telekha.in它会返回

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>CloudFront</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但在浏览器中,http和https都重定向到https://telekha-test-www.s3.ap-south-1.amazonaws.com/index.html#/

请让我知道如何解决此问题.

amazon-s3 amazon-web-services amazon-cloudfront amazon-route53

21
推荐指数
4
解决办法
1万
查看次数

无法删除AWS Lambda @ Edge副本

这个问题已经存在,但我认为它会对SO产生更大的影响.

我创建了一个AWS Lambda @ Edge函数,以便在Cloudfront URL到达Origin之前重写它.
AWS Lambda @ Edge函数在发布时会自动复制到所有区域,因此我对每个区域都看到这一点并不感到惊讶:

在此输入图像描述

这里开始出现问题:
我删除了Lambda @ Edge,因为它是一个测试,我想开始一个全新的,但复制品不会同时被删除.
当时没什么大不了的,我以为我可以创建一个新的Lambda @ Edge功能.
但你不能,因为Cloudfront触发器一次只能使用一个函数(因为副本使用它,你不能创建一个新函数).
而且,触发器也不能删除.

所以现在我无法在任何地方使用Lambda @ Edge复制品,我无法删除,也无法创建类似的复制品.


TL; DR

  • 我使用CloudFront触发器创建了Lambda @ Edge
  • 我删除它以创建一个新的(类似的)
  • 现在还有一个复制品
  • 我无法删除副本
  • 我无法创建新的Lambda @ Edge,因为副本已经"正在使用"触发器(我无法删除)

我很感激能得到这个
弗朗索瓦的 帮助


编辑:

我绝对认为这是一个错误,因为在我的副本页面中,主ARN的链接以404响应.

lambda amazon-web-services amazon-cloudfront aws-lambda aws-lambda-edge

21
推荐指数
4
解决办法
4768
查看次数

为 CloudFront 日志启用 S3 ACL 访问

我尝试做的是通过AWS控制台为CloudFront发行版启用标准日志记录,如下图所示:

AWS 控制台

我设置了以下 S3 存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::931426637260:user/relu"
            },
            "Action": [
                "s3:GetBucketAcl",
                "s3:PutBucketAcl"
            ],
            "Resource": "arn:aws:s3:::[...]"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

“阻止所有公共访问”已关闭。

不过,我不断收到此错误:

您为 CloudFront 日志指定的 S3 存储桶未启用 ACL 访问:[...].s3.amazonaws.com

即使我尝试以 root 用户身份启用日志记录,也会收到此错误。

有人知道可能出了什么问题吗?

amazon-s3 amazon-web-services amazon-cloudfront

21
推荐指数
2
解决办法
2万
查看次数

防止Amazon Cloudfront热链接

我使用Amazon Cloudfront托管我所有网站的图像和视频,以便更快地为我的用户提供服务,这些用户遍布全球.我还将非常积极的前向缓存应用于Cloudfront上托管的元素,设置Cache-Controlpublic, max-age=7776000.

我最近发现我的烦恼是第三方网站正在与我的Cloudfront服务器进行热链接,以便在未经授权的情况下在自己的页面上显示图像.

我已经配置.htaccess为阻止我自己的服务器上的热链接,但是没有找到在Cloudfront上执行此操作的方法,这似乎本身不支持该功能.而且,令人讨厌的是,亚马逊的Bucket Policies(可用于防止热链接)仅对S3产生影响,它们对CloudFront分发没有影响[ link ].如果您想利用这些政策,您必须直接从S3提供内容.

在我的服务器日志中搜索hotlinkers并手动更改文件名并不是一个真实的选择,尽管我一直在这样做以结束最明显的攻击.

欢迎大家提出意见.

amazon hotlinking amazon-cloudfront

20
推荐指数
5
解决办法
1万
查看次数

AWS - 用于创建S3存储桶和分发的云编队脚本

我正在使用脚本开发AWS创建存储桶和分发.我已经在AWS云形成控制台中创建了一个脚本并运行堆栈模板脚本.

我正在使用脚本和规范ID为S3存储桶创建bucketpolicy.创建存储桶策略后,我想在脚本中动态地将其分配给"OriginAccessIdentity".我想将桶策略生成的id添加到"OriginAccessIdentity"属性.

如何实现这一功能?

脚本:

{
    "AWSTemplateFormatVersion" : "2010-09-09",

    "Description" : "AWS CloudFormation Template S3_With_CloudFront_Distribution",

    "Parameters" : {
        "bucketname" : {
          "Type" : "String",
          "Description" : "test"          
        },

        "cannonicalid" : {
          "Type" : "String",
          "Description" : "234213523145314534523452345234523452345"       
        }
    },

     "Conditions" : {
        "CreateProdResources" : {"Fn::Equals" : [{"Ref" : "EnvType"}, "dev"]}
    },

    "Resources" : {
        "testbucket" : {
          "Type" : "AWS::S3::Bucket",
          "Properties" : {      
            "BucketName" : { "Ref" : "bucketname" },          
            "WebsiteConfiguration" : {
               "IndexDocument" : "index.html"              
            }
          }
        },


        "mybucketpolicy" : …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cloudfront

20
推荐指数
3
解决办法
7841
查看次数

为什么不在CORS未命中设置'Vary:Origin'响应?

在发出CORS请求时,如果请求的Origin位于允许的源列表中,则响应包含Access-Control-Allow-Origin标头和Vary: Origin标头.

Vary:Origin告诉CDNs等,响应是根据请求者的Origin头值协商的.

问题是(我已经测试了领先的CDN提供商),如果请求者在他们的请求中没有提供Origin头,或者Origin值不是允许的那个,则响应不包括变化:起源于回应.

如果CDN预先形成CORS总是在响应头中响应Vary:Origin吗? 如果不是,CDN会认为它可以对任何Origin值提供相同的响应.然后,通过使用随机原始值进行许多请求,可以填充CDN缓存.

cdn cors amazon-cloudfront azure-cdn

20
推荐指数
1
解决办法
1万
查看次数