Skip to content

¿Cómo activo la eliminación de MFA en mi bucket de Amazon S3?

6 minutos de lectura
0

Quiero activar la eliminación mediante autenticación multifactor (MFA) en mi bucket de Amazon Simple Storage Service (Amazon S3) para proteger mis objetos de eliminaciones no deseadas.

Descripción corta

Si no configura la eliminación de MFA, cualquier persona con alguno de los siguientes permisos puede eliminar permanentemente un objeto de Amazon S3:

  • Contraseña de usuario raíz
  • Credenciales de usuario o rol de AWS Identity and Access Management (IAM) con permiso de eliminación

Al configurar la eliminación de MFA, solo el usuario raíz puede eliminar permanentemente las versiones de los objetos o cambiar la configuración de control de versiones en su bucket de S3. Debe usar un dispositivo MFA para autenticar al usuario raíz para realizar la acción de eliminación.

Para configurar la eliminación de MFA para el bucket, siga estos pasos:

  1. Genere una clave de acceso y una clave secreta para el usuario raíz.
  2. Active un dispositivo MFA para el usuario raíz.
  3. Configure la AWS CLI con las credenciales del usuario raíz.
  4. Configure la eliminación de MFA.
  5. Confirme que la eliminación de MFA funciona y borre las claves de acceso raíz.

Puede usar la eliminación de MFA solo en los buckets para los que haya activado el control de versiones de S3. El propietario del bucket, la cuenta de AWS que ha creado el bucket y todos los usuarios de IAM autorizados pueden activar el control de versiones. Sin embargo, solo la cuenta de usuario raíz puede activar la eliminación de MFA. Para activar la eliminación de MFA, debe usar la AWS CLI o la API de REST de Amazon S3.

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas de AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Resolución

Generación de una clave de acceso y una clave secreta para el usuario raíz

Primero, cree claves de acceso para el usuario raíz. Tras crear estas claves, debe descargarlas y guardarlas inmediatamente. No podrá recuperar estas claves más tarde. 

Activación de un dispositivo MFA para el usuario raíz

Si no ha activado un dispositivo MFA para el usuario raíz, consulte Activación de un dispositivo MFA virtual para el usuario raíz (consola). Si ya ha activado un dispositivo MFA para el usuario raíz, anote el ARN.

Configuración de la AWS CLI con las credenciales de usuario raíz

Siga estos pasos:

  1. Ejecute el comando configure de la AWS CLI.
  2. Para el ID de clave de acceso de AWS, por ejemplo AKIAEXAMPLEABCQWE, introduzca el ID de clave de acceso del usuario raíz.
  3. Para la clave de acceso secreta de AWS del usuario raíz, introduzca el ID de la clave de acceso secreta. Puede encontrar la clave de acceso secreta en el archivo que contiene las credenciales del usuario raíz.
  4. (Opcional) Para el nombre de la región predeterminada, puede introducir la región de AWS predeterminada.
  5. (Opcional) Para el formato de resultado predeterminado, puede introducir el formato de resultado.

Importante: Si ha configurado perfiles con nombre en la AWS CLI, debe crear otro perfil para las credenciales del usuario raíz. Para configurar un perfil con nombre, ejecute el siguiente comando configure:

aws configure --profile root_user

Activación de la eliminación de MFA de S3

Para activar la eliminación de MFA, ejecute el comando put-bucket-versioning:

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::1XXXXXXX6789:mfa/root-account-mfa-device 123789"

Nota: En el comando anterior, sustituya 1XXXXXXX6789 por el ID de su cuenta y 123789 por el número de serie que genera el dispositivo MFA.

Si usa un perfil con nombre para el usuario raíz, ejecute el siguiente comando put-bucket-versioning:

aws s3api put-bucket-versioning --bucket mybucketname --versioning-configuration MFADelete=Enabled,Status=Enabled --mfa "arn:aws:iam::1XXXXXXX6789:mfa/root-account-mfa-device 123789" --profile root_user

Si el comando se ejecuta correctamente, no obtendrá ningún resultado. Si obtiene un resultado con un error, confirme que está utilizando el usuario raíz y que los números de serie ARN y MFA son válidos.

También puede llamar a la API PutBucketVersioning para activar la eliminación de MFA.

Nota: No puede usar la eliminación de MFA con las configuraciones del ciclo de vida. Si hay una configuración de ciclo de vida en el bucket y ejecuta el comando put-bucket-versioning anterior, aparece el siguiente error:

«Se ha producido un error (InvalidBucketState) al llamar a la operación PutBucketVersioning: la autenticación MFA no se admite en un bucket con una configuración de ciclo de vida. Elimine la configuración del ciclo de vida antes de activar la autenticación MFA».

Confirmación de que la eliminación de MFA funciona

En primer lugar, asegúrese de haber activado el control de versiones de S3. Puede utilizar la consola de Amazon S3 o la siguiente API GetBucketVersioning:

aws s3api get-bucket-versioning --bucket mybucketname

Resultado de ejemplo:

{    
    "Status": "Enabled",    
    "MFADelete": "Enabled"    
}

Para eliminar permanentemente una versión de un objeto, debe incluir el encabezado de solicitud x-amz-mfa. Puede usar la opción --mfa en el comando delete-object para incluir el valor del encabezado. El valor del encabezado es la cadena del número de serie del dispositivo de autenticación, un espacio y el código de autenticación. Para obtener más información, consulte Eliminación de un objeto de un bucket habilitado para la eliminación de MFA.

Si no activa la eliminación de MFA e intenta eliminar una versión de un objeto, aparecerá el siguiente error. También aparece el siguiente error cuando usa un usuario de IAM para intentar eliminar la versión del objeto:

«aws s3api delete-object --bucket mybucketname --key myobjectkey --version-id 3HL4kqCxf3vjVBH40Nrjkd Se ha producido un error (AccessDenied) al llamar a la operación DeleteObject: Se debe utilizar la autenticación MFA para esta solicitud»

Para usar el usuario raíz para eliminar una versión de un objeto en un bucket con la eliminación de MFA activada, ejecute el siguiente comando delete-object:

aws s3api delete-object --bucket mybucketname --key myobjectkey --version-id 3HLkqCxf3vjVBH40Nrjkd --mfa "arn:aws:iam::(accountnumber):mfa/root-account-mfa-device (pass)" {    
    "VersionId": "3HLkqCxf3vjVBH40Nrjkd"    
}

Nota: Para permitir que los usuarios o roles de IAM de su cuenta usen la solicitud de eliminación de objetos sin un ID de versión, concédales el permiso s3:DeleteObject. En el caso de los buckets con control de versiones habilitado, la solicitud de eliminación de objetos solo crea un marcador de eliminación. No elimina permanentemente la versión del objeto. Para eliminar un objeto de forma permanente, debe especificar el ID de versión del objeto.

Después de activar la eliminación de MFA, lleve a cabo las siguientes acciones como práctica recomendada de seguridad:

OFICIAL DE AWSActualizada hace 5 meses