Configurer la sécurité de votre serveur PostgreSQL avec Azure Arc
Ce document décrit différents aspects liés à la sécurité de votre groupe de serveurs :
- Chiffrement au repos
- Gestion des rôles et des utilisateurs Postgres
- Perspectives générales
- Modifier le mot de passe de l’utilisateur administratif postgres
- Audit
Remarque
En tant que fonctionnalité en préversion, la technologie présentée dans cet article est soumise aux conditions d’utilisation supplémentaires des préversions de Microsoft Azure.
Les dernières mises à jour sont disponibles dans les notes de publication.
Chiffrement au repos
Vous pouvez implémenter un chiffrement au repos en chiffrant les disques sur lesquels vous stockez vos bases de données et/ou en utilisant des fonctions de base de données pour chiffrer les données que vous insérez ou mettez à jour.
Matériel : chiffrement du volume hôte Linux
Implémentez un chiffrement des données système pour sécuriser les données résidant sur les disques utilisés par votre configuration de Data Services activés par Azure Arc. Pour en savoir plus, consultez la rubrique suivante :
- Chiffrement des données au repos sur Linux en général
- Chiffrement de disque avec la commande LUKS
cryptsetup
(Linux)(https://www.cyberciti.biz/security/howto-linux-hard-disk-encryption-with-luks-cryptsetup-command/) spécifiquement. Les Data Services activés avec Azure Arc s’exécutant sur l’infrastructure physique que vous fournissez, vous êtes en charge de la sécurisation de celle-ci.
Logiciel : Utiliser l’extension de pgcrypto
PostgreSQL dans votre groupe de serveurs
En plus de chiffrer les disques utilisés pour héberger votre installation d’Azure Arc, vous pouvez configurer votre serveur PostgreSQL avec Azure Arc pour exposer des mécanismes que vos applications peuvent utiliser pour chiffrer les données figurant dans vos bases de données. L’extension pgcrypto
fait partie des extensions contrib
de Postgres et est disponible dans votre serveur PostgreSQL avec Azure Arc. Vous trouverez plus d’informations sur l’extension pgcrypto
ici.
En résumé, les commandes suivantes vous permettent d’activer l’extension, de la créer et de l’utiliser :
Créer l’extension pgcrypto
Connectez-vous à votre groupe de serveurs avec l’outil client de votre choix et exécutez la requête PostgreSQL standard :
CREATE EXTENSION pgcrypto;
Des détails sur la connexion se trouvent ici.
Vérifier la liste des extensions prêtes à l’emploi dans votre groupe de serveurs
Vous pouvez vérifier que l’extension de pgcrypto
est prête à l’emploi en affichant la liste des extensions disponibles dans votre groupe de serveurs.
Connectez-vous à votre groupe de serveurs avec l’outil client de votre choix et exécutez la requête PostgreSQL standard :
select * from pg_extension;
Consultez pgcrypto
si vous l’avez créée et activée avec les commandes indiquées ci-dessus.
Utiliser l’extension pgcrypto
Vous pouvez maintenant ajuster le code de vos applications afin qu’elles utilisent tout fonction offerte par pgcrypto
:
- fonctions de hachage générales ;
- fonctions de hachage de mot de passe ;
- fonctions de chiffrement PGP ;
- Fonctions de chiffrement brut ;
- fonctions de données aléatoires.
Par exemple, pour générer des valeurs de hachage. Exécutez la commande suivante :
select crypt('Les sanglots longs des violons de l_automne', gen_salt('md5'));
Retourne le hachage suivant :
crypt
------------------------------------
$1$/9ACBYOV$z52PAGjQ5WTU9xvEECBNv/
Ou, par exemple :
select hmac('Les sanglots longs des violons de l_automne', 'md5', 'sha256');
Retourne le hachage suivant :
hmac
--------------------------------------------------------------------
\xd4e4790b69d2cc8dbce3385ee63272bc7760f1603640bb211a7b864e695570c5
Ou, par exemple, pour stocker des données chiffrées telles qu’un mot de passe :
Une application stocke des secrets dans le tableau suivant :
create table mysecrets(USERid int, USERname char(255), USERpassword char(512));
Chiffrez son mot de passe pendant la création d’un utilisateur :
insert into mysecrets values (1, 'Me', crypt('MySecretPasswrod', gen_salt('md5')));
Notez que le mot de passe est chiffré :
select * from mysecrets;
Sortie :
- USERid: 1
- USERname: Me
- USERpassword: $1$Uc7jzZOp$NTfcGo7F10zGOkXOwjHy31
Quand vous vous connectez à l’application et entrez un mot de passe, l’application cherche dans la table mysecrets
et retourne le nom de l’utilisateur s’il y a une correspondance entre le mot de passe fourni à l’application et les mots de passe stockés dans la table. Par exemple :
Entrez le mauvais mot de passe :
select USERname from mysecrets where (USERpassword = crypt('WrongPassword', USERpassword));
Sortie
USERname --------- (0 rows)
Entrez le bon mot de passe :
select USERname from mysecrets where (USERpassword = crypt('MySecretPasswrod', USERpassword));
Sortie :
USERname --------- Me (1 row)
Ce petit exemple montre que vous pouvez chiffrer des données au repos (stocker des données chiffrées) sur un serveur PostgreSQL avec Azure Arc en utilisant l’extension pgcrypto
Postgres, et que vos applications peuvent utiliser les fonctions offertes par pgcrypto
pour manipuler ces données chiffrées.
Gestion des rôles et des utilisateurs Postgres
Perspectives générales
Pour configurer des rôles et des utilisateurs dans votre serveur PostgreSQL avec Azure Arc, utilisez la méthode Postgres standard pour gérer les rôles et les utilisateurs. Pour plus d’informations, consultez cette page.
Audit
Pour les scénarios d’audit, configurez votre groupe de serveurs de façon à ce qu’il utilise les extensions pgaudit
de Postgres. Pour plus d’informations sur pgaudit
, consultez le pgAudit
projet GitHub. Pour activer l’extension pgaudit
dans votre groupe de serveurs, consultez Utiliser les extensions PostgreSQL.
Utiliser la connexion SSL
SSL est requis pour les connexions clientes. Dans la chaîne de connexion, le paramètre de mode SSL ne doit pas être désactivé. Chaînes de connexion formulaire.
Contenu connexe
- Voir l’extension
pgcrypto
- Voir Utiliser les extensions PostgreSQL