我一直在尝试aws cloudfront sign包,我可以将signedURL工作到我的cloudfront,这意味着cloudfront已正确设置。但是当我尝试在我的cloudfront中使用签名的cookie时会出现问题。
不使用已签名的Cookie可能是什么原因?并使用邮递员将Cookie发送到Cloudfront链接以进行测试。
传递cookie值后
谢谢
答案 0 :(得分:2)
我找到答案,在选项参数中,我们必须根据documentation定义到期时间。
否则默认时间将在我使用的library中过期。
答案 1 :(得分:1)
您签名的Cookie正在根据上述信息运行。看起来您尝试访问的资源不存在或权限被拒绝。
如果您要访问S3存储桶,请确保将其设置为公共读取。如果您通过API网关访问,请确保您可以在没有云端的情况下访问这些URL。
答案 2 :(得分:1)
固定策略的资源网址中的通配符对我不起作用。我必须对通配符使用自定义策略才能工作。另外,请确保是否为HTTPS URL签名cookie,并且正在使用HTTPS URL测试请求(显而易见,但很容易搞乱)
答案 3 :(得分:0)
我有完全相同的错误响应。原来在CloudFront-Policy
Cookie中,我为资源设置了错误的路径。我不知道这对于CloudFront知道域甚至协议都很重要。
在我的情况下,我将策略资源设置为相对路径,即错误!见下文,我的意思是错误的:
path_to_my_resources/*
如果要通过资源为您生成的CloudFront域访问资源,则资源的外观如下:
http://somedomain.cloudfront.net/path_to_my_resources/*
或用于HTTPS
https://somedomain.cloudfront.net/path_to_my_resources/*
最后,如果要通过自己的域(CNAME)访问它,则应在资源属性中使用它:
https://example.com/path_to_my_resources/*
这是对我有用的最终政策声明:
{
"Statement":[
{
"Resource":"https://example.com/path_to_my_resources/*",
"Condition":{
"IpAddress":{
"AWS:SourceIp":"127.0.0.1/32"
},
"DateLessThan":{
"AWS:EpochTime":1554469015
}
}
}
]
}
这是链接,在这里您可以阅读有关使用自定义策略的签名Cookie的策略声明的更多信息:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-custom-policy.html#private-content-custom-policy-statement-signed-cookies-examples