Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation SCRAM pour le chiffrement des mots de SQL passe Postgre
Le mécanisme d'authentification Salted Challenge Response (SCRAM) est une alternative à l'algorithme message digest (MD5) par défaut SQL de Postgre pour chiffrer les mots de passe. Le mécanisme SCRAM d'authentification est considéré comme plus sûr queMD5. Pour en savoir plus sur ces deux approches différentes de sécurisation des mots de passe, consultez la section Authentification par mot de passe
Nous vous recommandons de l'utiliser SCRAM plutôt que MD5 comme schéma de chiffrement de mot de passe pour votre . RDSpour une SQL instance de base de données Postgre. Il s'agit d'un mécanisme stimulation/réponse cryptographique qui utilise l'algorithme scram-sha-256 pour l'authentification par mot de passe et le chiffrement de mot de passe.
Il se peut que vous deviez mettre à jour les bibliothèques que vos applications clientes doivent prendre en chargeSCRAM. Par exemple, les JDBC versions antérieures à la version 42.2.0 ne sont pas prises en chargeSCRAM. Pour plus d'informations, consultez Postgre SQL JDBC Driver
Note
RDSpour les SQL versions 13.1 et supérieures de Postgre, supportez scram-sha-256. Ces versions vous permettent également de configurer votre instance de base de données selon les besoinsSCRAM, comme indiqué dans les procédures suivantes.
Configuration du pour que l'SQLinstance de base de données Postgre ait besoin SCRAM
vous pouvez exiger que le pour l'SQLinstance de base de données Postgre n'accepte que les mots de passe utilisant l'algorithme scram-sha-256.
Important
Pour les RDS proxys existants dotés de SQL bases de données Postgre, si vous modifiez l'authentification de la base de données pour l'utiliser SCRAM
uniquement, le proxy devient indisponible pendant 60 secondes au maximum. Pour éviter ce problème, effectuez l'une des actions suivantes :
Veillez à ce que la base de données permette à la fois l'authentification
SCRAM
etMD5
.Pour utiliser uniquement l'authentification
SCRAM
, créez un nouveau proxy, migrez le trafic de votre application vers ce nouveau proxy, puis supprimez le proxy précédemment associé à la base de données.
Avant d'apporter des modifications à votre système, assurez-vous de bien comprendre le processus complet, comme suit :
Obtenez des informations sur tous les rôles et sur le chiffrement des mots de passe pour tous les utilisateurs de base de données.
Vérifiez les paramètres de votre pour l'SQLinstance de base de données Postgre RDS pour les paramètres qui contrôlent le chiffrement des mots de passe.
Si votre instance de RDS pour Postgre SQL utilise un groupe de paramètres par défaut, vous devez créer un de données personnalisé et l'appliquer à votre instance de RDS pour Postgre SQL afin de pouvoir modifier les paramètres en cas de besoin. Si votre pour SQL instance de base de données Postgre utilise un groupe de paramètres personnalisé, vous pouvez modifier les paramètres nécessaires ultérieurement dans le processus, selon vos besoins.
-
Remplacez le paramètre
password_encryption
parscram-sha-256
. -
Informez tous les utilisateurs de la base de données qu'ils doivent mettre à jour leurs mots de passe. Faites de même pour votre compte
postgres
. Les nouveaux mots de passe sont chiffrés et stockés à l'aide de l'algorithme scram-sha-256. Vérifiez que tous les mots de passe utilisent le même type de chiffrement.
-
Si tous les mots de passe utilisent scram-sha-256, vous pouvez modifier le paramètre
rds.accepted_password_auth_method
demd5+scram
àscram-sha-256
.
Avertissement
Après avoir changé rds.accepted_password_auth_method
pour scram-sha-256 uniquement, tous les utilisateurs (rôles) avec des mots de passe chiffrés par md5
ne peuvent pas se connecter.
Préparation à exiger SCRAM votre de base de données Postgre SQL
Avant d'apporter des modifications à votre pour l'SQLinstance de base de données Postgre, vérifiez tous les comptes utilisateur de base de données existants. Vérifiez également le type de chiffrement utilisé pour les mots de passe. Pour ce faire, utilisez l'extension rds_tools
. Cette extension est prise en charge sur pour Postgre SQL 13.1 et versions supérieures.
Pour obtenir la liste des utilisateurs de base de données (rôles) et des méthodes de chiffrement des mots de passe
psql
À utiliser pour vous connecter à , votre RDS SQL instance de base de données Postgre, comme indiqué ci-dessous.psql --host=
db-name.111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --passwordInstallez l'extension
rds_tools
.postgres=>
CREATE EXTENSION rds_tools;
CREATE EXTENSION
Obtenez la liste des rôles et des méthodes de chiffrement.
postgres=>
SELECT * FROM rds_tools.role_password_encryption_type();Vous voyez des résultats similaires à ce qui suit.
rolname | encryption_type ----------------------+----------------- pg_monitor | pg_read_all_settings | pg_read_all_stats | pg_stat_scan_tables | pg_signal_backend | lab_tester | md5 user_465 | md5 postgres | md5 (8 rows)
Création d'un groupe de paramètres de base de données personnalisé
Note
Si votre pour SQL instance de base de données Postgre utilise déjà un groupe de paramètres personnalisé, vous n'avez pas besoin d'en créer un nouveau.
Pour un aperçu des groupes de paramètres pour AmazonRDS, consultezUtilisation de paramètres sur votre instance de base de données RDS for PostgreSQL.
Le type de chiffrement utilisé pour les mots de passe est défini dans un paramètre, password_encryption
. Le chiffrement autorisé par le pour l'SQLinstance de base de données Postgre est défini dans un autre paramètre,. rds.accepted_password_auth_method
Le remplacement de l'un de ces paramètres par une valeur autre que celle par défaut requiert de créer un groupe de paramètres de base de données personnalisé et de l'appliquer à votre instance.
Vous pouvez également utiliser AWS Management Console ou RDS API pour créer un de base de données personnalisé. Pour de plus amples informations, .
Vous pouvez maintenant employer le groupe de paramètres personnalisés avec votre instance de base de données.
Pour créer un groupe de paramètres de base de données personnalisé
Utilisez la
create-db-parameter-group
CLI commande pour créer le groupe de paramètres de base de données personnalisé. Cet exemple utilisepostgres13
comme source pour ce groupe de paramètres personnalisé.Dans Linux, macOS, ou Unix:
aws rds create-db-parameter-group --db-parameter-group-name '
docs-lab-scram-passwords
' \ --db-parameter-group-family postgres13 --description 'Custom parameter group for SCRAM
'Dans Windows:
aws rds create-db-parameter-group --db-parameter-group-name "
docs-lab-scram-passwords
" ^ --db-parameter-group-family postgres13 --description "Custom DB parameter group for SCRAM
"Utilisez la
modify-db-instance
CLI commande pour appliquer ce groupe de paramètres personnalisé à votre SQL cluster de base de données RDS pour Postgre.Dans Linux, macOS, ou Unix:
aws rds modify-db-instance --db-instance-identifier '
your-instance-name
' \ --db-parameter-group-name "docs-lab-scram-passwords
Dans Windows:
aws rds modify-db-instance --db-instance-identifier "
your-instance-name
" ^ --db-parameter-group-name "docs-lab-scram-passwords
Pour resynchroniser votre RDS SQL instance de base de données Postgre avec votre groupe de paramètres de base de données personnalisé, vous devez redémarrer l'instance principale et toutes les autres instances du cluster. Planifiez cette opération pendant votre fenêtre de maintenance habituelle afin de minimiser l'impact sur vos utilisateurs.
Configuration du chiffrement des mots de passe à utiliser SCRAM
Le mécanisme de chiffrement du mot de passe utilisé par un pour une SQL instance de base de données Postgre est défini dans le de base de données. password_encryption
Les valeurs autorisées incluent une valeur non définie, md5
ou scram-sha-256
. La valeur par défaut dépend de la SQL version d' pour Postgre, comme suit :
RDSpour Postgre SQL 14 et versions ultérieures — La valeur par défaut est
scram-sha-256
RDSpour Postgre SQL 13 — La valeur par défaut est
md5
Avec un de base de données personnalisé attaché à votre pour une SQL instance de base de données Postgre, vous pouvez modifier les valeurs du paramètre de chiffrement du mot de passe.
Pour remplacer le paramètre de chiffrement des mots de passe par scram-sha-256
Remplacez la valeur du chiffrement des mots de passe par scram-sha-256, comme indiqué ci-après. Cette modification peut être appliquée immédiatement, car le paramètre est dynamique. Aucun redémarrage n'est donc nécessaire pour que la modification soit appliquée.
Dans Linux, macOS, ou Unix:
aws rds modify-db-parameter-group --db-parameter-group-name \ 'docs-lab-scram-passwords' --parameters 'ParameterName=password_encryption,ParameterValue=scram-sha-256,ApplyMethod=immediate'
Dans Windows:
aws rds modify-db-parameter-group --db-parameter-group-name ^ "docs-lab-scram-passwords" --parameters "ParameterName=password_encryption,ParameterValue=scram-sha-256,ApplyMethod=immediate"
Migration des mots de passe pour les rôles d'utilisateur vers SCRAM
Vous pouvez migrer les mots de passe pour les rôles d'utilisateur vers la méthode SCRAM décrite ci-dessous.
Pour migrer les mots de passe des utilisateurs (rôles) de base de données MD5 de SCRAM
Connectez-vous en tant qu'utilisateur administrateur (nom d'utilisateur par défaut,
postgres
) comme suit.psql --host=
db-name.111122223333
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --passwordVérifiez le réglage du
password_encryption
paramètre sur votre SQL instance de base de données RDS pour Postgre à l'aide de la commande suivante.postgres=>
SHOW password_encryption;
password_encryption --------------------- md5 (1 row)
Remplacez la valeur de ce paramètre par scram-sha-256. Il s'agit d'un paramètre dynamique. Vous n'avez donc pas besoin de redémarrer l'instance après cette modification. Vérifiez à nouveau la valeur pour vous assurer qu'elle est maintenant réglée sur
scram-sha-256
, comme suit.postgres=>
SHOW password_encryption;
password_encryption --------------------- scram-sha-256 (1 row)
Demandez à tous les utilisateurs de base de données de modifier leurs mots de passe. Veillez également à modifier votre propre mot de passe pour le compte
postgres
(utilisateur de base de données avec privilègesrds_superuser
).labdb=>
ALTER ROLE postgres WITH LOGIN PASSWORD 'change_me';ALTER ROLE
Répétez le processus pour toutes les bases de données de votre . RDSpour une SQL instance de base de données Postgre.
Modification du paramètre à requérir SCRAM
Il s'agit de la dernière étape du processus. Après avoir effectué la modification dans la procédure suivante, les comptes utilisateur (rôles) qui utilisent toujours le md5
chiffrement des mots de passe ne peuvent pas se connecter au . RDSpour une SQL instance de base de données Postgre.
rds.accepted_password_auth_method
Spécifie la méthode de chiffrement que le pour l'SQLinstance de base de données Postgre accepte comme mot de passe utilisateur lors du processus de connexion. La valeur par défaut est md5+scram
, ce qui signifie que l'une des méthodes est acceptée. L'image suivante indique la valeur par défaut de ce paramètre.
Les valeurs autorisées pour ce paramètre sont md5+scram
ou scram
. Si la valeur de ce paramètre est remplacée par scram
, le paramètre devient obligatoire.
Pour modifier la valeur du paramètre afin d'exiger SCRAM l'authentification des mots de passe
Vérifiez que tous les mots de passe utilisateur de base de données pour toutes les bases de données de votre de données Postgre sont utilisés
scram-sha-256
pour le chiffrement des mots de passe. Pour ce faire, interrogezrds_tools
pour obtenir le rôle (utilisateur) et le type de chiffrement, comme suit.postgres=>
SELECT * FROM rds_tools.role_password_encryption_type();
rolname | encryption_type ----------------------+----------------- pg_monitor | pg_read_all_settings | pg_read_all_stats | pg_stat_scan_tables | pg_signal_backend | lab_tester | scram-sha-256 user_465 | scram-sha-256 postgres | scram-sha-256 ( rows)
Répétez la requête sur toutes les instances de base de données de votre . RDSpour une SQL instance de base de données Postgre.
Si tous les mots de passe utilisent scram-sha-256, vous pouvez continuer.
Remplacez la valeur de l'authentification par mot de passe acceptée par scram-sha-256, comme suit.
Dans Linux, macOS, ou Unix:
aws rds modify-db-parameter-group --db-parameter-group-name 'docs-lab-scram-passwords' \ --parameters 'ParameterName=rds.accepted_password_auth_method,ParameterValue=scram,ApplyMethod=immediate'
Dans Windows:
aws rds modify-db-parameter-group --db-parameter-group-name "docs-lab-scram-passwords" ^ --parameters "ParameterName=rds.accepted_password_auth_method,ParameterValue=scram,ApplyMethod=immediate"