ClientError: Произошла ошибка (403) при вызове операции HeadObject: запрещено - PullRequest
0 голосов
/ 23 февраля 2020

Я создаю AWS лямбда-функцию, которая пытается загрузить файл (s3.download_file) в временный каталог, который я создаю, используя библиотеку tempfile из Python (3.6). Затем я делаю некоторые преобразования в файл, и мне нужно снова загрузить его (s3.upload_file). Я уверен в жизненном цикле моего временного каталога, когда Lambda завершает свою работу, временный каталог разрушает сам себя. Лямбда возвращает ошибку, связанную с запрещенной операцией HeadObject. Точная ошибка:

"Произошла ошибка (403) при вызове операции HeadObject: Forbidden"

Как я могу отладить эту ошибку? Я уже проверил несколько источников, некоторые из них рассказывают о настройке политик, проверяют разрешения, но мой вопрос в том, что есть шаг за шагом (которого нет в документации AWS), который позволяет мне дойти до этой проблемы

1 Ответ

0 голосов
/ 24 февраля 2020

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

Проверьте политики IAM, связанные с ролью IAM ) которую использует лямбда-функция.

Вот пример политики S3, которая разрешает все действия S3 против mybucket:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::my_bucket",
        "arn:aws:s3:::my_bucket/*"
      ]
    }
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...