Почему я получаю AccessDenied при развертывании Gatsby на S3? - PullRequest
0 голосов
/ 16 февраля 2019

Я следую этому руководству по развертыванию в корзину S3 с помощью Gatsby.

Если я запускаю aws s3 ls mybucketname.com,

, я получаю единственный загруженный файл: 2019-02-15 15:53:58 477 favicon-16x16.png

Однако, если я запускаю npm run deploy,

, я получаю эту ошибку:

> gatsby-plugin-s3 deploy

✖ Failed.
AccessDenied: Access Denied

Вот соответствующий код в моем gatsby-config.js:

plugins: [
{
     resolve: `gatsby-plugin-s3`,
     options: {
         bucketName: 'mybucketname.com'
     },
 },

Вот политика IAM, прикрепленная к пользователю, которого я создал в AWS:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "ListObjectsInBucket",
        "Effect": "Allow",
        "Action": [
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::mybucketname.com"
        ]
    },
    {
        "Sid": "AllObjectActions",
        "Effect": "Allow",
        "Action": "s3:*Object",
        "Resource": [
            "arn:aws:s3:::mybucketname.com/*"
        ]
    }
]
}

Могу ли я запустить что-то еще, чтобы определить, откуда происходит эта ошибка?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Я столкнулся с той же проблемой, и она была вызвана тем, что я еще не настроил корзину S3 для доступа к веб-сайту, которая необходима для размещения веб-сайта: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html

Технически это не нужно gatsby-plugin-s3 , поскольку загрузка выполняется через AWSCLI с использованием предоставленных учетных данных IAM;но я предполагаю, что просто перечисление сегмента перед началом загрузки или другая операция, предназначенная для публичного выполнения, выполнялась анонимно вместо использования учетных данных IAM.

0 голосов
/ 16 февраля 2019

Попробуйте установить acl: null в опциях gatsby-plugin-s3, затем запустите gatsby build

plugins: [
{
  resolve: `gatsby-plugin-s3`,
  options: {
    bucketName: 'mybucketname.com',
    acl: null
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...