AWS: RDS обновление Certificate Authority SSL сертификата

Автор: | 11/22/2019
 

Давно уже начали получать письма о том, что надо обновить CA сертификаты, всё было некогда.

Пора сделать, выполним на Dev сервере, потом повторим на Staging и Production.

Мы используем обычный RDS MariaDB, документация по обновлению тут>>>.

Процесс очень простой, занимает несколько минут, особенно, если вы не используете SSL между клиентами и RDS.

У нас, например, все запросы ходят внутри VPC, SSL не используем. Тем не менее — обновить сертификаты надо всё равно, тем более, что AWS достаточно настойчиво об этом напоминает письмами.

По теме — MySQL/MariaDB: настройка SSL.

Что печально, что:

This operation reboots your DB instance. By default, this operation is scheduled to run during your next maintenance window. Alternatively, you can choose to run it immediately.

А у нас постоянно пишутся данные, и придётся останавливать бекенд.

RDS Certificate Authority upgrade

В документации описываются следующие шаги:

  1. Download the new SSL/TLS certificate from Using SSL/TLS to Encrypt a Connection to a DB Instance // нам не надо
  2. Update your database applications to use the new SSL/TLS certificate // тоже не нужно
  3. Modify the DB instance to change the CA from rds-ca-2015 to rds-ca-2019 // а вот это мы и выполним

Дальше всё просто.

Сначала сделаем через AWS Console, потом выполним откат через AWS CLI.

Идём в RDS, выбираем инстанс, проверяем текущий сертификат:

Кликаем Modify:

Выбираем новый сертификат:

Нас ещё раз предупреждают:

Before scheduling the CA certificate rotation, update client applications that connect to your database to use the new CA certificate. Not doing this will cause an interruption of connectivity between your applications and your database. Get new CA certificates.

Но ок, нам без разницы.

Внизу Continue, и затем Apply immediately и Modify DB Instance:

Ещё раз предупреждают о ребуте:

Note that rotating the SSL certificate on a database instance will initiate a reboot operation so that the certificate takes effect. The reboot operation typically takes less than two minutes to complete.

После ребута проверяем текущий сертификат:

rds-ca-2019 — отлично.

Roll back with AWS CLI

И выполним откат сертификата, например — если вы таки используете SSL при подключениях, и ваш бекенд отвалился после апдейта сертификата.

Выполняем с AWS CLI, просто для демонстрации — точно так же можно обновить сертификат на новый.

Тут тоже всё просто — делам всё тоже самое, но устанавливаем сертификат rds-ca-2015 вместо rds-ca-2019:

[setevoy@setevoy-arch-work ~]  $ aws --profile bm-backend --region us-east-2 rds modify-db-instance --db-instance-identifier mobilebackend-dev-db1-master-rds --ca-certificate-identifier rds-ca-2015 --apply-immediately

Обратите внимание на --apply-immediately — возможно, вам потребуется применить изменения и перезагрузить сервер в другое время.

Ждём ребута:

Проверяем текущий сертификат:

[setevoy@setevoy-arch-work ~]  $  aws --profile bm-backend --region us-east-2 rds describe-db-instances --db-instance-identifier mobilebackend-dev-db1-master-rds --query 'DBInstances[*].CACertificateIdentifier' --output text
rds-ca-2015

rds-ca-2015 — готово.