Можно программно загружать объекты в ведро S3, но GET-запрос запрещен
Я пишу приложение django, которому нужна загрузка файлов. Я создал ведро S3 и пользователя IAM с правами S3FullAccess. Я взял ID ключа доступа и секретный ключ доступа и поместил их в свой код (используя переменные env). Я использую django_storages для отправки загруженных файлов в S3, и мой конфиг в файле настроек таков
AWS_ACCESS_KEY_ID = os.environ.get('S3_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('S3_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = '<my bucket name>'
AWS_S3_REGION_NAME = 'ap-south-1'
AWS_S3_SIGNATURE_VERSION = 's3v4'
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
Политикой CORS для ведра на данный момент является
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
Используя эту конфигурацию, я могу загружать файлы в ведро S3 из своего приложения, но когда файл запрашивается приложением, я получаю ошибку 403 Forbidden. Как я могу это исправить?