Amazon Simple Storage Service
Guía del desarrollador (Versión de API 2006-03-01)

Uso del 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.

En un bucket, por ejemplo, puede tener dos objetos con la misma clave pero ID de versión diferentes, 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 Eliminación de 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 How Do I Create a Lifecycle Policy for an S3 Bucket? 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 un bucket antes de establecer el estado del control de versiones tienen el ID de versión null. Al habilitar 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 Administración de 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 Administración de 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 el control de versiones con la consola de 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 bucket que cree tiene un subrecurso de control de versiones (consulte Opciones de configuración de buckets) asociado. 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 habilitación del control de versiones en buckets.

Eliminación 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 con MFA, puede usar la misma API que utilice para configurar el control de versiones en un bucket. Amazon S3 almacena la configuración de la eliminación con MFA en el mismo subrecurso de control de versiones que almacena el estado del control de versiones del bucket.

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 la publicación del blog de AWS en Eliminación y control de versiones 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 adquirir y activar un dispositivo de autenticación, consulte https://aws.amazon.com/iam/details/mfa/.

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