#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.