Chez Databend, nous nous engageons à assurer la sécurité des données de nos utilisateurs. En plus de l'authentification de l'identité, nous proposons également diverses politiques d'accès, notamment la politique de réseau, la politique de mot de passe et la politique de masquage. Jetons un coup d'œil aux types d'utilisateurs dans Databend et à l'application de ces politiques de sécurité.
type d'utilisateur
Les utilisateurs de Databend sont principalement divisés en deux catégories :
- Utilisateur configuré
- Utilisateur créé
Configurer les utilisateurs
L'utilisateur de configuration est l'utilisateur défini dans le fichier de configuration Databend (databend-query.toml) et dispose généralement de droits d'administrateur. Ce type d'utilisateur peut être utilisé en tant que compte administrateur.
[[query.users]]
name = "default"
auth_type = "no_password"
Utilisateur auto-créé
L'utilisateur créé est un utilisateur créé via la commande CREATE USER de SQL et l'accès aux objets de base de données est limité par le modèle d'autorisation.
CREATE [OR REPLACE] USER [IF NOT EXISTS] '<username>' IDENTIFIED [WITH <auth_type>] [BY <password>] [WITH <user_option>, ...]
Authentification d'utilisateur
Pendant la phase d'authentification de l'utilisateur, Databend obtiendra les informations utilisateur correspondantes en fonction du nom d'utilisateur.
Pour l'utilisateur de configuration, la phase d'authentification accorde toutes les autorisations et définit le rôle par défaut sur account_admin.
Pour les utilisateurs auto-créés, Databend obtiendra les informations utilisateur correspondantes à partir des métadonnées.
Les titres de compétences sont divisés en deux catégories :
JWT(Jeton Web JSON)
Mot de passe
Password Credential prend en charge deux méthodes de cryptage, Sha256 et DoubleSha1, et Sha256 est utilisé par défaut.
Remarque : Sous JWT Credential, si l'utilisateur n'existe pas, Databend créera automatiquement l'utilisateur.
stratégie de réseau
La politique réseau est un mécanisme de configuration utilisé pour contrôler l'accès des utilisateurs au réseau au sein d'un système. Il permet aux utilisateurs de définir un ensemble de règles pour contrôler la plage d'adresses IP autorisées et bloquées pour des utilisateurs spécifiques, contrôlant ainsi efficacement l'accès au niveau du réseau.
Comment utiliser les politiques de réseau
Vous pouvez utiliser la commande ALTER USER pour associer une stratégie réseau à un utilisateur spécifique. Une stratégie réseau peut être associée à plusieurs utilisateurs à condition qu'ils répondent aux mêmes critères de stratégie. Pour une introduction à la gestion des stratégies réseau dans Databend, consultez la documentation sur les stratégies réseau .
L'exemple suivant montre comment créer une stratégie réseau et l'associer à un utilisateur pour contrôler l'accès au réseau.
-- 创建网络策略
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';
L'exemple suivant montre la création d'une stratégie réseau qui spécifie les adresses IP autorisées et bloquées et l'association de cette stratégie à un utilisateur pour contrôler l'accès au réseau. La politique réseau autorise toutes les adresses IP de 192.168.1.0 à 192.168.1.255 et refuse uniquement 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';
Politique de mot de passe
Les politiques de mot de passe peuvent améliorer la sécurité du système et rendre la gestion des comptes plus fluide. La politique définit les règles lors de la création ou de la modification des mots de passe, y compris des aspects tels que la longueur, le type de caractère, les restrictions d'âge, les limites de tentatives, le temps de verrouillage et l'historique des mots de passe. Pour une introduction à la gestion des stratégies de mot de passe dans Databend, consultez la documentation sur la stratégie de mot de passe .
Cet exemple crée la stratégie de mot de passe suivante et l'applique à l'utilisateur de la base de données :
- DBA : pour les utilisateurs administrateurs, personnalisez strictement chaque attribut de stratégie de mot de passe.
- ReadOnlyUser : pour les utilisateurs normaux, utilise les valeurs par défaut pour toutes les propriétés.
-- 使用自定义属性值创建 '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 │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
En supposant qu'il existe déjà un utilisateur DBA nommé « eric », utilisez la commande ALTER USER pour appliquer la stratégie de mot de passe DBA à cet utilisateur :
-- 将 'DBA' Password Policy 应用于用户 'eric'
ALTER USER eric WITH SET PASSWORD POLICY = 'DBA';
Créez un nouvel utilisateur nommé « frank » et appliquez la politique de mot de passe « ReadOnlyUser » à l'aide de la commande CREATE USER :
-- 注意:为用户 'frank' 设置的密码必须遵守关联的 'ReadOnlyUser' Password Policy 定义的约束。
CREATE USER frank IDENTIFIED BY 'Abc12345'
WITH SET PASSWORD POLICY = 'ReadOnlyUser';
Stratégie de désensibilisation des données
Les politiques de masquage des données sont utilisées pour contrôler les règles et paramètres d’affichage ou d’accès des données sensibles afin de protéger la confidentialité des données. En définissant une politique de masquage des données, les utilisateurs peuvent protéger les données sensibles tout en permettant aux utilisateurs autorisés d'interagir avec les données.
Considérez le scénario suivant, dans lequel nous souhaitons afficher uniquement les adresses e-mail d'un tableau aux gestionnaires :
identifiant | |
---|---|
2 | [email protected] |
1 | [email protected] |
Pour les utilisateurs non gestionnaires, l'adresse email sera affichée avec un masquage des données :
|id|email |
|--+---------+
| 2|*********|
| 1|*********|
Comment utiliser les stratégies de masquage des données
Avant de créer une politique de masquage des données, assurez-vous que les rôles et leurs droits d'accès correspondants ont été correctement définis ou planifiés, car la mise en œuvre de la politique s'appuie sur ces rôles pour assurer la sécurité et l'efficacité du masquage des données. Pour gérer les utilisateurs et les rôles pour Databend, consultez la documentation Utilisateurs et rôles .
Les politiques de masquage des données sont appliquées aux colonnes. Par conséquent, pour appliquer le masquage des données à une colonne spécifique, l'utilisateur doit d'abord créer une stratégie de masquage des données, puis utiliser ALTER TABLE COLUMN pour associer la stratégie à la colonne attendue. Une fois l’association établie, la stratégie de désensibilisation des données sera plus pertinente pour l’environnement important de la confidentialité des données.
L'exemple suivant illustre le processus de définition de stratégie de masquage des données pour afficher ou masquer de manière sélective les données sensibles par rôle :
Remarque : la politique de masquage des données est une fonctionnalité de l'édition Entreprise. Si vous souhaitez découvrir cette fonctionnalité et devez obtenir une licence, veuillez contacter l'équipe d'assistance 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|*********|
Conclusion
En configurant correctement les politiques réseau, les politiques de mot de passe et les politiques de désensibilisation des données, Databend fournit un puissant mécanisme de protection de la sécurité des données pour garantir que les données des utilisateurs sont correctement protégées et améliore la sécurité et la fiabilité du système.
Linus a pris les choses en main pour empêcher les développeurs du noyau de remplacer les tabulations par des espaces. Son père est l'un des rares dirigeants capables d'écrire du code, son deuxième fils est directeur du département de technologie open source et son plus jeune fils est un noyau. contributeur à l'open source. Huawei : Il a fallu 1 an pour convertir 5 000 applications mobiles couramment utilisées Migration complète vers Hongmeng Java est le langage le plus sujet aux vulnérabilités tierces Wang Chenglu, le père de Hongmeng : l'open source Hongmeng est la seule innovation architecturale. dans le domaine des logiciels de base en Chine, Ma Huateng et Zhou Hongyi se serrent la main pour « éliminer les rancunes ». Ancien développeur de Microsoft : les performances de Windows 11 sont « ridiculement mauvaises » " Bien que ce que Laoxiangji est open source, ce ne soit pas le code, les raisons qui le sous-tendent. sont très réconfortants. Meta Llama 3 est officiellement publié. Google annonce une restructuration à grande échelle.