Quiero copiar datos de un volumen cifrado de Amazon Elastic Block Store (Amazon EBS) a un volumen sin cifrar en Linux. He cifrado el volumen con una clave predeterminada o personalizada de AWS Key Management Service (AWS KMS).
Descripción corta
Importante: Antes de empezar, crea una instantánea del volumen cifrado. O bien, crea una imagen de máquina de Amazon (AMI) de tu instancia de Amazon Elastic Compute Cloud (Amazon EC2) con el volumen cifrado. La instantánea o la AMI protegen tus datos antes de realizar operaciones importantes.
No puedes eliminar directamente el cifrado de un volumen o una instantánea cifrados de Amazon EBS. Un volumen restaurado a partir de una instantánea cifrada siempre está cifrado. Para mover datos de un volumen cifrado a un volumen no cifrado, debes copiar los datos a un volumen nuevo sin cifrar.
Nota: La siguiente resolución utiliza un volumen raíz como ejemplo. Estos pasos también se aplican a los volúmenes secundarios.
Resolución
Crear y adjuntar un volumen sin cifrar
Para crear un volumen nuevo sin cifrar y adjuntarlo a una instancia de rescate, sigue estos pasos:
- Inicia una instancia de rescate en la misma zona de disponibilidad que la instancia original.
Nota: Usa un sistema operativo (SO) similar al que inició la instancia original.
- Crea un nuevo volumen sin cifrar en la misma zona de disponibilidad que el volumen cifrado original.
- Abre la consola de Amazon EC2.
- En el panel de navegación, selecciona Volúmenes.
- Selecciona tu nuevo volumen sin cifrar, elige Acciones y, a continuación, elige Adjuntar volumen.
- En Instancia, selecciona tu instancia de rescate.
- En Nombre del dispositivo, selecciona un nombre de dispositivo disponible en la sección Volúmenes de datos recomendados y, a continuación, elige Adjuntar volumen.
Verificación del volumen sin cifrar
Para comprobar que el sistema operativo ha detectado el volumen sin cifrar, sigue estos pasos:
- Conéctate a la instancia de rescate.
- Para ver una lista de los dispositivos de bloques disponibles, ejecuta el siguiente comando:
lsblk -o NAME,SERIAL
Nota: Los nombres de los dispositivos pueden aparecer de forma diferente según el tipo de instancia. Por ejemplo, las instancias basadas en Xen usan /dev/xvd y las instancias basadas en Nitro usan /dev/nvme.
Ejemplo de resultado en una instancia basada en Nitro:
NAME SERIAL
nvme0n1 vol0XXXXXXXX03
├─nvme0n1p1
├─nvme0n1p127
└─nvme0n1p128
nvme1n1 vol0XXXXXX4f
Nota: En el ejemplo anterior, nvme1n1 es el volumen sin cifrar que adjuntaste a la instancia.
Adjuntar el volumen cifrado
Para adjuntar el volumen cifrado a la instancia de rescate, sigue estos pasos:
- Detén la instancia con el volumen raíz cifrado.
- Abre la consola de Amazon EC2 y, a continuación, selecciona la instancia.
- En la pestaña Almacenamiento, anota el nombre del dispositivo raíz y, a continuación, elige el ID del volumen.
Nota: El dispositivo raíz varía según la AMI.
- Selecciona el volumen cifrado, elige Acciones y, a continuación, elige Separar volumen.
- Cuando el volumen se separe, selecciona Acciones y, a continuación, selecciona Adjuntar volumen.
- En Instancia, selecciona tu instancia de rescate.
- En Nombre del dispositivo, escribe /dev/sdb y, a continuación, selecciona Adjuntar volumen.
Copia de los datos del volumen cifrado al volumen no cifrado
Sigue estos pasos:
-
Conéctate a la instancia de rescate.
-
Para identificar los volúmenes, ejecuta el siguiente comando:
lsblk
Ejemplo de salida antes de copiar datos:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 55G 0 disk
├─nvme0n1p1 259:6 0 55G 0 part /
├─nvme0n1p127 259:7 0 1M 0 part
└─nvme0n1p128 259:8 0 10M 0 part /boot/efi
nvme1n1
nvme2n1
Nota: En el ejemplo anterior, nvme1n1 es el volumen de destino sin cifrar y nvme2n1 es el volumen de origen cifrado.
-
Para copiar datos del volumen cifrado al volumen no cifrado, ejecuta el siguiente comando como usuario raíz o con sudo:
sudo dd if=/dev/SOURCE_DEVICE of=/dev/DESTINATION_DEVICE bs=4M status=progress
Nota: Sustituye SOURCE_DEVICE por el nombre del dispositivo de volumen cifrado, como /dev/nvme2n1. Sustituye DESTINATION_DEVICE por el nombre de tu dispositivo de volumen sin cifrar, como /dev/nvme1n1. El tiempo de transferencia de datos varía según el tamaño del volumen, las E/S por segundo aprovisionadas y el ancho de banda de la instancia.
-
Para montar ambos volúmenes, ejecuta los siguientes comandos:
sudo mount -o nouuid /dev/nvme2n1p1 /encrypted
sudo mount -o nouuid /dev/nvme1n1p1 /unencrypted
-
Para comprobar que has montado ambos volúmenes y que los volúmenes contienen los mismos datos, ejecuta el siguiente comando:
df -Th
Ejemplo de salida después del montaje:
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs tmpfs 3.1G 492K 3.1G 1% /run
/dev/nvme0n1p1 xfs 8.0G 1.9G 6.1G 24% /
tmpfs tmpfs 7.8G 0 7.8G 0% /tmp
/dev/nvme0n1p128 vfat 10M 1.3M 8.7M 13% /boot/efi
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/nvme2n1p1 xfs 8.0G 8.0G 20K 100% /encrypted
/dev/nvme1n1p1 xfs 8.0G 8.0G 20K 100% /unencrypted
Nota: El resultado confirma que ambos volúmenes contienen la misma cantidad de datos: 8.0G.
Adjuntar el volumen sin cifrar a la instancia original
Para adjuntar y usar el volumen sin cifrar, sigue estos pasos:
- Separa el volumen sin cifrar de la instancia de rescate.
- Adjunta el volumen sin cifrar a la instancia original como dispositivo raíz. Por ejemplo: /dev/xvda o /dev/sda1.
- Inicia la instancia original.
- Conéctate a la instancia y comprueba que arranca correctamente desde el volumen sin cifrar.
- (Opcional) Para crear volúmenes clonados sin cifrar para otros volúmenes cifrados de la instancia original, repite los pasos anteriores.
- Termina la instancia de rescate y, a continuación, elimina el volumen cifrado anterior.