В моем бессерверном приложении я пытаюсь сохранить объект json в корзине s3.
file_name = data['date'] + ".json"
s3 = boto3.resource('s3')
obj = s3.Object(data_bucket_name, file_name)
json_data = json.dumps(data)
tags = urllib.parse.urlencode({"key1": "value1",
"key2": "value2"})
obj.put(Body=json_data, Tagging=tags)
Лямбда-функция имеет политику S3CrudPolicy
для сегмента.
Когда я запускаю код локально из Intellij, он работает без ошибок. Я вижу теги на объекте в s3.
Но когда я запускаю код после его развертывания в AWS, код выдает следующую ошибку.
An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
Когда я удаляю свойство Tagging
из вызова obj.put(Body=json_data)
, оно работает без ошибок локально и удаленно.
Я не смог найти никакой информации, какие разрешения необходимы лямбда-функции для записи тегов в объект.