Запрещена ошибка Django Zappa 403 и нетто :: Err_Aborted - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь развернуть vuejs / frontend & django (python) / backend webapp с AWS Lambda , используя zappa . У меня есть все мои статические файлы в ведре S3. Всякий раз, когда я пытаюсь просмотреть его в браузере, страница полностью пуста, и я получаю следующие ошибки в консоли:

GET https://example.s3.amazonaws.com/static/webpack_bundles/static/js/app.3122315aa5664adf.js 403 (Запрещено)
GET https://example.s3.amazonaws.com/static/webpack_bundles/static/css/app.b161c29d6c5fa852dc6887b62955427e6.css net :: ERR_ABORTED
GET https://7exa5465ef451.execute -api.us-east-1.amazonaws.com / favicon.ico 403 ()

1 Ответ

0 голосов
/ 06 мая 2018

По умолчанию S3 не разрешает публичный доступ к своему контенту по соображениям безопасности. Есть несколько способов изменить это, либо установив публичные разрешения для каждого отдельного объекта, либо применив политику сегментов.

https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html содержит дополнительные сведения о том, как контролировать доступ к S3.

Конкретный пример политики публичного сегмента может выглядеть следующим образом:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"AddPerm",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/*"]
    }
  ]
}

Взято из: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-2

В целом, я бы порекомендовал предоставлять данные веб-сайта, например, через Cloudfront, и в этом случае вы можете специально разрешить Cloudfront доступ к данным S3 с помощью политики, такой как

{
   "Version":"2012-10-17",
   "Id":"PolicyForCloudFrontPrivateContent",
   "Statement":[
     {
       "Sid":" Grant a CloudFront Origin Identity access to support private content",
       "Effect":"Allow",
       "Principal":{"CanonicalUser":"79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be"},
       "Action":"s3:GetObject",
       "Resource":"arn:aws:s3:::example-bucket/*"
     }
   ]
}

Взято из: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...