¿Por qué recibo el error HTTP 403 Forbidden (Prohibido) cuando intento cargar archivos con la consola de Amazon S3?

Última actualización: 20 de octubre de 2020

Intento cargar archivos a mi bucket de Amazon Simple Storage Service (Amazon S3) mediante la consola de Amazon S3. Sin embargo, recibo un error HTTP 403 Forbidden (Prohibido) en su lugar. ¿Cómo puedo solucionar este problema?

Descripción corta

Para solucionar el error HTTP 403 Forbidden (Prohibido) desde la consola de Amazon S3, verifique lo siguiente:

  • Faltan permisos para s3:PutObject o s3:PutObjectAcl
  • Faltan permisos para utilizar una clave de AWS Key Management Service (AWS KMS)
  • Declaración de denegación explícita en la política de bucket 
  • La lista de control de acceso (ACL) del bucket no permite al usuario raíz de la cuenta de AWS escribir objetos
  • La política de control de servicios de AWS Organizations no permite el acceso a Amazon S3

Resolución

Faltan permisos para s3:PutObject o s3:PutObjectAcl

Verifique que el usuario o rol de AWS Identity and Access Management (IAM) que está utilizando tenga permisos para la acción s3:PutObject en el bucket. Sin este permiso, se obtiene un error HTTP 403 Forbidden (Prohibido). 

Si está tratando de modificar la ACL del objeto durante la carga, su usuario o rol de IAM también debe tener permisos para la acción s3:PutObjectAcl

Faltan permisos para utilizar una clave de AWS KMS

Para acceder a un bucket de S3 que utiliza el cifrado predeterminado o con una clave AWS KMS personalizada, debe tener los permisos para utilizar la clave. 

Para obtener los permisos de uso de la clave, un administrador de claves tiene que concederle permisos en la política de claves. Para cargar un objeto a un bucket cifrado, su usuario o rol de IAM debe tener permisos para kms:Encrypt y kms:GenerateDataKey como mínimo. 

Declaración de denegación explícita en la política de bucket

Revise la política del bucket en busca de declaraciones que hagan una denegación explícita (“Effect”: “Deny”) del permiso para s3:PutObject a menos que se cumplan ciertas condiciones. Verifique que su carga cumpla con los requisitos de la política de buckets para acceder a la acción s3:PutObject

Por ejemplo, si la política de su bucket deniega explícitamente s3:PutObject, a menos que la solicitud incluya el cifrado del servidor con AWS KMS o claves de cifrado administradas por Amazon S3, verifique que esté utilizando el encabezado de cifrado correcto para cargar objetos.

La siguiente declaración de ejemplo de una política de bucket niega explícitamente cualquier acceso a s3:PutObject en el bucket awsdoc-example-bucket, a menos que la solicitud de carga incluya el cifrado con la clave AWS KMS arn:aws:kms:us-east-1:111122223333:key:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt",
      "Action": [
        "s3:PutObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::awsdoc-example-bucket/*",
      "Condition": {
        "StringNotLikeIfExists": {
          "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
        }
      },
      "Principal": "*"
    }
  ]
}

Advertencia: Antes de guardar una política de buckets con una declaración de denegación explícita, debe revisar cuidadosamente los parámetros para la denegación explícita de acceso. Si se bloquea accidentalmente, consulte Accidentalmente denegué a todos el acceso a mi bucket de Amazon S3. ¿Cómo puedo recuperar el acceso?

La ACL del bucket no permite al usuario raíz escribir objetos

Si está utilizando la cuenta de usuario raíz para cargar objetos en el bucket de S3, verifique que la ACL del bucket conceda al usuario raíz acceso para Write objects (Escribir objetos). Para más información, consulte ¿Cómo configuro los permisos de la ACL de buckets? 

La política de control de servicios de AWS Organizations no permite el acceso a Amazon S3

Si está utilizando AWS Organizations, verifique las políticas de control de servicios para asegurarse de que el acceso a Amazon S3 esté permitido.

Por ejemplo, la siguiente política da lugar a un error HTTP 403 Forbidden (Prohibido) cuando se intenta acceder a Amazon S3 porque deniega explícitamente el acceso:

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

Para obtener más información sobre las características de AWS Organizations, consulte Habilitar todas las características en la organización.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?