статический сайт работает в моем экземпляре S3, но с облачным фронтом я получаю ошибку 403 AccessDenied - PullRequest
1 голос
/ 05 июня 2019

Я слежу за этим уроком о том, как развернуть статический сайт в s3 и облачном фронте.

https://miketabor.com/host-static-website-using-aws-s3/

Я создал мое ведро S3, установил его как общедоступный и затем загрузил свойфайлы, сайт вроде

http://www.yourdomain.com.s3 -website-us-east-1.amazonaws.com

работает как положено, пока все хорошо, теперь я создалэкземпляр cloudfront, следуя руководству, моя конфигурация выглядит следующим образом

Distribution ID
EMYC0...

ARN
arn:aws:cloudfront::22172726..981:distribution/EMYC0R..AP79B

Log Prefix
log_

Delivery Method
Web

Cookie Logging
Off

Distribution Status
Deployed

Comment
-
Price Class
Use All Edge Locations (Best Performance)

AWS WAF Web ACL
-

State
Enabled

Alternate Domain Names (CNAMEs)
dev.myurl.com

SSL Certificate
*.myurl.com (d89746a9-9d6d-45a9-b53c-ba24..36)

Domain Name
d1l63dvaobxx.cloudfront.net

Custom SSL Client Support
Clients that Support Server Name Indication (SNI) - (Recommended)

Security Policy
TLSv1.1_2016

Supported HTTP Versions
HTTP/2, HTTP/1.1, HTTP/1.0

IPv6
Enabled

Default Root Object
index.html (originally this was empty but I've changed this to index through not works neither)

Last Modified
2019-06-04 21:59 UTC-4

Log Bucket
www.dev.mybucketxx.com.s3.amazonaws.com

после проверки этой статьи

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html#DefaultRootObjectHow

Я предположил, что проблема заключалась в корневом объекте по умолчанию, который не был установлен, поэтому я изменил это на index.html (index.html существует в корне моей корзины s3)

, но я всегда получаю эту ошибку

<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>06C89B31EE8CA0A5</RequestId><HostId>NGWaHdZx0EbbzLwVPOMx5DAY6lRgmPBCCInTQeab...IOSMStfnI6pwmu4QpDYU3R0EPNk=</HostId></Error>

Iдумаю, что проблема должна быть в облачном фронте, потому что я могу получить отличный доступ к своему S3, но я не могу найти, что может быть проблемой здесь

это моя политика корзины

{
    "Version": "2008-10-17",
    "Statement": [
        {
           "Sid": "AllowPublicRead",
           "Effect": "Allow",
           "Principal": {
               "AWS": "*"
           },
           "Action": "s3:GetObject",
           "Resource": "arn:aws:s3:::xxdomain.com/*"
       }
   ]
}

любойПомощь будет признателен, большое спасибо, ребята!

1 Ответ

1 голос
/ 05 июня 2019

Это, вероятно, будет связано с тем, что вы выбрали контейнер S3 из автоматического заполнения раскрывающегося меню, когда вы определили свое происхождение. Это то, что вы должны выбрать, если хотите обслуживать статические файлы только через CloudFront, нет, если вы хотите обслуживать статический веб-сайт с S3 .

.

Вместо того, чтобы выбирать автоматически заполненную корзину S3 при создании своего источника, вы должны вставить URL своего веб-сайта S3.

Что вам нужно сделать, это:

1) Перейдите в корзину S3> Свойства> Статический хостинг веб-сайта и скопируйте URL-адрес веб-сайта ( примечание: это отличается от конечной точки сегмента S3 ):

* +1012 *enter image description here

2) Зайдите в источник CloudFront и вставьте этот URL

enter image description here

3) Это изменит ваше происхождение с S3Origin (только для статических файлов) на CustomOrigin

enter image description here* * 1030

Как только это изменение будет распространено (около 15 минут), вы сможете попасть на свой веб-сайт через свое доменное имя CloudFront.

...