Obtenir une valeur de chaîne sécurisée depuis le magasin de paramètres Systems Manager - AWS CloudFormation

Obtenir une valeur de chaîne sécurisée depuis le magasin de paramètres Systems Manager

Dans CloudFormation, vous pouvez utiliser des données sensibles telles que des mots de passe ou des clés de licence sans les exposer directement dans vos modèles en les stockant sous forme de « chaîne sécurisée » dans Parameter Store AWS Systems Manager. Pour une introduction à Parameter Store, consultez la section Parameter Store AWS Systems Manager dans le Guide de l’utilisateur AWS Systems Manager.

Pour utiliser une chaîne sécurisée Parameter Store dans votre modèle, vous utilisez une référence dynamique ssm-secure. CloudFormation ne stocke jamais la valeur réelle de la chaîne sécurisée. Au lieu de cela, il stocke uniquement la référence dynamique littérale, qui contient le nom du paramètre en clair de la chaîne sécurisée.

Lors de la création ou de la mise à jour d’une pile, CloudFormation accède à la valeur de chaîne sécurisée selon les besoins, sans exposer la valeur réelle. Les chaînes sécurisées ne peuvent être utilisées que pour les propriétés de ressources qui prennent en charge le modèle de référence dynamique ssm-secure. Pour de plus amples informations, consultez Ressources qui prennent en charge les modèles de paramètre dynamique pour les chaînes sécurisées.

CloudFormation ne renvoie pas la valeur réelle du paramètre pour les chaînes sécurisées dans les appels API. Elle renvoie uniquement la référence dynamique littérale. Lorsqu’il compare les modifications à l’aide d’ensembles de modifications, CloudFormation compare uniquement la chaîne de référence dynamique littérale. Il ne résout pas et ne compare pas les valeurs réelles des chaînes sécurisées.

Lorsque vous utilisez des références dynamiques ssm-secure, il y a quelques points importants à garder à l’esprit :

  • CloudFormation ne peut pas accéder aux valeurs du magasin de paramètres à partir d’autres Comptes AWS.

  • CloudFormation ne prend pas en charge l’utilisation des étiquettes de paramètres Systems Manager ou des paramètres publics dans les références dynamiques.

  • Dans les régions cn-north-1 et cn-northwest-1, les chaînes sécurisées ne sont pas prises en charge par Systems Manager.

  • Les références dynamiques pour des valeurs sécurisées, telles que ssm-secure, ne sont actuellement pas prises en charge dans les ressources personnalisées.

  • Si CloudFormation doit annuler une mise à jour de pile et que la version précédemment spécifiée d’un paramètre de chaîne sécurisée n’est plus disponible, l’opération d’annulation échouera. Dans ce cas, deux options s’offrent à vous :

    • Utilisez CONTINUE_UPDATE_ROLLBACK pour ignorer la ressource.

    • Recréez le paramètre de chaîne sécurisée dans Systems Manager Parameter Store et mettez-le à jour jusqu'à ce que la version du paramètre atteigne la version utilisée dans le modèle. Ensuite, utilisez CONTINUE_UPDATE_ROLLBACK sans ignorer la ressource.

Ressources qui prennent en charge les modèles de paramètre dynamique pour les chaînes sécurisées

Les ressources qui prennent en charge le modèle de référence dynamique ssm-secure comprennent :

Modèle de référence

Pour référencer une valeur de chaîne sécurisée à partir du magasin de paramètres Systems Manager dans votre modèle CloudFormation, utilisez le modèle de référence ssm-secure suivant.

{{resolve:ssm-secure:parameter-name:version}}

Votre référence doit respecter le modèle d'expression régulière suivant pour parameter-name et version :

{{resolve:ssm-secure:[a-zA-Z0-9_.\-/]+(:\d+)?}}
parameter-name

Nom du paramètre dans Parameter Store. Le nom du paramètre est sensible à la casse.

Obligatoire.

version

Nombre entier qui spécifie la version du paramètre à utiliser. Si vous ne spécifiez pas la version exacte, CloudFormation utilise la dernière version du paramètre chaque fois que vous créez ou mettez à jour la pile. Pour plus d’informations, consultez Utilisation des versions de paramètre dans le Guide de l’utilisateur AWS Systems Manager.

Facultatif.

Exemple

L’exemple suivant utilise une référence dynamique ssm-secure pour définir le mot de passe d’un utilisateur IAM vers une valeur sécurisée stockée dans Parameter Store. Comme cela est spécifié, CloudFormation utilise la version 10 du paramètre IAMUserPassword pour les opérations de pile et de jeu de modifications.

JSON

"MyIAMUser": { "Type": "AWS::IAM::User", "Properties": { "UserName": "MyUserName", "LoginProfile": { "Password": "{{resolve:ssm-secure:IAMUserPassword:10}}" } } }

YAML

MyIAMUser: Type: AWS::IAM::User Properties: UserName: 'MyUserName' LoginProfile: Password: '{{resolve:ssm-secure:IAMUserPassword:10}}'