AWS Systems Manager Parameter Store
Parameter Store, une des fonctionnalités de AWS Systems Manager, offre un stockage sécurisé et hiérarchique des données pour la gestion des données de configuration et des codes 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.
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 plus d'informations, consultez Référencement des secrets AWS Secrets Manager à partir des paramètres Parameter Store.
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 plus d'informations, consultez Configuration de notifications ou d'actions de déclenchement basées sur des événements Parameter Store.
-
Organiser et contrôler l'accès
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, des services, des utilisateurs, des groupes ou des périodes spécifiques. Vous pouvez également restreindre l'accès aux paramètres en créant une politique AWS Identity and Access Management (IAM) qui spécifie les balises auxquelles un utilisateur ou un groupe peut accéder. Pour plus d'informations, consultez Balisage de paramètres Systems Manager.
-
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.
-
Accessible à partir d'autres services AWS
Vous pouvez utiliser les paramètres Parameter Store avec d'autres fonctionnalités 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 fonctionnalités de Systems Manager telles que Run Command, Automation et State Manager, fonctionnalités de 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
-
-
Intégrer à 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 de EventBridge pour les 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
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
.
- Chaîne
-
Par défaut, les paramètres
String
sont constitués d'un bloc de texte que vous saisissez. Par exemple :-
abc123
-
Example Corp
-
<img src="images/bannerImage1.png"/>
-
- StringList
-
Les paramètres
StringList
contiennent une liste de valeurs séparées par des virgules, comme le montre les exemples suivants.Monday,Wednesday,Friday
CSV,TSV,CLF,ELF,JSON
- SecureString
-
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éesSecureString
.Important Ne stockez pas de données sensibles dans un paramètre
StringList
ouString
. Pour toutes les données sensibles qui doivent rester chiffrées, utilisez uniquement le type de paramètreSecureString
.Pour plus d'informations, consultez Créer un paramètre SecureString (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éesSecureString
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ètresSecureString
. 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ètreSecureString
à l'aide de l'API GetParameters.from __future__ import print_function 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 symétriques. Vous ne pouvez pas utiliser une clé KMS 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 les clés gérées par AWS et par le client, consultez 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) utiliseDescribeKey
pour afficher une Clé gérée par AWS.aws kms describe-key --key-id alias/aws/ssm
Rubriques en relation
Pour obtenir un exemple de création et d'utilisation d'un paramètre
SecureString
, veuillez consulter Création d'un paramètre SecureString et association d'un nœud à un domaine (PowerShell). Pour plus d'informations sur l'utilisation de paramètres Systems Manager avec d'autres services AWS, consultez les billets de blogs suivants : -