

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.

# Passage de l'authentification IAM standard à l'authentification end-to-end IAM pour le proxy RDS
<a name="rds-proxy-iam-migration"></a>

 Si vous utilisez actuellement l'authentification IAM standard pour le proxy RDS, dans laquelle les clients s'authentifient auprès du proxy via IAM mais le proxy se connecte à la base de données à l'aide de secrets, vous pouvez passer à l'authentification IAM dans laquelle les connexions client-to-proxy et proxy-to-database les connexions utilisent l'authentification end-to-end IAM. 

**Pour passer à l' end-to-endauthentification IAM**

1. **Mettre à jour les autorisations du rôle IAM du proxy RDS**

   Créez une politique d'autorisation de proxy mise à jour qui inclut à la fois Secrets Manager et `rds:db-connect` les autorisations :

   ```
   # Create updated proxy permission policy
   cat > updated-proxy-policy.json ≪ EOF
   ```

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "GetSecretsValue",
         "Action": [
           "secretsmanager:GetSecretValue"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-1234f"
         ]
       },
       {
         "Sid": "RdsDBConnect",
         "Action": [
           "rds-db:connect"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:rds-db:us-east-1:123456789012:dbuser:cluster-ABCDEFGHIJKL01234/jane_doe"
         ]
       }
     ]
   }
   ```

   Mettez à jour votre politique de rôle en tant que proxy :

   ```
   aws iam put-role-policy \
               --role-name RDSProxyRole \
               --policy-name UpdatedProxyPermissions \
               --policy-document file://updated-proxy-policy.json
   ```

1. Modifiez votre proxy RDS pour activer l'authentification end-to-end IAM

   ```
   aws rds modify-db-proxy \
     --db-proxy-name my-database-proxy \
     --default-auth-scheme IAM_AUTH \
     --region us-east-1
   ```

   Vérifiez que l'état du proxy RDS est **disponible** et qu'il l'`DefaultAuthScheme`est `IAM_AUTH` avant de poursuivre afin de garantir l'absence de temps d'arrêt pendant la migration.

   ```
   aws rds describe-db-proxies --db-proxy-name my-database-proxy --region us-east-1
   ```

   Sortie attendue :

   ```
   {
     "DBProxies": [
       {
         "DBProxyName": "my-database-proxy",
         "DBProxyArn": "arn:aws:rds:us-east-1:123456789012:db-proxy:prx-0123456789abcdef",
         "Status": "available",
         ...
         "DefaultAuthScheme": "IAM_AUTH"
       }
     ]
   }
   ```

1. Activer l'authentification IAM sur la base de données

   ```
   aws rds modify-db-cluster \
     --db-cluster-identifier my-database-cluster \
     --enable-iam-database-authentication \
     --region us-east-1
   ```

1. Configuration de l'utilisateur de base de données pour l'authentification IAM

   Pour Aurora PostgreSQL :

   ```
   GRANT rds_iam TO jane_doe;
   ```

   Pour Aurora MySQL :

   ```
   ALTER USER 'jane_doe' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
   ALTER USER 'jane_doe'@'%' REQUIRE SSL;
   ```

1. Le code de votre application client n'a pas besoin de changer. Le processus de connexion reste le même :

   Pour Aurora PostgreSQL :

   ```
   # Generate authentication token
   export PGPASSWORD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 5432 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   psql "host=my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com port=5432 user=jane_doe dbname=postgres password=$PGPASSWORD sslmode=require sslrootcert=us-east-1-bundle.pem"
   ```

   Pour Aurora MySQL :

   ```
   # Generate authentication token
   export MYSQL_PWD=$(aws rds generate-db-auth-token \
     --hostname my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     --port 3306 \
     --username jane_doe \
     --region us-east-1)
   
   # Connect to database through proxy
   mysql -h my-database-proxy.proxy-ABCDEFGHIJKL01234.us-east-1.rds.amazonaws.com \
     -P 3306 \
     -u jane_doe \
     --ssl-ca=us-east-1-bundle.pem \
     --enable-cleartext-plugin
   ```