Partager via


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 :

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.