

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration du magasin de paramètres
<a name="configure-store"></a>

Parameter Store est une fonctionnalité de AWS Systems Manager. Il fournit un stockage hiérarchique sécurisé 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 Amazon Machine Image (AMI) et des codes de licence en tant que valeurs de paramètre. 

## Conditions préalables à l'utilisation de Parameter Store avec les applications .NET Framework
<a name="configure-store-prereq"></a>
+ Un actif Compte AWS
+ [Microsoft Visual Studio](https://visualstudio.microsoft.com/downloads/), installé
+ AWS Command Line Interface (AWS CLI) version 2, installée et configurée pour accéder à votre Compte AWS (voir [les instructions](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html))
+ AWS Toolkit for Visual Studio, configuré (voir [les instructions](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html))
+ Un paramètre de Systems Manager, créé à l'aide de la [console Secrets Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-create-console.html) ou du [AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/param-create-cli.html)

## Exemple
<a name="configure-store-example"></a>

Pour récupérer des valeurs depuis le Parameter Store dans les applications Web ou l'API de ASP.NET base :

1. Ajoutez le NuGet package suivant à l'API Web ASP.NET principale.

   ```
   Amazon.Extensions.Configuration.SystemsManager
   ```

1. Dans le `Program.cs` fichier, apportez les modifications suivantes.
   + Ajoutez `using` des déclarations (1).

     ```
     using Amazon;
     using Amazon.Extensions.NETCore.Setup;
     ```
   + Ajoutez la AWS Systems Manager configuration (2).

     ```
     builder.Configuration.AddSystemsManager("/dev/myapp", new AWSOptions
     {
         Region = RegionEndpoint.EUWest2
     });
     ```  
![Modifications apportées au Program.cs fichier pour accéder au magasin de paramètres](https://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/modernization-net-applications-security/images/ps-program-cs.png)
**Note**  
Vous devez appeler les `RegionEndPoint` paramètres `/myapp/dev` et dynamiquement ou à partir des variables d'environnement (`Region = RegionEndpoint.GetBySystemName("eu-west-2")`). Ne codez pas ces valeurs en dur dans les environnements de production.

1. Créez un nouveau fichier de classe et nommez-le`ParameterOptions.cs`. Ouvrez le fichier et ajoutez le code suivant.

   ```
   public class ParameterOptions
       {
           public const string ParameterName = "Tenant";
           public string key1 { get; set; } = string.Empty;
           public string key2 { get; set; } = string.Empty;
       }
   ```

1. Pour récupérer les valeurs depuis Parameter Store, apportez les modifications suivantes au fichier de classe du contrôleur (par exemple,`ValuesController.cs`). 
   + Ajoutez le constructeur (1).

     ```
     private readonly IConfiguration _configuration;
     public ParametersController(IConfiguration configuration)
     {
         _configuration = configuration;
     }
     ```
   + Récupérez les valeurs dans Parameter Store (2).

     ```
     var parameterOptions = new ParameterOptions();
     _configuration.GetSection(ParameterOptions.ParameterName).Bind(parameterOptions);
     
     return new string[] {
         parameterOptions.key1,
         parameterOptions.key2
     };
     ```  
![Modifications apportées au fichier de classe du contrôleur pour récupérer des valeurs depuis le Parameter Store](https://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/modernization-net-applications-security/images/ps-controller-class.png)

## Ressources
<a name="configure-store-resources"></a>
+ [AWS Secrets Manager Fonctions Lambda de rotation (référentiel](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas)) GitHub 
+ [AWS Extension de configuration .NET pour Systems Manager, dossier Samples](https://github.com/aws/aws-dotnet-extensions-configuration/tree/master/samples/Samples) (GitHubréférentiel)
+ [Comment utiliser la mise en cache côté client de Secrets Manager dans .NET (blog sur la sécurité](https://aws.amazon.com/blogs/security/how-to-use-aws-secrets-manager-client-side-caching-in-dotnet/))AWS 