O caminho para a segurança de dados: um guia de políticas para usuários do Databend

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 e-mail
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.
{{o.nome}}
{{m.nome}}

Acho que você gosta

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