

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 des informations d'identification de base de données pour le proxy RDS
<a name="rds-proxy-secrets-arns"></a>

Le proxy RDS dans Amazon RDS est utilisé AWS Secrets Manager pour stocker et gérer les informations d'identification de base de données en toute sécurité. Au lieu d’intégrer des informations d’identification dans votre application, vous associez un proxy à un secret Secrets Manager contenant les informations d’authentification nécessaires. Vous créez un secret Secrets Manager distinct pour chaque compte d’utilisateur de base de données auquel le proxy se connecte sur l’instance de base de données RDS.

Vous pouvez également configurer le proxy RDS pour utiliser l'authentification end-to-end IAM, ce qui élimine le besoin de stocker les informations d'identification de la base de données dans Secrets Manager. Le proxy RDS utilise l'authentification IAM pour les connexions à la fois client-to-proxy. proxy-to-database Cela fournit une solution d'authentification basée sur IAM entièrement intégrée qui ne nécessite pas de gérer des secrets ou des mots de passe. Pour plus d'informations sur l'ajout d'un nouvel utilisateur de base de données IAM, consultez[Création d’un compte de base de données à l’aide de l’authentification IAM](UsingWithRDS.IAMDBAuth.DBAccounts.md).

**Topics**
+ [Création de secrets à utiliser avec le proxy RDS](#rds-proxy-secrets-create)

## Création de secrets à utiliser avec le proxy RDS
<a name="rds-proxy-secrets-create"></a>

Avant de créer un proxy, vous devez d’abord créer au moins un secret qui stocke les informations d’identification de votre base de données.

### Console
<a name="rds-proxy-secrets-create-console"></a>

**Pour créer un secret**

1. Ouvrez la console Secrets Manager à l'adresse [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Choisissez **Store a new secret** (Stocker un nouveau secret).

1. Choisissez **Informations d’identification pour une base de données Amazon RDS**.

1. Entrez un nom d’utilisateur et un mot de passe. Les informations d’identification que vous entrez doivent correspondre aux informations d’identification d’un utilisateur de base de données existant dans la base de données RDS associée. Le proxy RDS utilise ces informations d’identification pour authentifier et établir des connexions à la base de données pour le compte des applications.

   En cas d’incompatibilité, vous pouvez mettre à jour le secret pour qu’il corresponde à celui de la base de données. Tant que vous ne mettez pas à jour le secret, les tentatives de connexion via le proxy utilisant ce secret échouent, mais les connexions utilisant d’autres secrets valides fonctionnent toujours.
**Note**  
Pour RDS for SQL Server, le proxy RDS nécessite un secret sensible aux majuscules et minuscules dans Secrets Manager, quels que soient les paramètres de classement des instances de base de données. Si votre application autorise des noms d’utilisateur avec des capitalisations différentes, tels que « Admin » et « admin », vous devez créer des secrets distincts pour chacun. Le proxy RDS ne prend pas en charge l’authentification insensible à la casse entre le client et le proxy.  
Pour plus d’informations sur le classement SQL Server, consultez la documentation [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/collations/collation-and-unicode-support?view=sql-server-ver16).

1. Pour **Base de données**, sélectionnez la base de données Amazon RDS à laquelle le secret doit accéder.

1. Renseignez les autres paramètres pour le secret, puis choisissez **Stockage**. Pour obtenir des instructions complètes, consultez [Création d’un secret AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) dans le *AWS Secrets Manager Guide de l’utilisateur*. 

### AWS CLI
<a name="rds-proxy-secrets-create-cli"></a>

Lorsque vous créez un proxy via le AWS CLI, vous spécifiez les Amazon Resource Names (ARNs) des secrets correspondants. Vous le faites pour tous les comptes utilisateur de base de données auxquels le proxy peut accéder. Dans le AWS Management Console, vous choisissez les secrets par leurs noms descriptifs.
+ Pour créer un secret Secrets Manager à utiliser avec le proxy RDS, utilisez la commande [create-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/create-secret.html) :

  ```
  aws secretsmanager create-secret \
    --name "secret_name" \
    --description "secret_description" \
    --region region_name \
    --secret-string '{"username":"db_user","password":"db_user_password"}'
  ```
+ Vous pouvez également créer une clé personnalisée pour chiffrer votre secret Secrets Manager. La commande suivante crée un exemple de clé.

  ```
  aws kms create-key --description "test-key" --policy '{
    "Id":"kms-policy",
    "Version": "2012-10-17",		 	 	 
    "Statement":
      [
        {
          "Sid":"Enable IAM User Permissions",
          "Effect":"Allow",
          "Principal":{"AWS":"arn:aws:iam::account_id:root"},
          "Action":"kms:*","Resource":"*"
        },
        {
          "Sid":"Allow access for Key Administrators",
          "Effect":"Allow",
          "Principal":
            {
              "AWS":
                ["$USER_ARN","arn:aws:iam:account_id::role/Admin"]
            },
          "Action":
            [
              "kms:Create*",
              "kms:Describe*",
              "kms:Enable*",
              "kms:List*",
              "kms:Put*",
              "kms:Update*",
              "kms:Revoke*",
              "kms:Disable*",
              "kms:Get*",
              "kms:Delete*",
              "kms:TagResource",
              "kms:UntagResource",
              "kms:ScheduleKeyDeletion",
              "kms:CancelKeyDeletion"
            ],
          "Resource":"*"
        },
        {
          "Sid":"Allow use of the key",
          "Effect":"Allow",
          "Principal":{"AWS":"$ROLE_ARN"},
          "Action":["kms:Decrypt","kms:DescribeKey"],
          "Resource":"*"
        }
      ]
  }'
  ```

 Par exemple, les commandes suivantes créent des secrets Secrets Manager pour deux utilisateurs de base de données. 

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}'

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}'
```

Pour créer ces secrets chiffrés avec votre AWS KMS clé personnalisée, utilisez les commandes suivantes :

```
aws secretsmanager create-secret \
  --name secret_name_1 --description "db admin user" \
  --secret-string '{"username":"admin","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id

aws secretsmanager create-secret \
  --name secret_name_2 --description "application user" \
  --secret-string '{"username":"app-user","password":"choose_your_own_password"}' \
  --kms-key-id arn:aws:kms:us-east-2:account_id:key/key_id
```

Pour voir les secrets détenus par votre AWS compte, utilisez la commande [list-secrets](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/list-secrets.html) :

```
aws secretsmanager list-secrets
```

Lorsque vous créez un proxy à l'aide de la CLI, vous transmettez les Amazon Resource Names (ARNs) d'un ou de plusieurs secrets au `--auth` paramètre. L’exemple suivant montre comment préparer un rapport avec uniquement le nom et l’ARN de chacun des secrets détenus par votre compte AWS . Cet exemple utilise le `--output table` paramètre disponible dans la AWS CLI version 2. Si vous utilisez AWS CLI la version 1, utilisez `--output text` plutôt. 

```
aws secretsmanager list-secrets --query '*[].[Name,ARN]' --output table
```

Pour vérifier que le secret contient les informations d'identification correctes au format approprié, utilisez la [get-secret-value](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html)commande. Remplacez `your_secret_name` par le nom abrégé ou l’ARN du secret.

```
aws secretsmanager get-secret-value --secret-id your_secret_name
```

La sortie contient une ligne avec une valeur codée en JSON semblable à la suivante :

```
...
"SecretString": "{\"username\":\"your_username\",\"password\":\"your_password\"}",
...
```