Coincé avec l'utilisation de Securstring du magasin de paramètres AWS. J'essaie de faire référence au mot de passe de base de données comme suit:
DatabasePassword:
Type: AWS::SSM::Parameter::Value<SecureString>
NoEcho: 'true'
Default: /environment/default/database_password
Description: The database admin account password
Cela jette une erreur:
Une erreur est survenue (validationError) lors de l'appel de la Fonctionnement de Creeestack: Erreur de format de modèle: Type de paramètre non reconnu: Securstring
Cependant, si je me réfère à ce paramètre _ String
au lieu de SecureString
_ il jette une erreur différente:
Une erreur s'est produite (validationError) lors de l'appel de l'opération CreeTestack: Paramètres [/ Environnement/Default/Databile_Password] Référencé par Modèle N'A TYPE PAS SOUTENU PAS Pris en charge par CloudFormation.
J'ai essayé d'utiliser '{{resolve:ssm-secure:parameter-name:version}}'
et cela fonctionne pour la configuration de la base de données:
MasterUsername: !Ref DatabaseUsername
MasterUserPassword: '{{resolve:ssm-secure:/environment/default/database_password:1}}'
Cependant, j'utilise des conteneurs AWS Fargate Docker où je fournis ces valeurs en tant que variables d'environnement:
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}}'
Cela jette une erreur:
Une erreur s'est produite (validationError) lors de l'appel de Createstack Operation: SSM sécurisé Référence n'est pas pris en charge dans: [AWS :: ECS :: TasteDefinition/Propriétés/ContainerDéfinitions/Environnement]
Impossible d'utiliser des chaînes sécurisées dans ma mise en œuvre. Y a-t-il une solution de contournement à ce problème? AWS a annoncé son soutien pour SecureString
l'année dernière, mais incapable de trouver la documentation. Tout ce que j'ai trouvé était d'utiliser resolve
qui ne fonctionne que dans certains cas.
Références:
Le gestionnaire AWS Secrets peut être utilisé pour obtenir des secrets pour les modèles de cloudformation, même où ils ne sont pas des choses telles que des mots de passe de base de données.
Voici un lien vers la documentation: https://docs.aws.amazon.com/awscloudformation/latest/userguide/dynamic-references.html#dynamic-references-SecretsManager
Il y a 3 parties à un secret de Secrets Manager:
Vous résoudre ensuite le secret ci-dessus dans votre modèle de cloudformation en utilisant:
'{{resolve:secretsmanager:PROD_DB_PASSWORD:SecretString:DB_PASSWORD}}'