通过CloudFront的签名URL从S3存储桶中读取S3对象

时间:2018-11-13 11:21:01

标签: amazon-web-services amazon-s3 amazon-cloudfront

如何通过CloudFront的签名URL从S3存储桶中读取S3对象。

  1. 我有S3存储桶,并且有一些文件,即S3对象。
  2. S3对象不是公共的。
  3. 我通过boto3创建S3签名的url,该URL可用3600秒。一切正常。 3600秒后,所输入的网址无效。

    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

  4. 我创建了带有Front Settings的CloudFront分配到S3存储桶。

    CloudFront endpoint: https://qwqwqwqwqw.cloudfront.net/

  5. 我创建签名的URL(步骤3),并替换为CloudFront Distribution的端点。

    https://qwqwqwqwqw.cloudfront.net/2018-11-01_19_43_31.pdf?AWSAccessKeyId=XXXXX&Signature=XXXXXX&x-amz-security-token=xxxxxx&Expires=XXXXX

我能够下载S3对象。 但是在3600秒之后     下载文件。测试用例是-不要下载S3对象。

以下是我的存储桶策略:

{
    "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/*"
        }
    ]
}

0 个答案:

没有答案