Включить SSL в бессерверном MySQL Aurora AWS

#mysql #amazon-web-services #ssl #amazon-aurora #aws-aurora-serverless

#mysql #amazon-веб-сервисы #ssl #amazon-aurora #aws-aurora-бессерверный

Вопрос:

Я хочу настроить зашифрованное соединение с моего сервера Ubuntu на бессерверный MySQL Aurora с версией движка 5.7, однако SSL, похоже, отключен в службе по умолчанию.

 show variables like '%ssl%';
| Variable_name | Value
                                                                                                                                                                                                                                                                                                
| have_openssl  | DISABLED                                                                                                                                                                                                                                                                                             |
| have_ssl      | DISABLED                                           
  

Это не похоже на Aurora RDS, где использование SSL довольно просто и включено по умолчанию.

Это ошибка:

 mysql -h <cluster-endpoint> -u <username> -p --ssl-ca=rds-ca-2019-us-east-1-bundle.pem
Enter password:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
  

Версия клиента Mysql

 mysql  Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using  EditLine wrapper
  

Настройки группы параметров заданы по умолчанию.

Ошибка, похоже, похожа на те, которые рассматриваются здесь, но сообщение совершенно другое.

https://aws.amazon.com/premiumsupport/knowledge-center/rds-error-2026-ssl-connection/

Документация TLS / SSL для бессерверного использования, похоже, предполагает, что использование в основном одинаково для RDS и бессерверного.

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.tls

Я в значительной степени новичок в базе данных, буду признателен за любую помощь в устранении неполадок.

Комментарии:

1. Вы читали это? docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/… Вам не нужно указывать этот файл пакета сертификатов CA при подключении к Aurora Serverless, поскольку он использует SSL-сертификаты AWS ACM.

2. Что меня смутило в этой заметке, так это то, что они говорят: «вам не нужно использовать сертификаты RDS», язык заставляет меня поверить, что он все еще работает с пакетом RDS. Работает ли бессерверный сервер Aurora только с сертификатами, созданными ACM? и почему для переменной ‘have_ssl’ по-прежнему установлено значение DISABLED?

3. Да, вам нужно будет либо не указывать файл пакета (поскольку корневой сертификат ACM, вероятно, уже загружен на ваш сервер), либо указать пакет корневых сертификатов ACM, который отличается от пакета корневых сертификатов RDS (ссылка на этот файл находится внизу страницы, на которую я ссылался).

Ответ №1:

Есть две важные вещи, которые вам нужно знать о бессерверном сервере Aurora.

  1. Настоятельно рекомендуется использовать SSL, и это первый выбор для установления нового соединения. Так что вам не нужно ничего с этим делать. Вам определенно не нужно загружать сертификаты SSL / TLS, и на самом деле вы не должны. Разрешите ротацию и управление сертификатами на Aurora. Это упрощает вашу жизнь.

  2. На основании официальной документации [1] — проверка have_openssl или have_ssl не является правильной для проверки вашего соединения с использованием SSL. --ssl-mode Для проверки этого необходимо использовать параметр.

[1] https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.tls

Вы можете убедиться, что в вашем сеансе используется протокол TLS между вашим клиентом и конечной точкой бессерверного VPC Aurora. Для этого укажите требование на стороне клиента с помощью параметра —ssl-mode.