Usar el control de versiones - Amazon Simple Storage Service

Si proporcionásemos una traducción de la versión en inglés de la guía, prevalecerá la versión en inglés de la guía si hubiese algún conflicto. La traducción se proporciona mediante traducción automática.

Usar el control de versiones

El control de versiones es una forma de conservar diversas variantes de un objeto en el mismo bucket. Puede utilizar el control de versiones para conservar, recuperar y restaurar todas las versiones de los objetos almacenados en su bucket de Amazon S3. Con el control de versiones, puede recuperarse fácilmente de acciones no deseadas del usuario y de errores de la aplicación. Cuando habilite el control de versiones para un bucket, si Amazon S3 recibe varias solicitudes de escritura para el mismo objeto simultáneamente, almacena todos los objetos.

Si habilita el control de versiones para un bucket, Amazon S3 genera automáticamente un identificador de versión único para el objeto que se almacena. En un cubo, por ejemplo, puede tener dos objetos con la misma tecla, pero diferentes ids de versión, como photo.gif (versión 111111) y photo.gif (versión 121212).

Los buckets con el control de versiones habilitado le permiten recuperar objetos ante su eliminación o sobrescritura accidental. Por ejemplo:

  • Si elimina un objeto, en lugar de eliminarlo permanentemente, Amazon S3 inserta un marcador de eliminación, que se convierte en la versión del objeto actual. Siempre puede restaurar la versión anterior. Para obtener más información, consulte Eliminar versiones de objetos.

  • Si sobrescribe un objeto, se creará una nueva versión del objeto en el bucket. Siempre puede restaurar la versión anterior.

importante

Si cuenta con una política de ciclo de vida para la caducidad de un objeto en el bucket sin versiones y quiere mantener el mismo comportamiento de eliminación cuando habilite el control de versiones, debe agregar una política de vencimiento no actual. La política de vencimiento no actual administrará las eliminaciones de las versiones de objetos no actuales en el bucket habilitado para el control de versiones. (Un bucket con habilitación de versiones mantiene la versión actual y cero o más versiones objeto no actuales). Para obtener más información, consulte ¿Cómo creo una política de ciclo de vida para un bucket de S3? en la Guía del usuario de la consola de Amazon Simple Storage Service.

Los buckets pueden tener tres estados: sin control de versiones (estado predeterminado), con control de versiones habilitado o con control de versiones suspendido.

importante

Tras habilitar el control de versiones en un bucket, nunca puede volver a un estado sin control de versiones. Sin embargo, sí que puede suspender el control de versiones en el bucket.

El estado del control de versiones se aplica a todos los objetos (nunca solo a una parte) del bucket. A partir de la primera vez que habilite el control de versiones en un bucket, los objetos que contiene siempre estarán versionados y tendrán un ID de versión exclusivo. Tenga en cuenta lo siguiente:

  • Los objetos almacenados en el cubo antes de establecer el estado de la versión de versiones tienen una ID de versión de null. Cuando habilita la lectura, los objetos existentes en su cubo no cambian. Lo que cambia es la forma en la que Amazon S3 administrará los objetos en las solicitudes futuras. Para obtener más información, consulte Administrar objetos en un bucket con control de versiones habilitado.

  • El propietario del bucket (o cualquier usuario con los permisos adecuados) puede suspender el control de versiones para dejar de acumular versiones de objetos. Al suspender el control de versiones, los objetos existentes en el bucket no cambian. Lo que cambia es la forma en la que Amazon S3 administrará los objetos en las solicitudes futuras. Para obtener más información, consulte Administrar objetos en un bucket con control de versiones suspendido.

Cómo configurar el control de versiones en un bucket

Puede configurar el control de versiones en un bucket con cualquiera de los siguientes métodos:

  • Configurar la versión con el Amazon S3.

  • Configurar el control de versiones mediante programación con los SDK de AWS.

    Tanto la consola como los SDK llaman a la API REST que proporciona Amazon S3 para administrar el control de versiones.

    nota

    Si lo necesita, también puede realizar las llamadas a la API REST de Amazon S3 directamente desde su código. Sin embargo, esto puede ser engorroso porque debe escribir el código para autenticar las solicitudes.

    Cada cubo que cree tiene un versionado subrecurso (ver Opciones de configuración de buckets) asociado con él. De forma predeterminada, su bucket no tendrá control de versiones y, por tanto, el subrecurso de control de versiones almacena una configuración vacía.

    <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </VersioningConfiguration>

    Para habilitar el control de versiones, envía una solicitud a Amazon S3 con una configuración para el control de versiones que incluye un estado.

    <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>Enabled</Status> </VersioningConfiguration>

    Para suspender el control de versiones, puede configurar el valor de estado como Suspended.

El propietario de un bucket, una cuenta de AWS que haya creado el bucket (cuenta raíz), y los usuarios autorizados pueden configurar el estado de control de versiones de un bucket. Para obtener más información sobre los permisos, consulte Administración de identidad y acceso en Amazon S3.

Para ver un ejemplo de cómo configurar el control de versiones, consulte Ejemplos de habilitar el control de versiones de buckets.

Eliminar MFA

También puede agregar opcionalmente otra capa de seguridad si configura un bucket para habilitar la eliminación con MFA (autenticación multifactor), lo que requiere una autenticación adicional para alguna de las siguientes operaciones:

  • Cambiar el estado de control de versiones del bucket

  • Eliminar permanentemente la versión de un objeto

La eliminación MFA requiere dos formas combinadas de autenticación:

  • Sus credenciales de seguridad

  • La concatenación de un número de serie válido, un espacio y el código de seis dígitos que se muestra en un dispositivo de autenticación autorizado

Por tanto, la eliminación con MFA refuerza la seguridad en caso, por ejemplo, de que sus credenciales de seguridad estén en riesgo.

Para habilitar o deshabilitar la eliminación de MFA, utilice la misma API que utilice para configurar la versionación en un cubo. Amazon S3 almacena la configuración de eliminación de MFA en el mismo versionado subrecurso que almacena el estado de la versión del cubo.

La eliminación de MFA le puede ser de utilidad para evitar eliminaciones accidentales del bucket haciendo lo siguiente:

  • Requiere que el usuario que inicia la acción de eliminación demuestre la posesión física del dispositivo MFA con un código MFA.

  • Añade una capa adicional de fricción y seguridad a la acción de eliminación.

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>VersioningState</Status> <MfaDelete>MfaDeleteState</MfaDelete> </VersioningConfiguration>
nota

El propietario de un bucket, la cuenta de AWS que haya creado el bucket (cuenta raíz) y todos los usuarios de IAM autorizados pueden habilitar el control de versiones, pero solo el propietario del bucket (cuenta raíz) puede habilitar la eliminación con MFA. Para obtener más información, consulte el AWS publicación de blog en Eliminación y versionación de MFA.

Para usar la eliminación con MFA, puede usar hardware o un dispositivo virtual de MFA para generar un código de autenticación. En el siguiente ejemplo se muestra un código de autenticación generado en un dispositivo de hardware.

nota

La eliminación con MFA y el acceso a la API protegido con MFA son características cuyo objetivo es proporcionar protección en distintos escenarios. Puede configurar la eliminación con MFA en un bucket para garantizar que los datos en el bucket no se puedan eliminar por accidente. El acceso a la API protegido por MFA se usa para aplicar otro factor de autenticación (código de MFA) al obtener acceso a recursos de Amazon S3 confidenciales. Puede requerir que todas las operaciones relacionadas con estos recursos de Amazon S3 se realicen con credenciales temporales creadas con MFA. Para ver un ejemplo, consulte Incorporación de una política de bucket para requerir MFA.

Para obtener más información sobre cómo comprar y activar un dispositivo de autenticación, consulte https://aws.amazon.com/iam/detalles/mfa/.

Para obtener más información, consulte los siguientes temas: