Le Blog Amazon Web Services

Urgent et Important – Effectuez la rotation des certificats Amazon RDS, Aurora et Amazon DocumentDB (avec compatibilité MongoDB)

Vous avez déjà reçu un e-mail ou vu une notification sur la console, mais on ne veut pas que vous soyez pris par surprise !

Effectuez la rotation dès maintenant !

Si vous utilisez Amazon Aurora, Amazon Relational Database Service (RDS), ou Amazon DocumentDB (avec compatibilité MongoDB) et tirez parti de la validation de certificat SSL/TLS lorsque vous vous connectez à vos instances de base de données, vous devez télécharger et installer un nouveau certificat, effectuer la rotation de l’autorité de certification (CA) pour vos instances, et enfin redémarrer vos instances.

Si vous n’utilisez pas de connections chiffrées avec SSL/TLS ou la validation de certificat, vous n’avez pas besoin de faire la moindre mise à jour, mais nous vous recommandons de le faire afin d’être prêt si vous décidez, à l’avenir, d’utiliser des connections chiffrées avec SSL/TLS. Dans ce cas, vous pouvez utiliser une nouvelle option CLI qui effectue la rotation et met en place les nouveaux certificat tout en évitant un redémarrage.
Le nouveau certificat (CA-2019) est disponible dans un fichier qui inclus l’ancien certificat (CA-2015) afin de vous permettre une transition en douceur et éviter le paradoxe de la poule et de l’œuf.

Que se passe-t-il ?

Dans le cadre de la maintenance standard et des meilleures pratiques de sécurité pour RDS, Aurora et DocumentDB, les certificats SSL/TLS pour les instances de bases de données RDS, les clusters de base données Aurora ainsi que les clusters de base de données DocumentDB expirent et sont remplacés tous les cinq ans. Le certificat actuel va expirer le 5 mars 2020. Les clients de base de données et les applications utilisant SSL/TLS avec validation du certificat pour se connecter aux bases de données RDS, clusters Aurora ou cluster DocumentDB vont perdre leur connectivité à partir du 5 mars 2020 si vous ne mettez pas à jour le certificat SSL/TLS à la fois au niveau du client et du serveur de base de données. Il est fortement recommandé d’effectuer ce changement d’ici au 28 février 2020 pour éviter de perturber votre instance Amazon RDS, Amazon Aurora ou cluster Amazon DocumentDB.

Par ailleurs, toutes les nouvelles instances de base de données RDS, Aurora et DocumentDB créés après le 14 janvier 2020 possèdent déjà les nouveaux certificats. Si vous souhaitez temporairement revenir à l’ancien certificat pour vos nouvelles instances de base de données RDS, clusters de base de données Aurora et cluster de base de données DocumentDB, vous pouvez le faire en utilisation la console de management AWS, l’API RDS, ou la CLI AWS. Cependant, comme mentionné ci-dessus, ces bases et toutes les autres instances de base de données et clusters de bases de données devront être mises à jour pour utiliser le nouveau certificat d’ici au 5 mars 2020. Les instances de base de données RDS, Aurora et DocumentDB créés avant le 14 janvier 2020 utilisent toujours les anciens certificats.

Comment effectuer la rotation

Plus tôt cette année, nous avons créé une instance de base de donnée Amazon RDS for MySQL et nous l’avons laissée de côté en préparation de cet article. Comme vous pouvez le voir sur la capture d’écran ci-dessous, la console RDS indique que nous devons effectuer la rotation du certificat.

Nous visitons la page Using SSL/TLS to Encrypt a Connection to a DB Instance et nous téléchargeons le nouveau certificat. Si notre client de base de données est capable de prendre en charge une chaîne de certificats, nous pouvons télécharger le certificat racine et l’utiliser pour toutes les régions. Sinon, nous téléchargeons le certificat qui est spécifique à la région où notre instance de base de données est située. Nous décidons de télécharger un lot de certificats qui contient l’ancien et le nouveau certificat racine :

Ensuite, nous mettons à jour notre application cliente afin qu’elle utilise les nouveaux certificats (CA-2019). Ce processus est spécifique à chaque application et à chaque bibliothèque cliente de la base de données. A titre d’exemple, dans le cas d’une application Java, le certificat est généralement stocké dans le magasins de clefs (KeyStore) Java. Dans le cas d’une application PHP ou Python, le certificat est généralement fourni en argument avant l’établissement de la connexion. Suivant les cas, il est possible que la bibliothèque client de la base de données ne valide pas le certificat, dans ce cas aucune modification est nécessaire mais il est cependant recommandé d’effectuer la validation de certificat afin de valider l’authenticité de la connexion chiffrée par SSL/TLS.

Une fois l’application cliente mise à jour, nous changeons d’autorité de certification (CA) en rds-ca-2019. Nous pouvons alors Modifier l’instance dans la console et sélectionner la nouvelle CA :

Nous pouvons également le faire au travers de la commande en ligne (CLI) :

$ aws rds modify-db-instance --db-instance-identifier database-1 \
  --ca-certificate-identifier rds-ca-2019

Le changement s’appliquera pendant la prochaine fenêtre de maintenance. Nous pouvons également l’appliquer immédiatement :

$ aws rds modify-db-instance --db-instance-identifier database-1 \
  --ca-certificate-identifier rds-ca-2019 --apply-immediately

Après que notre instance ait redémarré (soit immédiatement, soit durant la fenêtre de maintenance), nous pouvons tester notre application pour s’assurer qu’elle continue de fonctionner comme attendue.

Si nous n’utilisons pas SSL/TLS et souhaitons éviter un redémarrage, nous utilisons --no-certificate-rotation-restart :

$ aws rds modify-db-instance --db-instance-identifier database-1 \
  --ca-certificate-identifier rds-ca-2019 --no-certificate-rotation-restart

Le moteur de base de donnée prendra alors le nouveau certificat lors du prochain redémarrage planifié ou non-planifié.
Nous pouvons aussi utiliser l’appel ModifyDBInstance de l’API RDS ou une modification d’un modèle CloudFormation pour modifier l’autorité de certification.
Encore une fois, tout cela doit être effectué pour le 5 mars 2020 ou vos applications pourraient ne plus être capable de se connecter à vos instances de base de données utilisant SSL ou TLS.

Précisions importantes

Voici quelques éléments importants à savoir:

  • Amazon Aurora ServerlessAWS Certificate Manager (ACM) est utilisé pour gérer les rotations de certificats pour ce moteur de bases de données, et aucune action est nécessaire,
  • Régions – La rotation est nécessaire pour les instances de bases de données dans toutes les régions AWS, à l’exception des régions Asie-Pacifique (Hong Kong), Moyen-Orient (Bahreïn), et Chine (Ningxia),
  • Redimensionnement de cluster – Si vous ajoutez des noeuds supplémentaires à un cluster existant, les nouveaux nœuds recevront le nouveau certificat CA-2019 si un ou plusieurs noeuds existants l’ont déjà. Sinon, le certificat CA-2015 sera utilisé.

En savoir plus

Voici quelques liens avec de plus amples informations :