El camino hacia la seguridad de los datos: una guía de políticas para los usuarios de Databend

En Databend, estamos comprometidos a mantener seguros los datos de nuestros usuarios. Además de la autenticación de identidad, también ofrecemos una variedad de políticas de acceso, incluidas la Política de red, la Política de contraseñas y la Política de enmascaramiento. Echemos un vistazo a los tipos de usuarios en Databend y la aplicación de estas políticas de seguridad.

tipo de usuario

Los usuarios de Databend se dividen principalmente en dos categorías:

  • Usuario configurado
  • Usuario creado

Configurar usuarios

El usuario de configuración es el usuario definido en el archivo de configuración de Databend (databend-query.toml) y normalmente tiene derechos de administrador. Este tipo de usuario es adecuado para utilizarlo como cuenta de administrador.

[[query.users]]
name = "default"
auth_type = "no_password"

Usuario creado por usted mismo

El usuario creado es un usuario creado mediante el comando CREATE USER de SQL y el acceso a los objetos de la base de datos está restringido por el modelo de permisos.

CREATE [OR REPLACE] USER [IF NOT EXISTS] '<username>' IDENTIFIED [WITH <auth_type>] [BY <password>] [WITH <user_option>, ...]

Autenticacion de usuario

Durante la fase de autenticación del usuario, Databend obtendrá la información del usuario correspondiente en función del nombre de usuario.

Para el usuario de configuración, la fase de autenticación otorga todos los permisos y establece el rol predeterminado en account_admin.

Para los usuarios creados por usted mismo, Databend obtendrá la información de usuario correspondiente de los metadatos.

La credencial se divide en dos categorías:

JWT (token web JSON)

Contraseña

Password Credential admite dos métodos de cifrado, Sha256 y DoubleSha1, y Sha256 se utiliza de forma predeterminada.

Nota: En Credencial JWT, si el usuario no existe, Databend creará automáticamente el usuario.

estrategia de red

La política de red es un mecanismo de configuración utilizado para controlar el acceso de los usuarios a la red dentro de un sistema. Permite a los usuarios definir un conjunto de reglas para controlar el rango de direcciones IP permitidas y bloqueadas para usuarios específicos, controlando efectivamente el acceso a nivel de red.

Cómo utilizar las políticas de red

Puede utilizar el comando ALTER USER para asociar una política de red con un usuario específico. Una política de red se puede asociar con varios usuarios siempre que cumplan con los mismos criterios de política. Para obtener una introducción a la gestión de políticas de red en Databend, consulte la documentación de políticas de red .

El siguiente ejemplo muestra cómo crear una política de red y asociarla con un usuario para controlar el acceso a la red.

-- 创建网络策略
CREATE NETWORK POLICY sample_policy
    ALLOWED_IP_LIST=('192.168.1.0/24')
    BLOCKED_IP_LIST=('192.168.1.99')
    COMMENT='Sample';

-- 将网络策略与用户关联
ALTER USER sample_user WITH SET NETWORK POLICY='sample_policy';

El siguiente ejemplo demuestra la creación de una política de red que especifica direcciones IP permitidas y bloqueadas y la asociación de esta política con un usuario para controlar el acceso a la red. La política de red permite todas las direcciones IP desde 192.168.1.0 a 192.168.1.255 y niega solo 192.168.1.99.

-- Create a network policy
CREATE NETWORK POLICY sample_policy
    ALLOWED_IP_LIST=('192.168.1.0/24')
    BLOCKED_IP_LIST=('192.168.1.99')
    COMMENT='Sample';

SHOW NETWORK POLICIES;

Name         |Allowed Ip List          |Blocked Ip List|Comment    |
-------------+-------------------------+---------------+-----------+
sample_policy|192.168.1.0/24           |192.168.1.99   |Sample     |

-- Create a user
CREATE USER sample_user IDENTIFIED BY 'databend';

-- Associate the network policy with the user
ALTER USER sample_user WITH SET NETWORK POLICY='sample_policy';

Política de contraseñas

Las políticas de contraseñas pueden mejorar la seguridad del sistema y facilitar la administración de cuentas. La política define las reglas al crear o cambiar contraseñas, incluidos aspectos como la longitud, el tipo de carácter, las restricciones de edad, los límites de reintento, el tiempo de bloqueo y el historial de contraseñas. Para obtener una introducción a la gestión de políticas de contraseñas en Databend, consulte la documentación de Política de contraseñas .

Este ejemplo crea la siguiente política de contraseñas y la aplica al usuario de la base de datos:

  • DBA: para usuarios administradores, personalice estrictamente cada atributo de la Política de contraseñas.
  • ReadOnlyUser: para usuarios normales, utiliza valores predeterminados para todas las propiedades.
-- 使用自定义属性值创建 'DBA' Password Policy 
CREATE PASSWORD POLICY DBA
    PASSWORD_MIN_LENGTH = 12
    PASSWORD_MAX_LENGTH = 18
    PASSWORD_MIN_UPPER_CASE_CHARS = 2
    PASSWORD_MIN_LOWER_CASE_CHARS = 2
    PASSWORD_MIN_NUMERIC_CHARS = 2
    PASSWORD_MIN_SPECIAL_CHARS = 1
    PASSWORD_MIN_AGE_DAYS = 1
    PASSWORD_MAX_AGE_DAYS = 30
    PASSWORD_MAX_RETRIES = 3
    PASSWORD_LOCKOUT_TIME_MINS = 30
    PASSWORD_HISTORY = 5;

-- 使用所有属性的默认值创建 'ReadOnlyUser'  Password Policy 
CREATE PASSWORD POLICY ReadOnlyUser;

SHOW PASSWORD POLICIES;

┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│     name     │ comment │                                                                                                 options                                                                                                 │
├──────────────┼─────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ DBA          │         │ MIN_LENGTH=12, MAX_LENGTH=18, MIN_UPPER_CASE_CHARS=2, MIN_LOWER_CASE_CHARS=2, MIN_NUMERIC_CHARS=2, MIN_SPECIAL_CHARS=1, MIN_AGE_DAYS=1, MAX_AGE_DAYS=30, MAX_RETRIES=3, LOCKOUT_TIME_MINS=30, HISTORY=5 │
│ ReadOnlyUser │         │ MIN_LENGTH=8, MAX_LENGTH=256, MIN_UPPER_CASE_CHARS=1, MIN_LOWER_CASE_CHARS=1, MIN_NUMERIC_CHARS=1, MIN_SPECIAL_CHARS=0, MIN_AGE_DAYS=0, MAX_AGE_DAYS=90, MAX_RETRIES=5, LOCKOUT_TIME_MINS=15, HISTORY=0 │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Suponiendo que ya existe un usuario de DBA llamado 'eric', utilice el comando ALTER USER para aplicar la política de contraseña de DBA a este usuario:

-- 将 'DBA' Password Policy 应用于用户 'eric'
ALTER USER eric WITH SET PASSWORD POLICY = 'DBA';

Cree un nuevo usuario llamado 'frank' y aplique la política de contraseña 'ReadOnlyUser' usando el comando CREAR USUARIO:

-- 注意:为用户 'frank' 设置的密码必须遵守关联的 'ReadOnlyUser' Password Policy 定义的约束。
CREATE USER frank IDENTIFIED BY 'Abc12345'
    WITH SET PASSWORD POLICY = 'ReadOnlyUser';

Estrategia de desensibilización de datos

Las políticas de enmascaramiento de datos se utilizan para controlar la visualización o las reglas de acceso y la configuración de datos confidenciales para proteger la confidencialidad de los datos. Al definir una política de enmascaramiento de datos, los usuarios pueden proteger datos confidenciales y al mismo tiempo permitir que los usuarios autorizados interactúen con los datos.

Considere el siguiente escenario, donde queremos mostrar solo las direcciones de correo electrónico de una tabla a los administradores:

identificación correo electrónico
2 [email protected]
1 [email protected]

Para los usuarios que no son administradores, la dirección de correo electrónico se mostrará con enmascaramiento de datos:

|id|email    |
|--+---------+
| 2|*********|
| 1|*********|

Cómo utilizar estrategias de enmascaramiento de datos

Antes de crear una política de enmascaramiento de datos, asegúrese de que los roles y sus correspondientes derechos de acceso se hayan definido o planificado correctamente, porque la implementación de la política depende de estos roles para garantizar la seguridad y eficacia del enmascaramiento de datos. Para administrar usuarios y roles para Databend, consulte la documentación de Usuarios y roles .

Las políticas de enmascaramiento de datos se aplican a las columnas. Por lo tanto, para aplicar el enmascaramiento de datos para una columna específica, el usuario primero debe crear una política de enmascaramiento de datos y luego usar ALTER TABLE COLUMN para asociar la política con la columna esperada. Una vez que se establezca la asociación, la estrategia de desensibilización de datos será más relevante para el importante entorno de privacidad de datos.

El siguiente ejemplo demuestra el proceso de configuración de políticas de enmascaramiento de datos para mostrar o enmascarar datos confidenciales de forma selectiva por función:

Nota : La política de enmascaramiento de datos es una característica de Enterprise Edition. Si desea experimentar esta función y necesita obtener una licencia, comuníquese con el equipo de soporte de Databend .

-- 创建一个表并插入示例数据
CREATE TABLE user_info (
    id INT,
    email STRING
);

INSERT INTO user_info (id, email) VALUES (1, '[email protected]');
INSERT INTO user_info (id, email) VALUES (2, '[email protected]');

-- 创建一个角色
CREATE ROLE 'MANAGERS';
GRANT ALL ON *.* TO ROLE 'MANAGERS';

-- 创建一个用户并将角色授予该用户
CREATE USER manager_user IDENTIFIED BY 'databend';
GRANT ROLE 'MANAGERS' TO 'manager_user';

-- 创建一个数据脱敏策略
CREATE MASKING POLICY email_mask
AS
  (val string)
  RETURNS string ->
  CASE
  WHEN current_role() IN ('MANAGERS') THEN
    val
  ELSE
    '*********'
  END
  COMMENT = 'hide_email';

-- 将数据脱敏策略与'email'列关联
ALTER TABLE user_info MODIFY COLUMN email SET MASKING POLICY email_mask;

-- 以Root用户查询
SELECT * FROM user_info;

id|email    |
--+---------+
 2|*********|
 1|*********|
 

Conclusión

Al configurar adecuadamente las políticas de red, las políticas de contraseñas y las políticas de desensibilización de datos, Databend proporciona un poderoso mecanismo de protección de seguridad de datos para garantizar que los datos del usuario estén protegidos adecuadamente y mejora la seguridad y confiabilidad del sistema.

Linus tomó el asunto en sus propias manos para evitar que los desarrolladores del kernel reemplacen las pestañas con espacios. Su padre es uno de los pocos líderes que puede escribir código, su segundo hijo es el director del departamento de tecnología de código abierto y su hijo menor es un núcleo. Colaborador de código abierto Huawei: tomó 1 año convertir 5000 aplicaciones móviles de uso común Migración completa a Hongmeng Java es el lenguaje más propenso a vulnerabilidades de terceros Wang Chenglu, el padre de Hongmeng: el código abierto Hongmeng es la única innovación arquitectónica. En el campo del software básico en China, Ma Huateng y Zhou Hongyi se dan la mano para "eliminar rencores". Ex desarrollador de Microsoft: el rendimiento de Windows 11 es "ridículamente malo " " Aunque lo que Laoxiangji es de código abierto no es el código, las razones detrás de él. Son muy conmovedores. Meta Llama 3 se lanza oficialmente. Google anuncia una reestructuración a gran escala.
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/5489811/blog/11049330
Recomendado
Clasificación