Если я отключу статический доступ веб-сайта к своей корзине S3 example.com, когда я подключу его к CloudFront с помощью OAI, смогу ли я по-прежнему получать доступ к содержимому корзины S3 через CloudFront через HTTPS? То есть, обеспечивает ли CloudFront «статический доступ к веб-сайту» для моей корзины S3, даже если я отключил статический хостинг веб-сайтов для корзины?
Вы можете использовать любую корзину для размещения контента, доставляемого через Cloudfront. , он не должен быть настроен как публичный веб-хостинг. Если он настроен так, что OAI только позволяет получить доступ к корзине, пользователям будет запрещен прямой доступ к контенту.
В облачной информации это может выглядеть следующим образом:
WebsiteContentBucket:
Type: AWS::S3::Bucket
DeletionPolicy: Delete
Properties:
BucketName: <bucketname here>
WebsiteContentBucketPolicy:
Type: AWS::S3::BucketPolicy
Properties:
Bucket:
Ref: WebsiteContentBucket
PolicyDocument:
Statement:
- Action:
- "s3:GetObject"
Effect: "Allow"
Resource:
Fn::Sub: arn:aws:s3:::${WebsiteContentBucket}/*
Principal:
AWS:
Fn::Sub: "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ${WebsiteCloudFrontOAI}"
WebsiteCloudFrontOAI:
Type: AWS::CloudFront::CloudFrontOriginAccessIdentity
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: your comment here
При настройке сегмента S3 для статического хостинга веб-сайтов S3 позволяет мне установить «правила маршрутизации», например, перенаправить файл foo.html в bar.html. Если я отключу статический хостинг веб-сайтов для своей корзины S3, как мне настроить перенаправления? Обладает ли CloudFront похожими правилами маршрутизации, которые я могу настроить, или есть другой способ сделать это?
Вы перемещаете маршрутизацию в Cloudfront вместо S3. Поэтому, если вы хотите, чтобы /foo.html возвращал bar.html, вы создаете другой источник в облачном фронте. Вы можете иметь несколько источников, указывая на разные сегменты, серверы приложений и т. Д.