Что должен содержать секрет для `AWS :: RDS :: DBProxy AuthFormat`

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

Вопрос:

Чтобы создать AWS::RDS::DBProxy использование CloudFormation, вам необходимо предоставить SecretsManager Secret в качестве метода аутентификации. В приведенном ниже примере это секрет, на который указывает BootstrapProxySecretArn :

 Resources:
  TestDBProxy:
    Type: AWS::RDS::DBProxy
    Properties:
      DBProxyName: !Ref ProxyName
      EngineFamily: MYSQL
      RoleArn:
        !Ref BootstrapSecretReaderRoleArn
      Auth:
        - {AuthScheme: SECRETS, SecretArn: !Ref BootstrapProxySecretArn, IAMAuth: DISABLED}
      VpcSubnetIds:
 

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

Ответ №1:

Шаблоны для разных баз данных для secrete manager находятся здесь. Для MySQL это было бы:

 {
  "engine": "mysql",
  "host": "<required: instance host name/resolvable DNS name>",
  "username": "<required: username>",
  "password": "<required: password>",
  "dbname": "<optional: database name. If not specified, defaults to None>",
  "port": "<optional: TCP port number. If not specified, defaults to 3306>"
}
 

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

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

1. Эта страница выглядит так, как будто она предназначена для ротации секретов, применима ли она для аутентификации с использованием секретов в целом?

2. @Migwell Вы можете перепроверить автоматическое создание секрета с помощью консоли AWS.

3. Ах да, консоль управления секретами помогла мне создать соответствующий секрет. Я использую кластер RDS, поэтому ни один из примеров в вашей ссылке не подходит, но консоль показала правильный формат.

4. @Migwell Спасибо. Итак, вы используете Aurora?

5. Да. Postgres Aurora RDS.