files amazon-s3 acl

amazon s3 - files - Amazon AC3 ACL para acceso de solo lectura y de escritura única



amazon s3 access (3)

Estoy desarrollando una aplicación web y actualmente tengo asignada la siguiente ACL a la cuenta de AWS que utiliza para acceder a sus datos:

{ "Statement": [ { "Sid": "xxxxxxxxx", // don''t know if this is supposed to be confidential "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::cdn.crayze.com/*" ] } ] }

Sin embargo, me gustaría hacer esto un poco más restrictivo para que, si nuestras credenciales de AWS alguna vez se vieran comprometidas, un atacante no pudiera destruir ningún dato.

De la documentación, parece que quiero permitir solo las siguientes acciones: s3:GetObject y s3:PutObject , pero específicamente deseo que la cuenta solo pueda crear objetos que ya no existen, es decir, una solicitud PUT en un el objeto existente debe ser denegado. es posible?


Esto no es posible en Amazon S3 como probablemente lo imaginó; sin embargo, puede evitar esta limitación utilizando el control de versiones que es un medio para mantener múltiples variantes de un objeto en el mismo contenedor y se ha desarrollado con casos de uso como este en mente:

Puede habilitar el control de versiones para evitar que los objetos se eliminen o sobrescriban por error, o para archivar objetos para que pueda recuperar versiones anteriores de ellos.

También hay un par de preguntas frecuentes relacionadas, por ejemplo:

  • ¿Qué es el control de versiones? - El control de versiones le permite conservar, recuperar y restaurar cada versión de cada objeto almacenado en un depósito de Amazon S3. Una vez que habilita el control de versiones para un depósito, Amazon S3 conserva los objetos existentes cada vez que realiza una operación PUT, POST, COPY o DELETE en ellos. Por defecto, las solicitudes GET recuperarán la versión escrita más reciente. Las versiones anteriores de un objeto sobrescrito o eliminado se pueden recuperar especificando una versión en la solicitud.

  • ¿Por qué debería usar Versioning? - Amazon S3 ofrece a los clientes una infraestructura de almacenamiento altamente duradera. El control de versiones ofrece un nivel adicional de protección al proporcionar un medio de recuperación cuando los clientes sobrescriben accidentalmente o eliminan objetos. Esto le permite recuperarse fácilmente de acciones involuntarias del usuario y fallas de la aplicación . También puede usar el control de versiones para la retención y el archivo de datos. [énfasis mío]

  • ¿Cómo me protege el Versioning de la eliminación accidental de mis objetos? - Cuando un usuario realiza una operación DELETE en un objeto, las solicitudes predeterminadas subsiguientes ya no recuperarán el objeto. Sin embargo, todas las versiones de ese objeto continuarán conservadas en su depósito de Amazon S3 y pueden recuperarse o recuperarse. Solo el propietario de un depósito de Amazon S3 puede eliminar permanentemente una versión. [énfasis mío]

Si es realmente primordial acerca de las credenciales de AWS del propietario del depósito (que puede ser diferente de los usuarios que acceden, por supuesto), puede ir un paso más allá incluso, consulte ¿Cómo puedo garantizar la máxima protección de mis versiones preservadas? :

La capacidad de eliminación de MFA del control de versiones, que usa autenticación de múltiples factores , se puede usar para proporcionar una capa adicional de seguridad. [...] Si habilita el control de versiones con eliminación de MFA en su depósito de Amazon S3, se requieren dos formas de autenticación para eliminar permanentemente una versión de un objeto: sus credenciales de cuenta de AWS y un código de seis dígitos válido y un número de serie de una autenticación dispositivo en su posesión física. [...]


Sí, no es posible crear una política en la que otorgue permiso de venta solo en objetos nuevos (no existe en s3).

Soy un desarrollador de Bucket Explorer, puedes probar Bucket Explorer, que tiene una versión en dos sentidos. 1. Control de versiones de Amazon S3 si está habilitado en el Bucket 2. Esto es el propio entorno de versiones del explorador de Bcuket cuando las versiones de Amazon S3 están deshabilitadas en el Bucket.

También puede probar Bucket Explorer Team Edition si desea otorgar acceso específico a su amigo o cliente.


Si se trata de una sobreescritura accidental que está tratando de evitar, y los requisitos de su negocio permiten una ventana de inconsistencia breve, puede realizar la reversión en la función Lambda:

  1. Establezca una política que "no nuevos objetos con el mismo nombre". La mayoría de las veces no sucederá. Para hacer cumplirlo:
  2. Escuche S3: eventos PutObject en una función AWS Lambda .
  3. Cuando se dispara el evento, verifique si hay más de una versión presente.
  4. Si hay más de una versión presente, elimine todas menos la más reciente.
  5. Notifique a quien subió lo que sucedió (es útil tener el cargador original en x-amz-meta-* del objeto. Más información here ).