Cifrado de la Base de Datos
Prerrequisitos
El procedimiento descrito en este manual depende de los siguientes requisitos:
Crear clave para cifrado
Permiso de usuario
Para cifrar HBase, es necesario agregar permisos para el usuario que administra el HDFS.
En el navegador, acceda a Ranger en http://<host>:6080.
Usuario:
keyadminContraseña:
<contraseña definida en el procedimiento de instalación de Ranger Admin>
Al acceder al Panel de Ranger KMS, haga clic en el repositorio kmsdev del KMS, que redirigirá a la página de policies de kmsdev.
Haga clic para editar la police 1. Al ser redirigido, haga clic en el ícono + dentro de Allow Conditions y complete de la siguiente forma:
Select Role: Sin cambios
Select Group: Sin cambios
Select User:
hadoopPermissions:
Decrypt EEK,Generate EEK,Get,Get Keys,Get MetadataDelegate Admin: Checked
Para probar el acceso al servidor, ejecute los siguientes comandos para listar las claves y los metadatos de la clave, en caso de que exista una:
hadoop key list
hadoop key list -metadataEl objetivo de la prueba es garantizar que el acceso no será denegado, haya clave o no.
Crear clave
Aún en el panel de Ranger KMS, haga clic en Encryption y, luego, en Key Manager.
En Select Service, seleccione el repositorio kmsdev.
Para crear una clave, haga clic en Add New Key y complete de la siguiente forma:
Key Name:
hbaseCipher: No realizar cambios
Length:
256Description: campo opcional
Attributes: No realizar cambios
Al hacer clic en save, la clave será creada y podrá ser accesada por el servidor para encriptación. Para verificar, conéctese al servidor con el usuario que tiene permiso de get key y ejecute los siguientes comandos:
hadoop key list
hadoop key list -metadataCrear zona de cifrado
Para cifrar la base de datos de Hadoop, es necesario crear una zona de cifrado. De esta forma, todos los datos insertados en esta zona serán redirigidos por el HDFS al KMS para cifrado o descifrado, dependiendo de la petición enviada y de los permisos del usuario en el KMS.
Para crear una zona de cifrado, es necesario que la ruta esté vacía. Por lo tanto, es necesario renombrar la carpeta data de HBase y crear una carpeta con el mismo nombre.
hdfs dfs -mv /apps/hbase/data /apps/hbase/data-bkp
hdfs dfs -mkdir /apps/hbase/data /apps/hbase/data
hdfs dfs -ls /apps/hbase/
# Found 2 items
# drwxr-xr-x - hadoop hadoop 0 2023-02-17 14:02 /apps/hbase/data
# drwxr-xr-x - hadoop hadoop 0 2023-02-15 11:58 /apps/hbase/data-bkpEntonces ejecute el siguiente comando para definir la ruta /apps/hbase/data como una zona de cifrado:
hdfs crypto -createZone -keyName hbase -path /apps/hbase/dataLa respuesta debe ser:
Added encryption zone /apps/hbase/dataPara verificar, ejecute el comando para listar las zonas:
hdfs crypto -listZonesEste comando debe devolver el siguiente mensaje:
/apps/hbase/data hbaseSiendo /apps/hbase/data la zona de cifrado y hbase la clave.
Después de definir la zona de cifrado, copie todo el contenido de la carpeta /apps/hbase/data-bkp dentro de la zona de cifrado /apps/hbase/data.
hdfs dfs -cp /apps/hbase/data-bkp/* /apps/hbase/data/Para verificar el funcionamiento del cifrado, inicie HBase y conéctese al HBase Shell, entonces ejecute los siguientes comandos de lectura de archivo:
Dentro de la zona de cifrado:
hdfs dfs -cat /apps/hbase/data/hbase.idLa respuesta debe ser:
PBUF
$24b1ef30-14b6-46d0-b46b-f49c9c109cb1Fuera de la zona de cifrado:
hdfs dfs -cat /.reserved/raw/apps/hbase/data/hbase.idLa respuesta debe ser:
▒w▒▒▒▒▒,U▒▒▒k▒y▒,*▒*|▒~▒/U▒U▒▒▒|#Para obtener información sobre el cifrado del archivo, ejecute el siguiente comando:
hdfs crypto -getFileEncryptionInfo -path /apps/hbase/data/hbase.idLa respuesta debe ser:
{
cipherSuite: {
name: AES/CTR/NoPadding,
algorithmBlockSize: 16
},
cryptoProtocolVersion: CryptoProtocolVersion{
description='Encryption zones',
version=2,
unknownValue=null
},
edek: 0b79b49c77335747824d78e97e5e0bf2a54f428ddc81faf6dc220c4ecea7c7de,
iv: ee35b713df8994046758372cee3eeea0,
keyName: hbase,
ezKeyVersionName: hbase@0
}Procedimiento de cambio de clave
No es necesario detener los servicios para el cambio de clave y re-cifrado. Lea el procedimiento completo a continuación para más información.
Procedimiento de Rollover de la clave
Para crear una clave, haga clic en Add New Key y complete de la siguiente forma:
Para cambiar la clave de cifrado, acceda al panel de Ranger KMS y haga clic en Encryption y, luego, en Key Manager.
En Select Service, seleccione el repositorio kmsdev.
En la clave utilizada para la zona de cifrado, en el lado derecho de la pantalla en Action, haga clic en el ícono descrito como Rollover.
Al hacer clic en Rollover, será necesario confirmar la operación en un pop-up.
Después de confirmar el Rollover, Hadoop continuará usando la clave anterior, pero la clave nueva también estará disponible en Ranger KMS. Por este motivo no es necesaria la detención de los servicios para este procedimiento.
Para verificar la disponibilidad de las claves y sus respectivas versiones, ejecute el siguiente comando:
curl http://localhost:9292/kms/v1/key/hbase/_versions?user.name=hadoopLa respuesta debe ser:
[
{
"material": "NIoXKS9lHMIPBUhIARV3V5TCzTj12IHEOjVwD00R8NM",
"name": "hbase",
"versionName": "hbase@0"
},
{
"material": "RjAvLWzEu7BuRvPpXs7K2Q8EqRTa_gJsDm-NF8D_HSc",
"name": "hbase",
"versionName": "hbase@1"
},
...
]En esta respuesta, se observa que Hadoop está usando la clave hbase@0, sin embargo ya está disponible la clave hbase@1 en el KMS.
Procedimiento de re-cifrado
El procedimiento de re-cifrado puede realizarse durante el funcionamiento pleno del sistema por dos puntos:
El tipo de cifrado
Hadoop utiliza cifrado del tipo TDE (transparent data encryption). Este tipo de cifrado actúa en la base de datos solo a nivel de archivo, permitiendo que los datos estén disponibles para las aplicaciones sin la necesidad de cifrar o descifrar en cada operación.
Información de cifrado en el archivo
Cada archivo cifrado posee un encabezado o paquete con la información del cifrado, incluyendo la versión de la clave utilizada. Esta información se consulta directamente en cualquier procedimiento de cifrado.
Para re-cifrar la zona de cifrado después del Rollover de la clave, ejecute los siguientes comandos:
Para listar las zonas de cifrado:
hdfs crypto -listZonesPara re-cifrar la zona deseada con la nueva clave:
hdfs crypto -reencryptZone -start -path /apps/hbase/data/La respuesta debe ser un mensaje confirmando la solicitud de re-cifrado:
re-encrypt command successfully submitted for zone: /apps/hbase/data/ action: STARTDespués de la solicitud, Hadoop iniciará el re-cifrado de los datos con la clave actualizada proporcionada por Ranger KMS.
Para comprobar el estado del re-cifrado, ejecute el siguiente comando:
hdfs crypto -listReencryptionStatusLa respuesta debe ser un informe con el estado de la operación:
Zone Name Status EZKey Version Name Submission Time Is Canceled? Completion Time Number of files re-encrypted Number of failures Last File Checkpointed
/apps/hbase/data Completed hbase@1 2023-02-17 15:43:15,429-0300 false 2023-02-17 15:43:15,623-0300 28 0Para verificar si la información de cifrado fue actualizada en los archivos, ejecute nuevamente el comando -getFileEncryptionInfo:
hdfs crypto -getFileEncryptionInfo -path /apps/hbase/data/hbase.idSi el cambio de las claves se realizó con éxito, el campo ezKeyVersionName reflejará el nombre de la nueva versión:
{
cipherSuite: {
name: AES/CTR/NoPadding,
algorithmBlockSize: 16
},
cryptoProtocolVersion: CryptoProtocolVersionc{
description='Encryption zones',
version=2,
unknownValue=null
},
edek: 995afbc575fa88ff0ef72a908e0caa8397c18b2df852cb86e35fcc4577ed257b,
iv: ee35b713df8994046758372cee3eeea0,
keyName: hbase,
ezKeyVersionName: hbase@1
}Última actualización
¿Te fue útil?

