如何从CloudFront通过签名url从S3 bucket读取S3对象。
-
我有S3桶和一些文件,即S3对象。
-
-
我用boto3创建了S3签名的url,有效时间为3600秒。它工作得很好。3600秒后,签名的url无效,这是正确的。
S3 Signed URL: https://s3.amazonaws.com/BucketName/2018-11-01_19_43_31.pdf?AWSAccessKeyId=XXXXX&Signature=XXXXXX&x-amz-security-token=xxxxxx&Expires=XXXXX
-
我创建了CloudFront发行版,其原始设置为S3 bucket。
CloudFront endpoint: https://qwqwqwqwqw.cloudfront.net/
-
我创建签名的url(步骤3)并替换为CloudFront分发的端点。
https://qwqwqwqwqw.cloudfront.net/2018-11-01_19_43_31.pdf?AWSAccessKeyId=XXXXX&Signature=XXXXXX&x-amz-security-token=xxxxxx&Expires=XXXXX
但3600秒后我也能
下载文件。测试用例是-不要下载S3对象。
以下是我的bucket策略:
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity $SDSDSFDAs$"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}