Data Security Center (DSC) permite configurar el cifrado de columnas para diversos tipos de bases de datos, como RDS for MySQL, RDS for PostgreSQL, PolarDB for MySQL, PolarDB for PostgreSQL, PolarDB for PostgreSQL (Compatible with Oracle) y PolarDB-X 2.0. Esto garantiza que solo los usuarios autorizados puedan descifrar y acceder a los datos en columnas sensibles mediante un cliente siempre confidencial, lo que evita que el texto sin formato quede expuesto a partes no autorizadas.
La función de cifrado de columnas está disponible únicamente para usuarios de Data Security Center Free Edition, Advanced Edition, Enterprise Edition, versión de prueba de 7 días y Value-added Services Only Edition. Si el cifrado de columnas no está habilitado o su cuota de cifrado de columnas es insuficiente, upgrade su edición.
Cuando un cliente consulta una columna cifrada mediante SQL, la consulta ignora el tipo de datos original de la columna y siempre devuelve los datos en formato de cadena. Configure el cifrado de columnas con precaución.
Procedimiento
Después de activar una instancia de DSC, la primera vez que utilice el cifrado de columnas en la consola, debe completar los siguientes pasos en orden: autorizar a **DSC para acceder a recursos en la nube, realizar la sincronización de activos de base de datos, ejecutar un trabajo de detección de datos sensibles y habilitar el cifrado de columnas**.
Paso 1: Autorizar a DSC para acceder a recursos
Tras la autorización, la instancia de DSC puede acceder a recursos en servicios en la nube como Object Storage Service (OSS), ApsaraDB RDS y MaxCompute.
Inicie sesión en la consola de Data Security Center.
En el cuadro de diálogo RAM-based Authorization, haga clic en Authorize.
Paso 2: Sincronizar activos de base de datos
Debe sincronizar primero sus activos antes de usar DSC para detectar datos sensibles o auditar actividades de bases de datos en productos en la nube como ApsaraDB RDS y PolarDB.
En el panel de navegación izquierdo, seleccione Asset Center.
-
En la página Asset Center, haga clic en Asset synchronization.
NotaDespués de adquirir una instancia de DSC, DSC sincroniza automáticamente su lista de activos en la nube la primera vez que inicia sesión en la consola, por lo que no se requiere ninguna acción manual. DSC escanea y sincroniza automáticamente la lista de activos todos los días a las 00:00.
Paso 3: Habilitar la clasificación y categorización de datos
Para utilizar el cifrado de columnas, primero debe autorizar una conexión de base de datos y completar un trabajo de detección de datos. DSC admite Connect y Account Logon.
Seleccione un método de conexión según sus requisitos de seguridad de datos y los métodos admitidos por su base de datos, tal como se indica en la siguiente tabla.
Utilice la conexión con un clic si su base de datos lo admite y no necesita usar la base de datos como destino para tareas de enmascaramiento de datos.
Si necesita usar la base de datos como destino para tareas de enmascaramiento de datos, debe utilizar una conexión basada en credenciales con una cuenta que tenga permisos de lectura y escritura.
Tipos de conexión y activos compatibles
En el panel de navegación izquierdo, seleccione Asset Center.
En la sección Structured Data, haga clic en el tipo de datos para el que desea configurar el cifrado de columnas.
-
Haga clic en el icono
en la columna Data Classification de la instancia de activo de destino.NotaAsegúrese de que la instancia tenga una base de datos y que su Instance Status sea Running. Si no se ha creado ninguna base de datos, no podrá habilitar la clasificación y categorización de datos ni crear el trabajo de detección correspondiente.
-
En el cuadro de diálogo Enable Classification and Grading, configure los parámetros como se describe en la siguiente tabla.
Parámetro
Descripción
Activation Method
Configure la información de la cuenta que se utiliza para conectarse a la base de datos para la detección de datos. Se admiten dos métodos:
Automatically create database accounts : DSC crea automáticamente una cuenta de solo lectura que comienza con el prefijo
sddp_autoen el activo de datos de destino. DSC utiliza esta cuenta para conectarse a la base de datos de destino y realizar tareas de detección de datos.NotaEste método solo está disponible para tipos de datos que admiten la habilitación con un clic.
Manually enter username and password: Introduzca la cuenta y la contraseña que utiliza para conectarse a la base de datos.
Authorization Scope
El alcance de autorización para la detección de datos.
Entire data source.
Manage authorization scope in the data source list: Seleccione el alcance de autorización deseado.
Automatically create and start a default scan task
Si selecciona esta opción, DSC crea automáticamente una tarea de escaneo predeterminada después de conectar correctamente la base de datos.
En la pestaña , puede hacer clic en Default Tasks para ver el estado de ejecución de la tarea de escaneo. Para obtener más información, consulte Scan for sensitive data using a detection task.
Automatically connect to new databases.
Si selecciona esta opción, DSC se conecta automáticamente a las nuevas bases de datos que se detecten en su instancia de base de datos tras una sincronización de activos manual o automática.
Una vez completada la configuración, haga clic en OK.
Paso 4: Ver detalles de la base de datos
Una vez finalizado el trabajo de detección de datos sensibles, consulte la información sobre la instancia de base de datos conectada a DSC, incluido el número total de columnas, el estado del cifrado de columnas y la información de la cuenta de la base de datos.
En el panel de navegación izquierdo, seleccione .
-
En la página Column Encryption, consulte la siguiente información. Puede utilizar el componente de búsqueda situado encima de la lista de bases de datos para buscar y ver información sobre una instancia de base de datos de destino por tipo de activo, estado de cifrado (como columnas cifradas, columnas no cifradas o cifrado fallido) o nivel de sensibilidad.
Elemento
Descripción
Columns
Indica el número total de columnas en las tablas de una instancia de base de datos conectada correctamente a DSC.
Sensitive Data (S3 and Higher)
Columnas cuyo nivel de sensibilidad es S3 o superior según los resultados de la detección de datos. Esto incluye información como columnas sensibles, columnas cifradas, columnas no cifradas y columnas cuyo cifrado falló.
Accounts
-
Total Accounts: Cada par base de datos-cuenta se cuenta como uno. Por ejemplo, si la Cuenta C existe tanto en la Base de datos A como en la Base de datos B, se cuenta como dos cuentas de base de datos.
-
Accounts For Which No Encryption Configured: Si el cifrado no está habilitado para ninguna columna de la base de datos, el permiso de la cuenta es Accounts For Which No Encryption Configured.
-
Número de cuentas con Plaintext Permissions o Ciphertext Permission: Cuando habilita el cifrado de columnas para una base de datos, puede establecer permisos para que las cuentas de la base de datos accedan a los datos de las columnas cifradas.
Puede hacer clic en cualquier número de las estadísticas o hacer clic en Permission Settings. En el panel Permission Settings, busque y vea toda la información de cuentas de la instancia de base de datos de destino para confirmar los permisos de acceso de las diferentes cuentas de la base de datos.
Información de la lista
Muestra información como Instance name, Asset Type, Region, Encryption Algorithm, Plaintext Permission Accounts y Encryption Check para la instancia de DSC.
-
Solo puede configurar el cifrado de columnas para instancias que hayan Passed la verificación de cifrado.
-
Si la Encryption Check muestra "Failed" debido a una versión de base de datos incompatible, haga clic en Upgrade en la columna Encryption Check. Esto le redirige a la página de actualización correspondiente en la consola de ApsaraDB RDS o PolarDB para actualizar la versión de la base de datos. Para obtener más información, consulte FAQ about check failures.
Después de actualizar la versión o cuando cambie el estado, debe realizar la Asset synchronization en la consola de DSC para obtener la información más reciente de la base de datos.
-
En el panel de navegación izquierdo, seleccione Asset Center. En la pestaña Authorization Management, haga clic en Asset Authorization Management.
-
En el panel Asset Authorization Management, haga clic en el tipo de instancia de destino (RDS o PolarDB) en el panel de navegación de nombres de producto a la izquierda y, a continuación, haga clic en Asset synchronization.
-
Paso 5: Configurar el cifrado de columnas
Después de confirmar la información de la instancia de base de datos de destino y verificar que el resultado de la Encryption Check sea Passed, complete la configuración del cifrado de columnas.
Habilitar el cifrado con un clic
Antes de habilitar el cifrado con un clic para una base de datos, su algoritmo y método de cifrado no están configurados. En este estado, no puede habilitar el cifrado para columnas individuales de la base de datos.
-
DSC admite tres métodos para habilitar el cifrado de columnas.
Haga clic en Rapid Encryption encima de la lista de instancias de base de datos para configurar el cifrado de columnas para todas las columnas no cifradas.
Haga clic en Rapid Encryption en la columna Actions de la instancia de base de datos de destino para configurar el cifrado de columnas para esa instancia.
En la página Asset Center, haga clic en el icono
en la columna Column Encryption de la instancia de base de datos de destino.
-
En el panel Encryption Configuration, seleccione el Asset Type, Instance name, Encryption Algorithm, Encryption Method y Plaintext Permission Accounts. A continuación, seleccione las Databases, la Table y la Column de destino para cifrar, y haga clic en OK.
Tenga en cuenta las siguientes configuraciones de parámetros:
-
Otras operaciones
Modificar permisos de cuenta de base de datos
Excepto las cuentas con Plaintext Permissions, todas las demás cuentas de la instancia de base de datos tienen permiso de texto cifrado. Puede modificar los permisos de la cuenta a Plaintext Permissions, Ciphertext Permission (No Decryption Permission) o Ciphertext Permission (JDBC Decryption) según sus necesidades empresariales.
-
En la página , haga clic en Permission Settings en la sección Accounts.
Alternativamente, en la columna Actions de la lista de instancias, haga clic en Edit. En el panel Edit, haga clic en Configure en Account Permissions.
-
En el panel Permission Settings, busque la instancia y la cuenta de destino para ver los permisos actuales de la cuenta.
NotaSi una cuenta de base de datos recién añadida no aparece en la lista, realice una Asset synchronization y vuelva a comprobarlo.
-
Haga clic en Modify Permissions en la columna Actions de la cuenta de destino.
También puede seleccionar varias cuentas de destino con el mismo permiso y hacer clic en Batch Modify Permissions debajo de la lista.
En el cuadro de diálogo Modificar permisos, seleccione el permiso de destino y haga clic en OK.
Modificar configuraciones de cifrado de columnas
Después de completar la configuración de cifrado:
En la lista de instancias, expanda la instancia de destino. En la lista de bases de datos, busque el nombre de las Databases, la Table y la Column de destino, y haga clic en Enable Encryption o Disable Encryption para configurar el cifrado de una sola columna.
-
En la columna Actions de la lista de instancias, haga clic en Edit. En el panel Edit, modifique el algoritmo de cifrado, el método de cifrado y el alcance de las columnas cifradas.
-
Haga clic en Modify en Encryption Algorithm o Encryption Method para actualizar el algoritmo o método de cifrado.
ImportanteModificar el método de cifrado reinicia la tarea de cifrado. Durante el reinicio, los datos en las columnas originalmente cifradas se almacenan en texto sin formato, lo que supone un riesgo de seguridad de exposición de datos. Proceda con precaución.
En la lista de bases de datos para configurar columnas cifradas, busque el nombre de las Databases, la Table y la Column de destino, y haga clic en Enable Encryption o Disable Encryption para actualizar el alcance de las columnas cifradas.
-
Ejemplo de cifrado de columnas en MySQL
Después de configurar el cifrado de columnas y los permisos de cuenta, puede verificar el acceso a los datos en columnas cifradas. Si una cuenta con permiso de texto cifrado recupera texto cifrado al acceder a una columna cifrada, esto indica que la configuración es efectiva.
Las cuentas de base de datos de ApsaraDB RDS for PostgreSQL solo admiten permiso de texto sin formato y permiso de texto cifrado (descifrado JDBC). El método para verificar los datos de cifrado de columnas es el mismo que para ApsaraDB RDS for MySQL. La siguiente sección utiliza ApsaraDB RDS for MySQL como ejemplo para mostrar cómo verificar el acceso a datos de columnas cifradas en una base de datos ApsaraDB RDS.
ApsaraDB RDS for MySQL
Requisitos previos
Ha conectado una instancia de ApsaraDB RDS for MySQL 8.0 a DSC y ha completado la clasificación y categorización de datos sensibles.
Los resultados del escaneo muestran que la tabla users en la base de datos sddp_em_db contiene tres columnas: la columna phone tiene un nivel de sensibilidad de S3 (Información personal - Número de celular), mientras que las columnas username e id tienen un nivel de sensibilidad N/A. Todas las columnas están actualmente sin cifrar y la verificación de cifrado ha sido Passed.
Configurar el cifrado de columnas
Siga los pasos en Enable one-click encryption para configurar el cifrado de columnas para esta instancia de base de datos:
Habilite el cifrado para la columna phone en la tabla users.
-
Establezca los siguientes permisos de acceso para las cuentas de base de datos vinculadas.
Establezca permiso de texto sin formato para la cuenta sddp_em01, permiso de texto cifrado (descifrado JDBC) para la cuenta sddp_em03 y permiso de texto cifrado (sin descifrado) para la cuenta sddp_em02.
Acceder a datos cifrados
Inicie sesión en la base de datos utilizando una cuenta con Plaintext Permissions. Para obtener más información, consulte Log on to an ApsaraDB RDS database by using DMS.
Ejecute una sentencia SELECT para ver la tabla de datos. La columna cifrada devuelve datos en texto sin formato.
Cambie a la cuenta con Ciphertext Permission (No Decryption Permission) e inicie sesión en la base de datos. Ejecute una sentencia SELECT para ver la tabla de datos. La columna cifrada devuelve datos cifrados.
Cambie a la cuenta con Ciphertext Permission (JDBC Decryption) e inicie sesión en la base de datos. Ejecute una sentencia SELECT para ver la tabla de datos. La columna cifrada devuelve datos cifrados.
PolarDB for MySQL
Requisitos previos
Se ha conectado un clúster de PolarDB for MySQL 5.7 a DSC para la clasificación y categorización de datos sensibles. Los resultados del escaneo son los siguientes.
Los resultados del escaneo muestran que en la tabla user3 de la base de datos sddp_test, la columna password tiene un nivel de sensibilidad de S4 (Información personal sensible - Contraseña), la columna age tiene un nivel de sensibilidad de S2 (Información personal - Edad) y las columnas restantes tienen un nivel de sensibilidad N/A. Todas las columnas están actualmente sin cifrar y la verificación de cifrado ha sido Passed.
Configurar el cifrado de columnas
Siga los pasos en Enable one-click encryption para configurar el cifrado de columnas para esta instancia de base de datos:
Habilite el cifrado para la columna password en la tabla user3.
-
Establezca los siguientes permisos de acceso para las cuentas de base de datos vinculadas.
Establezca permiso de texto sin formato para la cuenta sddp_polardb y permiso de texto cifrado (descifrado JDBC) para la cuenta sddp_03.
Acceder a datos cifrados
Dado que DMS se conecta al clúster de PolarDB for MySQL a través del endpoint principal, la directiva de cifrado de columnas no surte efecto. Por lo tanto, este ejemplo utiliza la línea de comandos para conectarse al clúster de PolarDB for MySQL a través del endpoint del proxy de base de datos y verificar los resultados del cifrado de columnas.
Instale una versión de MySQL en su servidor que sea compatible con su sistema operativo.
-
Conéctese al clúster de base de datos ejecutando el siguiente comando:
mysql -h<endpoint> -P<port> -u<username> -p<password>Endpoint y puerto: Utilice el endpoint del clúster y asegúrese de que su servidor pueda acceder a este endpoint. Para obtener información detallada sobre cómo configurar y ver endpoints de conexión, consulte Configure a database proxy y Manage endpoints.
Nombre de usuario y contraseña: Este ejemplo utiliza el nombre de usuario y la contraseña de las cuentas de base de datos con permiso de texto sin formato y permiso de texto cifrado (descifrado JDBC), respectivamente.
Comandos de conexión de ejemplo:
Uso de una cuenta con permiso de texto sin formato:
mysql -hpc-bp1fd7********v6f.rwlb.rds.aliyuncs.com -P3306 -usddp_polardb -pH********4.Uso de una cuenta con permiso de texto cifrado (descifrado JDBC):
mysql -hpc-bp1fd7********v6f.rwlb.rds.aliyuncs.com -P3306 -usddp_03 -pP********3.
-
Ejecute los siguientes comandos para ver la tabla de datos.
-
Ejecute el comando
use <database_name>;para ingresar a la base de datos de destino. En este ejemplo, se selecciona la base de datos sddp_test.use sddp_test; -
Ejecute una sentencia SELECT para ver la tabla de datos.
SELECT * FROM user3 LIMIT 0, 3;
Resultados de ejemplo:
-
Para la cuenta con permiso de texto sin formato, la columna cifrada devuelve datos en texto sin formato.
mysql> use sddp_test; Database changed mysql> SELECT * FROM user3 LIMIT 0, 3; +-----+------+----------+------+ | age | name | password | name | +-----+------+----------+------+ | xxx | xxx | xxx | xxx | | xxx | xxx | xxx | xxx | | xxx | xxx | xxx | xxx | +-----+------+----------+------+ 3 rows in set (0.01 sec) -
Para la cuenta con permiso de texto cifrado (descifrado JDBC), la columna cifrada devuelve datos cifrados.
mysql> use sddp_test; Database changed mysql> SELECT * FROM user3 LIMIT 0, 3; +-----+------+----------------------------------------------+------+ | age | name | password | name | +-----+------+----------------------------------------------+------+ | xxx | xxx | /0D9Pxxx... | xxx | | xxx | xxx | Q0D9Pxxx... | xxx | | xxx | xxx | 7kD9Pxxx... | xxx | +-----+------+----------------------------------------------+------+ 3 rows in set (0.01 sec)
-
Descifrado del lado del cliente
Para acceder a texto sin formato en una columna cifrada, utilice una cuenta con Ciphertext Permission (JDBC Decryption) y descifre los datos mediante un cliente para descifrado del lado del cliente en Java o Go.
|
Lenguaje |
Tipo de base de datos |
Documentación |
|
Java |
|
Integrate EncJDBC (Compatible con descifrado mediante clave local y clave de KMS) |
|
Go |
|
Integrate GoLang driver (Compatible únicamente con descifrado mediante clave local) |
Preguntas frecuentes sobre fallos de verificación
-
La versión de la base de datos ApsaraDB RDS o PolarDB no es compatible
Haga clic en Upgrade en la columna Encryption Check para ir a la página de actualización correspondiente en la consola de ApsaraDB RDS o PolarDB y actualice la versión de la base de datos.
-
La versión secundaria del motor de ApsaraDB RDS o la versión del proxy de base de datos de PolarDB no es compatible
-
La instancia de base de datos ApsaraDB RDS es una instancia de solo lectura
Al crear una instancia de solo lectura, los datos se replican desde una instancia secundaria, lo que garantiza su consistencia con la instancia principal. Las actualizaciones de datos en la instancia principal también se sincronizan automáticamente con todas las instancias de solo lectura inmediatamente después de completar la operación en la instancia principal. Por lo tanto, configure el cifrado de columnas en la instancia principal.
-
La instancia de base de datos no está en estado "Running"
Por ejemplo, las instancias de base de datos suspendidas o en mantenimiento no admiten la configuración de cifrado de columnas. inicie la instancia o espere a que finalice el mantenimiento. Confirme que el estado de la instancia de base de datos sea Running antes de configurar el cifrado de columnas.
Cuotas y limitaciones
Limitaciones de región: Asegúrese de que la región de su instancia admita la función de cifrado de columnas. Para obtener más información, consulte Supported regions.
-
Limitaciones de base de datos:
Tipo de base de datos
Versión
Algoritmo de cifrado
Método de cifrado
Permiso
ApsaraDB RDS for MySQL
La versión principal del motor es MySQL 5.7 o MySQL 8.0, y la versión secundaria del motor es 20240731 o posterior.
-
AES-128-GCM.
-
AES-256-GCM: Compatible solo si la versión secundaria del motor es 20241231 o posterior.
-
SM4-128-GCM: Compatible solo si la versión secundaria del motor es 20241231 o posterior.
-
Clave local.
-
Clave de KMS: Compatible solo si la versión secundaria del motor es 20241231 o posterior y el tipo de almacenamiento es disco en la nube.
-
Permiso de texto cifrado (sin permiso de descifrado): Compatible solo cuando se utiliza una clave local. Este es el permiso predeterminado.
-
Permiso de texto cifrado (descifrado JDBC): Es el permiso predeterminado cuando se utiliza una clave de KMS.
-
Permiso de texto sin formato.
ApsaraDB RDS for PostgreSQL
La versión principal del motor es PostgreSQL 16 y la versión secundaria del motor debe ser 20241230 o posterior.
AES-256-GCM.
Clave local.
-
Permiso de texto cifrado (descifrado JDBC) (Predeterminado).
-
Permiso de texto sin formato.
PolarDB for MySQL
La versión principal del motor es MySQL 5.7 o MySQL 8.0, y la versión del proxy de base de datos debe ser 2.8.36 o posterior.
ImportanteSi configura directivas de cifrado de columnas para un clúster de PolarDB for MySQL, debe utilizar un endpoint de clúster de lectura/escritura. Los endpoints principales no admiten directivas de cifrado de columnas. Configure database proxy y Manage endpoints.
AES-128-GCM.
Clave local.
PolarDB for PostgreSQL
La versión principal del motor es PostgreSQL 14 y la versión de la base de datos es 2.0.14.15.31.0 o posterior.
AES-256-GCM.
Clave local.
PolarDB for PostgreSQL (Oracle Compatible)
Solo se admite la versión 2.0 compatible con la sintaxis de Oracle. La versión principal del motor es PostgreSQL 14 y la versión de la base de datos es 2.0.14.15.31.0 o posterior.
AES-256-GCM.
Clave local.
PolarDB-X 2.0
La serie debe ser Enterprise Edition. La versión de la base de datos debe ser polardb-2.5.0_5.4.20-20250714 o posterior.
-
AES-128-GCM.
-
AES-256-GCM: Compatible solo si la versión de la base de datos es polardb-2.5.0_5.4.21-20260414 o posterior.
-
SM4-128-GCM.
-
Clave local.
-
Clave de KMS: Compatible solo si la versión de la base de datos es polardb-2.5.0_5.4.21-20260414 o posterior.
-
Documentos relacionados
Para obtener información sobre las funciones y los principios de funcionamiento del cifrado de columnas de base de datos, consulte Column encryption overview.
Para obtener instrucciones detalladas sobre la autorización y la conexión de la base de datos, consulte General database authorization.
Para obtener instrucciones detalladas sobre cómo consultar y corregir los resultados del descubrimiento de datos sensibles, consulte Scan for sensitive data by using a discovery job.
Si los datos de columnas sensibles en una base de datos cambian después de la autorización, debe volver a examinarlos. Para obtener más información, consulte Scan for sensitive data by using a discovery job.