Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

501
Views
AWS S3 y Django devuelven "Se produjo un error (Acceso denegado) al llamar a la operación PutObject"

Estoy tratando de configurar el almacenamiento de archivos multimedia y estáticos en un depósito de AWS S3, en una aplicación de Django, y aparece el siguiente error cuando intento ejecutar python manage.py collectstatic para colocar los archivos estáticos en el depósito:

botocore.exceptions.ClientError: Se produjo un error (Acceso denegado) al llamar a la operación PutObject: Acceso denegado

Estoy ejecutando almacenamientos boto3 y django. Revisé las otras respuestas aquí y probé las ideas allí primero. Mi clave de acceso, etc. es correcta, ya que puedo conectarme a SES OK. Tengo CORS configurado en el depósito.

Mi política de depósitos es

 { "Id": "Policyxxx", "Version": "2012-10-17", "Statement": [ { "Sid": "Stmtxxx", "Action": "s3:*", "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucketname/*", "arn:aws:s3:::bucketname" ], "Principal": { "AWS": [ "arn:aws:iam::xxxx:user/xxxx" ] } } ] }

Mi usuario de IAM tiene AmazonS3FullAccess como se muestra a continuación:

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }

También intenté crear mi propia política y adjuntarla al usuario de IAM de la siguiente manera:

 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucketname", "arn:aws:s3:::bucketname/*" ] } ] }

Ninguno de estos funciona, así que claramente me estoy perdiendo algo.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Yo tenía el mismo error. Y, a diferencia de usted, estaba usando el usuario correcto con las políticas de IAM adecuadas.

En la salida de:

 python manage.py collectstatic

antes del error de pila AccessDenied, pude leer este mensaje de django-storage lib :

Advertencia para el usuario: el comportamiento predeterminado de S3Boto3Storage no es seguro y cambiará en django-storages 2.0. De forma predeterminada, los archivos y los cubos nuevos se guardan con una ACL de 'lectura pública' (lectura pública global). La versión 2.0 usará de manera predeterminada la ACL del depósito. Para optar por el nuevo comportamiento, establezca AWS_DEFAULT_ACL = Ninguno; de lo contrario, para silenciar esta advertencia, establezca explícitamente AWS_DEFAULT_ACL. "El comportamiento predeterminado de S3Boto3Storage no es seguro y cambiará"

Esto me llevó a intentarlo.

Configurando :

 AWS_DEFAULT_ACL = None

Luego, los archivos estáticos se recopilaron en el cubo.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!