AWS a récemment annoncé la nécessité de:
Mettez à jour vos certificats SSL / TLS Amazon RDS d'ici le 31 octobre 2019
J'ai une application Rails hébergée avec un équilibreur de charge Elastic Beanstalk classique, qui se connecte à une base de données Postgres à l'aide de RDS.
Les étapes requises selon Amazon sont les suivantes:
- Téléchargez le nouveau certificat SSL / TLS depuis Utilisation de SSL / TLS pour crypter une connexion à une instance de base de données.
- Mettez à jour vos applications de base de données pour utiliser le nouveau certificat SSL / TLS.
- Modifiez l'instance de base de données pour changer l'autorité de certification de rds-ca-2015 à rds-ca-2019.
( https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html )
Étant donné que mes équilibreurs de charge sont configurés comme ceci (connexion à mes instances EC2 via le port HTTP 80 (pas SSL), cela signifie-t-il que je n'ai pas besoin de suivre les étapes 1 et 2? Et que de suivre uniquement l'étape 3?
Ou dois-je télécharger les certificats mis à jour et les installer / ajouter manuellement à mon équilibreur de charge ou à mes instances EC? Je ne sais pas comment faire ça.
.ebextensions
. À la fin, après l'avoir testé, j'ai pu confirmer qu'ils faisaient automatiquement confiance à la nouvelle connexion RDS. Si l'instance DB RDS a été découplée de l'environnement EB comme décrit icihttps://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.RDS.html
, je ne suis pas sûr du résultat.Réponses:
Les étapes 1 et 2 ne sont nécessaires que si la connexion de votre application avec MySQL est cryptée TLS .
Ne modifiez pas le paramètre LB TLS , cela peut casser votre application, LB TLS est autre chose, alors que RDS TLS est autre chose.
Si votre application vient de créer une connexion simple, vous pouvez effectuer directement l'étape 3 en toute sécurité.
Normalement, la pratique pour la base de données doit être dans un sous-réseau privé et ne doit pas être accessible au public, TLS est utile lorsque votre connexion à la base de données et au backend est sur Internet, pas dans VPC.
la source
eb ssh
me connecte à mon serveur à partir de là à la base de données viapsql
, puis exécutezselect ssl_is_used()
, cela renvoie vrai! Mon instance RDS est liée à mon environnement EB comme décrit ici docs.aws.amazon.com/elasticbeanstalk/latest/dg/… . Étant donné qu'EB est automatiquement connecté à RDS, je suis préoccupé par ce qui précède que le changement de CA interrompra la connexion générée.var mysql = require('mysql'); var connection = mysql.createConnection({ host : process.env.RDS_HOSTNAME, user : process.env.RDS_USERNAME, password : process.env.RDS_PASSWORD, port : process.env.RDS_PORT }); connection.connect(function(err) { if (err) { console.error('Database connection failed: ' + err.stack); return; } console.log('Connected to database.'); }); connection.end();
database.yml
lesquelles appellent des variables ENV commeRDS_DB_NAME
,RDS_USERNAME
etc. Bien que je pense que le réglage par défaut sur EB doit être quelque chose commeallow
,prefer
ourequire
, configuré via une variable d'environnement ou de quelque chose. cf: postgresql.org/docs/current/… . Ce n'est certainement pas l'un des 3 autres, cardisable
cela désactiverait SSL, et les autresverify
options ont échoué lorsque je les ai testées sur la CLI.Il y a une réponse beaucoup plus facile à la question:
Suivez simplement le point 3 et ignorez 1 et 2.
(Oui, j'ai écrit cette réponse moi-même).
la source