Na Databend, temos o compromisso de manter os dados de nossos usuários seguros. Além da autenticação de identidade, também fornecemos uma variedade de políticas de acesso, incluindo Política de Rede, Política de Senha e Política de Mascaramento. Vamos dar uma olhada nos tipos de usuários no Databend e na aplicação dessas políticas de segurança.
tipo de usuário
Os usuários no Databend são divididos principalmente em duas categorias:
- Usuário configurado
- Usuário criado
Configurar usuários
O usuário de configuração é o usuário definido no arquivo de configuração do Databend (databend-query.toml) e geralmente possui direitos de administrador. Este tipo de usuário é adequado para uso como conta de administrador.
[[query.users]]
name = "default"
auth_type = "no_password"
Usuário autocriado
Usuário Criado é um usuário criado por meio do comando CREATE USER do SQL, e o acesso aos objetos do banco de dados é restrito pelo modelo de permissão.
CREATE [OR REPLACE] USER [IF NOT EXISTS] '<username>' IDENTIFIED [WITH <auth_type>] [BY <password>] [WITH <user_option>, ...]
Autenticação de usuário
Durante a fase de autenticação do usuário, o Databend obterá as informações do usuário correspondentes com base no nome do usuário.
Para o usuário de configuração, a fase de autenticação concede todas as permissões e define a função padrão como account_admin.
Para usuários criados por você mesmo, o Databend obterá as informações do usuário correspondentes a partir dos metadados.
A credencial é dividida em duas categorias:
JWT (Token da Web JSON)
Senha
A credencial de senha oferece suporte a dois métodos de criptografia, Sha256 e DoubleSha1, e Sha256 é usado por padrão.
Nota: Em Credencial JWT, se o usuário não existir, o Databend criará o usuário automaticamente.
estratégia de rede
A política de rede é um mecanismo de configuração usado para controlar o acesso do usuário à rede dentro de um sistema. Ele permite que os usuários definam um conjunto de regras para controlar o intervalo de endereços IP permitidos e bloqueados para usuários específicos, controlando efetivamente o acesso no nível da rede.
Como usar políticas de rede
Você pode usar o comando ALTER USER para associar uma política de rede a um usuário específico. Uma política de rede pode ser associada a vários usuários, desde que atendam aos mesmos critérios de política. Para obter uma introdução ao gerenciamento de políticas de rede no Databend, consulte a documentação de políticas de rede .
O exemplo a seguir mostra como criar uma política de rede e associá-la a um usuário para controlar o acesso à rede.
-- 创建网络策略
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';
O exemplo a seguir demonstra a criação de uma política de rede que especifica endereços IP permitidos e bloqueados e a associação dessa política a um usuário para controlar o acesso à rede. A política de rede permite todos os endereços IP de 192.168.1.0 a 192.168.1.255 e nega apenas 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 senha
As políticas de senha podem melhorar a segurança do sistema e tornar o gerenciamento de contas mais fácil. A política define as regras ao criar ou alterar senhas, incluindo aspectos como comprimento, tipo de caractere, restrições de idade, limites de novas tentativas, tempo de bloqueio e histórico de senhas. Para obter uma introdução ao gerenciamento de políticas de senha no Databend, consulte a documentação da Política de Senha .
Este exemplo cria a seguinte Política de Senha e a aplica ao usuário do banco de dados:
- DBA: Para usuários administradores, personalize estritamente cada atributo da Política de Senha.
- ReadOnlyUser: Para usuários normais, utiliza valores padrão para todas as propriedades.
-- 使用自定义属性值创建 '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 │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Supondo que já exista um usuário DBA chamado 'eric', use o comando ALTER USER para aplicar a Política de Senha do DBA a este usuário:
-- 将 'DBA' Password Policy 应用于用户 'eric'
ALTER USER eric WITH SET PASSWORD POLICY = 'DBA';
Crie um novo usuário chamado 'frank' e aplique a política de senha 'ReadOnlyUser' usando o comando CREATE USER:
-- 注意:为用户 'frank' 设置的密码必须遵守关联的 'ReadOnlyUser' Password Policy 定义的约束。
CREATE USER frank IDENTIFIED BY 'Abc12345'
WITH SET PASSWORD POLICY = 'ReadOnlyUser';
Estratégia de dessensibilização de dados
As políticas de mascaramento de dados são usadas para controlar as regras e configurações de exibição ou acesso de dados confidenciais para proteger a confidencialidade dos dados. Ao definir uma política de mascaramento de dados, os usuários podem proteger dados confidenciais e, ao mesmo tempo, permitir que usuários autorizados interajam com os dados.
Considere o seguinte cenário, onde queremos mostrar apenas os endereços de e-mail de uma tabela para os gerentes:
eu ia | |
---|---|
2 | [email protected] |
1 | [email protected] |
Para usuários não administradores, o endereço de e-mail será exibido com mascaramento de dados:
|id|email |
|--+---------+
| 2|*********|
| 1|*********|
Como usar estratégias de mascaramento de dados
Antes de criar uma política de mascaramento de dados, certifique-se de que as funções e os seus correspondentes direitos de acesso foram corretamente definidos ou planeados, porque a implementação da política depende destas funções para garantir a segurança e a eficácia do mascaramento de dados. Para gerenciar usuários e funções do Databend, consulte a documentação de Usuários e Funções .
As políticas de mascaramento de dados são aplicadas às colunas. Portanto, para aplicar o mascaramento de dados para uma coluna específica, o usuário deve primeiro criar uma política de mascaramento de dados e depois utilizar ALTER TABLE COLUMN para associar a política à coluna esperada. Uma vez estabelecida a associação, a estratégia de dessensibilização de dados será mais relevante para o importante ambiente de privacidade de dados.
O exemplo a seguir demonstra o processo de definição de política de mascaramento de dados para exibição seletiva ou mascaramento de dados confidenciais por função:
Observação : a política de mascaramento de dados é um recurso da Enterprise Edition. Se você deseja experimentar esse recurso e precisa obter uma licença, entre em contato com a equipe de suporte do 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|*********|
Conclusão
Ao configurar adequadamente políticas de rede, políticas de senha e políticas de dessensibilização de dados, o Databend fornece um poderoso mecanismo de proteção de segurança de dados para garantir que os dados do usuário sejam devidamente protegidos e melhore a segurança e a confiabilidade do sistema.
Linus resolveu resolver o problema por conta própria para evitar que os desenvolvedores do kernel substituíssem tabulações por espaços. Seu pai é um dos poucos líderes que sabe escrever código, seu segundo filho é o diretor do departamento de tecnologia de código aberto e seu filho mais novo é um núcleo. contribuidor de código aberto Huawei: Demorou 1 ano para converter 5.000 aplicativos móveis comumente usados A migração abrangente para Hongmeng Java é a linguagem mais propensa a vulnerabilidades de terceiros Wang Chenglu, o pai de Hongmeng: Hongmeng de código aberto é a única inovação arquitetônica. no campo de software básico na China. Ma Huateng e Zhou Hongyi apertam as mãos para "remover rancores". Ex-desenvolvedor da Microsoft: o desempenho do Windows 11 é "ridiculamente ruim" " Embora o que Laoxiangji seja de código aberto não seja o código, as razões por trás disso são muito emocionantes. Meta Llama 3 é lançado oficialmente. Google anuncia uma reestruturação em grande escala.