AWS Systems Manager Parameter Store
Parameter Store, un outil d’AWS Systems Manager, offre un stockage sécurisé et hiérarchique pour la gestion des données de configuration et la gestion des secrets. Vous pouvez stocker des données telles que des mots de passe, des chaînes de base de données, des ID d'Amazon Machine Image (AMI) et des codes de licence en tant que valeurs de paramètres. Vous pouvez stocker ces valeurs sous forme de texte brut ou de données chiffrées. Vous pouvez référencer des paramètres Systems Manager dans vos scripts, commandes, documents SSM et flux de travail de configuration et d'automatisation à l'aide du nom unique que vous avez spécifié lors de la création du paramètre. Pour vos premiers pas dans Parameter Store, ouvrez Systems Manager console
Parameter Store est également intégré à Secrets Manager. Vous pouvez récupérer les secrets Secrets Manager lors de l'utilisation d'autres Services AWS qui prennent déjà en charge les références aux paramètres Parameter Store. Pour de plus amples informations, consultez Référencement des secrets AWS Secrets Manager à partir des paramètres Parameter Store.
Note
Pour implémenter des cycles de vie de rotation des mots de passe, utilisez AWS Secrets Manager. Vous pouvez effectuer une rotation, gérer et récupérer les informations d'identification de la base de données, les clés d'API et d'autres secrets tout au long de leur cycle de vie à l'aide de Secrets Manager. Pour plus d'informations, consultez Présentation de AWS Secrets Manager dans le Guide de l'utilisateur AWS Secrets Manager.
Comment mon organisation peut-elle tirer parti de Parameter Store ?
Parameter Store offre les avantages suivants :
-
Utilisation d'un service de gestion sécurisé, évolutif et hébergé des codes secrets, sans serveurs à gérer.
-
Amélioration de vos niveaux de sécurité en séparant les données du code.
-
Stockage des données de configuration et des chaînes chiffrées en hiérarchies et en versions de suivi.
-
Accès de contrôle et d'audit à niveaux granulaires.
-
Stockez les paramètres de manière fiable car Parameter Store est hébergé dans plusieurs zones de disponibilité dans une Région AWS.
À qui est destiné Parameter Store ?
-
Les clients AWS qui veulent gérer les données de configuration de façon centralisée.
-
Les développeurs de logiciels qui veulent stocker différentes connexions et différents flux de référence.
-
Les administrateurs qui veulent recevoir des notifications lorsque leurs secrets et leurs mots de passe sont ou ne sont pas modifiés.
Quelles sont les fonctions d'Parameter Store ?
-
Notification de modification
Vous pouvez configurer des notifications de modifications et invoquer des actions automatisées à la fois pour les paramètres et les politiques de paramètres. Pour de plus amples informations, consultez Configuration de notifications ou d’actions de déclenchement basées sur des événements Parameter Store.
-
Organisation des paramètres
Vous pouvez baliser vos paramètres individuellement pour vous aider à identifier un ou plusieurs paramètres en fonction des balises que vous leur avez affectées. Par exemple, vous pouvez baliser des paramètres pour des environnements ou des services spécifiques.
-
Versions d'étiquettes
Vous pouvez associer un alias aux versions de votre paramètre en créant des étiquettes. Les étiquettes peuvent vous aider à vous souvenir de l'objectif d'une version de paramètre lorsqu'il existe plusieurs versions.
-
Validation des données
Vous pouvez créer des paramètres désignant une instance Amazon Elastic Compute Cloud (Amazon EC2), et Parameter Store les valide pour s'assurer qu'il fait référence au type de ressource attendu, que la ressource existe et que le client a l'autorisation d'utiliser la ressource. Par exemple, vous pouvez créer un paramètre avec un ID d'Amazon Machine Image (AMI) comme valeur avec le type de données
aws:ec2:image, et Parameter Store effectue une opération de validation asynchrone pour s'assurer que la valeur du paramètre répond aux exigences de mise en forme d'un ID d'AMI et que la valeur spécifiée AMI est disponible dans votre Compte AWS. -
Secrets de référence
Parameter Store est intégré à AWS Secrets Manager afin que vous puissiez récupérer les secrets Secrets Manager lors de l'utilisation d'autres Services AWS qui prennent déjà en charge les références aux paramètres Parameter Store.
-
Partage de paramètres avec d’autres comptes
Vous pouvez éventuellement centraliser les données de configuration dans un seul Compte AWS et partager les paramètres avec d’autres comptes qui ont besoin d’y accéder.
-
Accessible depuis d'autres Services AWS
Vous pouvez utiliser les paramètres Parameter Store avec d’autres outils de Systems Manager et Services AWS pour récupérer les secrets et les données de configuration à partir d’un magasin central. Les paramètres fonctionnent avec les outils de Systems Manager, comme Run Command, Automation et State Manager, des outils d’AWS Systems Manager. Vous pouvez également référencer des paramètres dans un certain nombre d'autres Services AWS, notamment les suivants :
-
Amazon Elastic Compute Cloud (Amazon EC2)
-
Amazon Elastic Container Service (Amazon ECS)
-
AWS Secrets Manager
-
AWS Lambda
-
AWS CloudFormation
-
AWS CodeBuild
-
AWS CodePipeline
-
AWS CodeDeploy
-
-
S'intègre avec d'autres Services AWS
Configuration de l'intégration avec les Services AWS suivants pour le chiffrement, la notification, la surveillance et l'audit :
-
AWS Key Management Service (AWS KMS)
-
Amazon Simple Notification Service (Amazon SNS)
-
Amazon CloudWatch : pour de plus amples informations, veuillez consulter Configuration des règles EventBridge pour les paramètres et les politiques de paramètres.
-
Amazon EventBridge : pour plus d'informations, consultez Surveillance des changements d'état du Systems Manager à l'aide des notifications Amazon SNS et Référence : modèles et types d'événements Amazon EventBridge pour Systems Manager.
-
AWS CloudTrail: Pour plus d'informations, consultez Journalisation des appels d'API AWS Systems Manager avec AWS CloudTrail.
-
Qu'est-ce qu'un paramètre ?
Un paramètre Parameter Store est tout élément de données enregistré dans Parameter Store, tel qu'un bloc de texte, une liste de noms, un mot de passe, un ID d'AMI, une clé de licence, etc. Vous pouvez référencer ces données de manière centralisée et sécurisée dans vos scripts, commandes et documents SSM.
Lorsque vous référencez un paramètre, vous spécifiez son nom à l'aide de la convention suivante.
{{ssm:}}parameter-name
Note
Les paramètres ne peuvent pas être référencés ou imbriqués dans les valeurs d'autres paramètres. Vous ne pouvez pas inclure {{}} ou {{ssm: dans une valeur de paramètre.parameter-name}}
Parameter Store prend en charge trois types de paramètres. String, StringList et SecureString.
À une exception près, lorsque vous créez ou mettez à jour un paramètre, vous saisissez sa valeur sous forme de texte brut et Parameter Store n'effectue aucune validation sur le texte en question. Pour les paramètres String, vous pouvez néanmoins spécifier le type de données comme aws:ec2:image. Alors, Parameter Store valide la valeur que vous saisissez comme étant au format approprié pour une AMI Amazon EC2 ; par exemple : ami-12345abcdeEXAMPLE.
Type de paramètre : String
Par défaut, la valeur d’un paramètre String est constituée d’un bloc de texte que vous saisissez. Par exemple :
-
abc123 -
Example Corp -
<img src="images/bannerImage1.png"/>
Type de paramètre : StringList
Les valeurs des paramètres StringList contiennent une liste de valeurs séparées par des virgules, comme le montrent les exemples suivants.
Monday,Wednesday,Friday
CSV,TSV,CLF,ELF,JSON
Type de paramètre : SecureString
La valeur d’un paramètre SecureString correspond à des données sensibles qui doivent être stockées et référencées de manière sécurisée. Si vous ne voulez pas que les utilisateurs modifient ou référencent en texte brut certaines de vos données, telles que les mots de passe ou les clés de licence, créez ces paramètres à l'aide du type de données SecureString.
Important
Ne stockez pas de données sensibles dans un paramètre StringList ou String. Pour toutes les données sensibles qui doivent rester chiffrées, utilisez uniquement le type de paramètre SecureString.
Pour de plus amples informations, consultez Création d’un paramètre SecureString à l’aide de l’AWS CLI.
Nous recommandons l'utilisation des paramètres SecureString pour les scénarios suivants :
-
Vous voulez utiliser les données/paramètres sur les Services AWS sans exposer les valeurs en texte brut dans les commandes, les fonctions, les journaux de l'agent ou les journaux CloudTrail.
-
Vous voulez contrôler les personnes ayant accès aux données sensibles.
-
Vous souhaitez être en mesure d'auditer les accès aux données sensibles (CloudTrail).
-
Vous voulez chiffrer vos données sensibles et vous voulez utiliser vos propres clés de chiffrement pour la gestion des accès.
Important
Seule la valeur d'un paramètre SecureString est chiffrée. Les noms de paramètres, les descriptions et d'autres propriétés ne sont pas chiffrés.
Vous pouvez utiliser le type de paramètre SecureString pour les données textuelles que vous souhaitez chiffrer, notamment les mots de passe, les secrets d'application, les données de configuration confidentielles ou d'autres types de données que vous souhaitez protéger. Les données SecureString sont chiffrées et déchiffrées avec une clé AWS KMS. Vous pouvez utiliser une clé KMS par défaut fournie par AWS ou créer et utiliser votre propre AWS KMS key. (Utilisez votre propre AWS KMS key pour restreindre l'accès des utilisateurs aux paramètres SecureString. Pour de plus amples informations, veuillez consulter Autorisations IAM pour l'utilisation des clés par défaut AWS et des clés gérées par le client.)
Vous pouvez également utiliser les paramètres SecureString avec d'autres Services AWS. Dans l'exemple suivant, la fonction Lambda récupère un paramètre SecureString à l'aide de l'API GetParameters.
import json import boto3 ssm = boto3.client('ssm', 'us-east-2') def get_parameters(): response = ssm.get_parameters( Names=['LambdaSecureString'],WithDecryption=True ) for parameter in response['Parameters']: return parameter['Value'] def lambda_handler(event, context): value = get_parameters() print("value1 = " + value) return value # Echo back the first key value
Chiffrement et tarification AWS KMS
Si vous sélectionnez le type de paramètre SecureString lors de la création de votre paramètre, Systems Manager utilise AWS KMS pour chiffrer la valeur du paramètre.
Important
Parameter Store prend uniquement en charge des clés KMS à chiffrement symétrique. Vous ne pouvez pas utiliser une clé KMS à chiffrement asymétrique pour chiffrer vos paramètres. Pour savoir si une clés KMS est symétrique ou asymétrique, consultez Identification de clés symétriques et asymétriques dans le Guide du développeur AWS Key Management Service.
Parameter Store n'applique aucun frais pour la création d'un paramètre SecureString, mais applique des frais pour l'utilisation du chiffrement AWS KMS. Pour obtenir des informations, veuillez consulter Tarification AWS Key Management Service
Pour de plus amples informations sur Clés gérées par AWS et les clés gérées par le client, reportez-vous à la section Concepts AWS Key Management Service dans le Guide du développeur AWS Key Management Service. Pour de plus amples informations sur Parameter Store et sur le chiffrement AWS KMS, veuillez consulter Comment AWS Systems ManagerParameter Store utilise-t-il AWS KMS ?.
Note
Pour afficher une Clé gérée par AWS, utilisez l'opération DescribeKey d'une AWS KMS. Cet exemple AWS Command Line Interface (AWS CLI) utilise DescribeKey pour afficher une Clé gérée par AWS.
aws kms describe-key --key-id alias/aws/ssm
- Plus d'informations
Limites de taille des paramètres
Parameter Store comporte des limites de taille différentes pour les valeurs des paramètres en fonction du niveau de paramètres que vous utilisez :
-
Paramètres standard : taille de valeur maximale de 4 Ko
-
Paramètres avancés : taille de valeur maximale de 8 Ko
Si vous devez stocker des valeurs de paramètres supérieures à 4 Ko, utilisez le niveau de paramètres avancé. Les paramètres avancés fournissent des fonctionnalités supplémentaires, mais entraînent des frais sur votre compte AWS. Pour plus d’informations sur les niveaux de paramètres de leurs fonctionnalités, consultez Gestion des niveaux de paramètres.
Pour une liste complète des quotas et des limites Parameter Store, consultez Points de terminaison et quotas AWS Systems Manager dans la Référence générale AWS.