Считывание объекта S3 из корзины S3 по подписанному URL-адресу из CloudFront - PullRequest
0 голосов
/ 13 ноября 2018

Как читать объект S3 из корзины S3 по подписанному URL-адресу из CloudFront.

  1. У меня есть S3 Bucket и у меня есть несколько файлов, т.е. объект S3.
  2. Объект S3 не является общедоступным.
  3. Я создаю подписанный URL S3 с помощью boto3, который доступен в течение 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

  4. Я создал CloudFront Distribution с настройками источника в корзину 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/*"
        }
    ]
}
...