Застрял с использованием SecureString из AWS Parameter Store. Я пытаюсь сослаться на пароль базы данных как:
DatabasePassword:
Type: AWS::SSM::Parameter::Value<SecureString>
NoEcho: 'true'
Default: /environment/default/database_password
Description: The database admin account password
Это выдает ошибку:
Произошла ошибка (ValidationError) при вызове операции CreateStack: Ошибка формата шаблона: Нераспознанный тип параметра: SecureString
Однако, если я ссылаюсь на этот параметр как String
вместо SecureString
, он выдаст другую ошибку:
Произошла ошибка (ValidationError) при вызове операции CreateStack: параметры [/ environment / default / database_password], на которые ссылается шаблон, имеют типы, не поддерживаемые CloudFormation.
Я попытался использовать '{{resolve:ssm-secure:parameter-name:version}}'
, и он работает для конфигурации базы данных:
MasterUsername: !Ref DatabaseUsername
MasterUserPassword: '{{resolve:ssm-secure:/environment/default/database_password:1}}'
Однако я использую контейнеры-докеры AWS Fargate, в которых я передаю эти значения в качестве переменных среды:
Environment:
- Name: DATABASE_HOSTNAME
Value: !Ref DatabaseHostname
- Name: DATABASE_USERNAME
Value: !Ref DatabaseUsername
- Name: DATABASE_PASSWORD
Value: '{{resolve:ssm-secure:/environment/default/database_password:1}}'
Выдает ошибку:
Произошла ошибка (ValidationError) при вызове операции CreateStack: ссылка SSM Secure не поддерживается в: [AWS :: ECS :: TaskDefinition / Properties / ContainerDefinitions / Environment]
Невозможно использовать безопасные строки в моей реализации. Есть ли решение этой проблемы? AWS объявила о поддержке SecureString
в прошлом году, но не смогла найти документацию. Я нашел только resolve
, который работает только в некоторых случаях.
Ссылка:
1
2