AWS Secret manager не позволяет мне создавать секрет для RDS read-replica

#amazon-web-services #amazon-redshift #amazon-rds #aws-secrets-manager

#amazon-web-services #amazon-redshift #amazon-rds #aws-secrets-manager

Вопрос:

Я создал реплику чтения для своего производственного экземпляра RDS PostgreSQL. Я планирую использовать эту реплику для чтения для подключения федеративных запросов redshift. В документации предлагается создать секрет, но когда я захожу в AWS Secret Manager и пытаюсь создать новый секрет, экземпляр replica отсутствует.

Я не нашел ничего, что указывало бы на то, что вышеуказанное невозможно. На самом деле, наличие read-replica для федеративных запросов является рекомендуемой хорошей практикой. Есть идеи?

Ответ №1:

Связь между secret manager и RDS основана только на формате секретного значения. Доступные форматы здесь.

В консоли вы можете выполнить это сопоставление только для основного экземпляра базы данных. Но с помощью CLI вы также можете сделать это для реплик для чтения. Это полезно, поскольку прочитанные реплики имеют другую конечную точку, чем основной экземпляр.

Например, для MySQL:

 aws secretsmanager create-secret 
    --name read-replica-secret 
    --secret-string file:///tmp/secret.json
  

где /tmp/secret.json было бы:

 {
  "engine": "mysql",
  "host": "<required: read replica instance host name/resolvable DNS name>",
  "username": "admin",
  "password": "2PLvZK5Gcuht8qefK5O7",
  "dbname": "testdb",
  "port": "3306"
}
  

Таким образом, ваши клиенты, доступные только для чтения, могут получить полный набор учетных данных от SM, который включает правильную конечную точку для чтения.

Но проблема в том, что теперь у вас будет два секрета. Один для primary, а другой для reader. Что является проблемой управления. Это усложняет еще больше, если вы хотите иметь автоматическую ротацию.