Estoy intentando cargar archivos a mi bucket de Amazon Simple Storage Service (Amazon S3) a través de la consola de Amazon S3. Sin embargo, aparece el error «403 Forbidden».
Descripción corta
El error «403 Forbidden» puede producirse por los siguientes motivos:
- Faltan los permisos para que s3:PutObject agregue un objeto o que s3:PutObjectAcl modifique la lista d control de acceso (ACL) del objeto.
- No tienes permiso para usar una clave de AWS Key Management Service (AWS KMS).
- Hay una instrucción de denegación explícita en la política de bucket.
- Está activado el bloqueo del acceso público de Amazon S3.
- Una política de control de servicios de AWS Organizations no permite el acceso a Amazon S3.
Solución
Comprobar los permisos para s3:PutObject o s3:PutObjectAcl
Sigue estos pasos:
- Abre la consola de AWS Identity and Access Management (IAM).
- Navega hasta la identidad usada para acceder al bucket, como Usuario o Rol. Elige el nombre de la identidad.
- Selecciona la pestaña Permisos y, a continuación, expande cada política para ver su documento de política JSON.
- Busca políticas relacionadas con el acceso a Amazon S3 en los documentos de políticas JSON. A continuación, confirma que tienes permisos para las acciones s3:PutObject o s3:PutObjectAcl en el bucket.
Solicitar permiso para usar una clave de AWS KMS
Para cargar objetos que se han cifrado con AWS KMS, debes tener permisos para realizar acciones de AWS KMS. Debes poder realizar las acciones kms:Decrypt y kms:GenerateDataKey, como mínimo.
Importante: Si cargas un objeto a un bucket de una cuenta de AWS diferente, no puedes utilizar la clave administrada de AWS aws/S3 como clave de cifrado predeterminada. Esto se debe a que no puedes modificar la política de claves administradas de AWS.
Consultar la política de bucket para ver las instrucciones de denegación explícitas
Sigue estos pasos:
- Abre la consola de Amazon S3.
- En la lista de buckets, abre el bucket al que quieras cargar los archivos.
- Selecciona la pestaña Permisos.
- Elige Política de bucket.
- Busca instrucciones con «Efecto»: «Denegar».
- Revisa las instrucciones y asegúrate de que no impidan cargar archivos al bucket.
Importante: Antes de guardar una política de bucket con la palabra «Efecto»: «Denegar», asegúrate de comprobar si hay instrucciones que denieguen el acceso al bucket de S3. Si te bloquean, consulta ¿Cómo recupero el acceso a mi Amazon S3 después de haber denegado accidentalmente el acceso a todo el mundo?
La siguiente instrucción de ejemplo deniega explícitamente el acceso a s3:PutObject en example-bucket, a menos que la solicitud de carga cifre el objeto con la clave de AWS KMS cuyo ARN coincide con arn:aws:kms:us-east-1:111122223333:key:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ExampleStmt",
"Action": [
"s3:PutObject"
],
"Effect": "Deny",
"Resource": "arn:aws:s3:::example-bucket/*",
"Condition": {
"StringNotLikeIfExists": {
"s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/*"
}
},
"Principal": "*"
}
]
}
Eliminación de la ACL pública de la solicitud o desactivación del bloqueo del acceso público de S3
Si incluyes una ACL pública, como public-read o authenticated-read en la solicitud de PUT, la ACL pública convierte el objeto de S3 en público. Si está activado el bloqueo del acceso público de S3 para esta cuenta o bucket, se denegará la solicitud de carga.
Nota: Se recomienda hacer público un objeto solo si tu caso de uso lo requiere.
Para cargar correctamente el objeto como objeto disponible públicamente, modifica el bloqueo del acceso público de S3 según sea necesario. Si el caso de uso no requiere que el objeto esté disponible públicamente, elimina la ACL pública mencionada de la solicitud de PUT.
Para configurar los ajustes del bloqueo del acceso público de S3 a nivel de cuenta, consulta Establecer la configuración del bloqueo del acceso público para la cuenta. Para configurar los ajustes a nivel de bucket, consulte Establecer la configuración del bloqueo del acceso público para tus buckets de S3. Además, para obtener más información sobre la configuración de acceso público, consulta Qué significa «público».
Revisión de las políticas de control de servicios de AWS Organizations
Si usas AWS Organizations, comprueba si las políticas de control de servicios deniegan explícitamente las acciones de S3. Si es así, modifica la política como quieras.
Información relacionada
¿Cómo soluciono los errores «403 Access Denied» de Amazon S3?
How do I troubleshoot the error "You don't have permissions to edit bucket policy" when I try to modify a bucket policy in Amazon S3? (¿Cómo soluciono el error «You don't have permissions to edit bucket policy» cuando intento modificar una política de bucket en Amazon S3?)
Solución de problemas de errores de acceso denegado (403 Forbidden) en Amazon S3