Connexion à une base de données via RDS Proxy - Amazon Relational Database Service

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.

Connexion à une base de données via RDS Proxy

La méthode pour se connecter à une instance RDS, que ce soit par un proxy ou en se connectant directement à la base de données, est globalement identique. Pour plus d’informations, consultez Présentation des points de terminaison proxy.

Connexion à une base de données à l'aide des informations d'identification

Procédez comme suit pour vous connecter à un proxy à l'aide des informations d'identification de base de données :

  1. Recherchez le point de terminaison du proxy. Dans le AWS Management Console, vous pouvez trouver le point de terminaison sur la page de détails du proxy correspondant. Avec le AWS CLI, vous pouvez utiliser la describe-db-proxiescommande. L’exemple suivant montre comment procéder.

    # Add --output text to get output as a simple tab-separated list. $ aws rds describe-db-proxies --query '*[*].{DBProxyName:DBProxyName,Endpoint:Endpoint}' [ [ { "Endpoint": "the-proxy.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy" }, { "Endpoint": "the-proxy-other-secret.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-other-secret" }, { "Endpoint": "the-proxy-rds-secret.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-rds-secret" }, { "Endpoint": "the-proxy-t3.proxy-demo.us-east-1.rds.amazonaws.com", "DBProxyName": "the-proxy-t3" } ] ]
  2. Spécifier le point de terminaison comme paramètre hôte dans la chaîne de connexion de votre application cliente. Par exemple, spécifiez le point de terminaison du proxy comme valeur pour l’option mysql -h ou psql -h.

  3. Fournissez le nom d’utilisateur et le mot de passe de base de données que vous utilisez habituellement.

Connexion à une base de données à l'aide de l'authentification IAM

Lorsque vous utilisez l'authentification IAM avec RDS Proxy, vous disposez de deux options d'authentification entre votre client et votre proxy :

  • Configurez les utilisateurs de votre base de données pour qu'ils s'authentifient à l'aide de noms d'utilisateur et de mots de passe habituels. RDS Proxy récupère le nom d'utilisateur et les informations d'identification du mot de passe auprès de Secrets Manager. La connexion depuis RDS Proxy à la base de données sous-jacente ne passe pas par IAM.

  • Vous pouvez également utiliser l'authentification end-to-end IAM, qui se connecte à votre base de données via le proxy à l'aide d'IAM sans avoir besoin d'informations d'identification de base de données.

Pour vous connecter à RDS Proxy à l’aide de l’authentification IAM, suivez la même procédure de connexion générale que pour vous connecter avec une authentification IAM à une instance de base de données RDS. Pour obtenir des informations générales sur l’utilisation d’IAM, consultez Sécurité dans Amazon RDS. Si vous utilisez l'authentification end-to-end IAM, fournissez le plug-in d'authentification IAM à votre utilisateur de base de données. Consultez Création d'un compte de base de données à l'aide de l'authentification IAM.

Les principales différences dans l’utilisation d’IAM pour RDS Proxy sont les suivantes :

  • Avec l'authentification IAM standard, les utilisateurs de la base de données disposent d'informations d'identification régulières dans la base de données. Vous configurez des secrets Secrets Manager contenant ces noms et mots de passe d’utilisateur, et autorisez RDS Proxy à récupérer les informations d’identification à partir d’Secrets Manager. L’authentification IAM s’applique à la connexion entre votre programme client et le proxy. Le proxy s’authentifie ensuite à la base de données à l’aide des informations d’identification (nom d’utilisateur et mot de passe) extraites via Secrets Manager.

  • Avec l'authentification end-to-end IAM, vous n'avez pas besoin de configurer les secrets de Secrets Manager pour les informations d'identification de base de données. L'authentification IAM s'applique à la connexion entre le client et le proxy et la base de données.

  • Spécifiez le point de terminaison du proxy plutôt que celui de l’instance, du cluster ou du lecteur. Pour plus d’informations sur le point de terminaison du proxy, consultez Connexion à votre instance de base de données à l'aide de l'authentification IAM..

  • Veillez à utiliser le protocole TLS (Transport Layer Security)/SSL (Secure Sockets Layer) lorsque vous vous connectez à un proxy avec l’authentification IAM.

Vous pouvez accorder l’accès au proxy à un utilisateur spécifique en modifiant la politique IAM. Un exemple suit.

"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"
Astuce

Lorsque vous configurez l'authentification IAM pour les connexions au proxy RDS, suivez ces directives importantes pour éviter les problèmes de connexion :

  • N'accordez pas le rds_iam rôle tout en conservant l'authentification générale par mot de passe pour le même utilisateur ou le même rôle de base de données.

  • N'oubliez pas que lorsque les clients se connectent au proxy RDS à l'aide de l'authentification IAM, le proxy RDS se connecte toujours à la base de données à l'aide de l'authentification par mot de passe via Secrets Manager.

  • Si vous rencontrez fréquemment des interruptions et des reconnexions de connexion, supprimez toutes les autorisations existantes rds_iam accordées à l'utilisateur ou au rôle et utilisez uniquement l'authentification par mot de passe.

  • Assurez-vous que votre politique de mot de passe répond aux exigences du protocole SCRAM-SHA-256 en matière de caractères sûrs.

La combinaison de méthodes d'authentification IAM et par mot de passe pour le même utilisateur de base de données peut entraîner une instabilité de connexion.

Considérations relatives à la connexion à Microsoft SQL Server

Pour vous connecter à un proxy à l’aide de l’authentification IAM, vous n’utilisez pas le champ du mot de passe. Vous devez plutôt fournir la propriété de jeton appropriée pour chaque type de pilote de base de données dans le champ du jeton. Par exemple, utilisez la propriété accessToken pour JDBC ou la propriété sql_copt_ss_access_token pour ODBC. Vous pouvez également utiliser la AccessToken propriété du SqlClient pilote .NET. Vous ne pouvez pas utiliser l’authentification IAM avec des clients qui ne prennent pas en charge les propriétés des jetons.

Dans certaines conditions, un proxy ne peut pas partager une connexion à une base de données et épingle la connexion entre votre application cliente et le proxy vers une connexion de base de données dédiée. Pour plus d’informations sur ces conditions, consultez Contournement de l’épinglage d’un proxy RDS.

Considérations relatives à la connexion à PostgreSQL

Si vous créez un nouvel utilisateur de base de données PostgreSQL pour vous connecter au proxy RDS, veillez à lui accorder CONNECT sur la base de données. À défaut de ce privilège, l’utilisateur ne sera pas en mesure de se connecter. Pour plus d’informations, consultez Ajout d’un nouvel utilisateur de base de données à une base de données PostgreSQL lors de l’utilisation du proxy RDS.

Lorsqu’un client démarre une connexion à une base de données PostgreSQL, il envoie un message de démarrage. Ce message inclut des paires de chaînes de noms de paramètres et de valeurs. Pour plus de détails, consultez StartupMessage dans la section relative aux formats de message PostgreSQL de la documentation PostgreSQL.

Lors de la connexion via un proxy RDS, le message de démarrage peut inclure les paramètres actuellement reconnus suivants :

  • user

  • database

Le message de démarrage peut également inclure les paramètres d’exécution supplémentaires suivants :

Pour plus d’informations sur la messagerie PostgreSQL, consultez protocole frontend/backend dans la documentation PostgreSQL.

Pour PostgreSQL, si vous utilisez JDBC, nous vous recommandons ce qui suit pour éviter l’épinglage :

  • Définissez le paramètre de connexion JDBC assumeMinServerVersion sur 9.0 au minimum afin d’éviter l’épinglage. Cela empêche le pilote JDBC d’effectuer un aller-retour supplémentaire au démarrage de la connexion lorsqu’il exécute SET extra_float_digits = 3.

  • Définissez le paramètre de connexion JDBC ApplicationName sur any/your-application-name afin d’éviter l’épinglage. Cela empêche le pilote JDBC d’effectuer un aller-retour supplémentaire au démarrage de la connexion lorsqu’il exécute SET application_name = "PostgreSQL JDBC Driver". Notez que le paramètre JDBC est ApplicationName, mais que le paramètre PostgreSQL StartupMessage est application_name.

Pour plus d’informations, consultez Contournement de l’épinglage d’un proxy RDS. Pour plus d’informations sur la connexion à l’aide de JDBC, consultez Connexion à la base de données dans la documentation PostgreSQL.