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 de connexion à une instance de base de données RDS via un proxy ou en se connectant à la base de données est généralement la même. Pour plus d’informations, consultez Présentation des points de terminaison proxy.

Connexion à un proxy à l'aide de l'authentification native

Procédez comme suit pour vous connecter à un proxy à l'aide de l'authentification native :

  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écifiez 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 à un proxy à l'aide de l'authentification IAM

Lorsque vous utilisez l'authentification IAM avec RDS Proxy, configurez les utilisateurs de votre base de données de sorte qu'ils s'authentifient avec des noms d'utilisateur et des mots de passe normaux. L'authentification IAM s'applique à la récupération RDS Proxy des informations d'identification (nom d'utilisateur et mot de passe) depuis Secrets Manager. La connexion depuis RDS Proxy à la base de données sous-jacente ne passe pas par IAM.

Pour obtenir des informations générales sur l'utilisation d'IAM, consultez Sécurité dans Amazon RDS.

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

  • Vous ne configurez pas chaque utilisateur de base de données avec un plugin d'autorisation. Les utilisateurs de base de données ont toujours des noms d'utilisateur et des mots de passe réguliers 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.

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

  • Dans le cas d'une authentification IAM de base de données directe, vous choisissez de manière sélective les utilisateurs de base de données et les configurez de sorte qu'ils soient identifiés avec un plugin d'authentification spécial. Vous pouvez ensuite vous connecter à ces utilisateurs à l'aide de l'authentification IAM.

    Dans le cas d'utilisation du proxy, vous fournissez au proxy des secrets qui contiennent le nom d'utilisateur et le mot de passe de certains utilisateurs (authentification native). Vous vous connectez ensuite au proxy à l'aide de l'authentification IAM. Pour ce faire, vous générez un jeton d'authentification avec le point de terminaison proxy, et non avec le point de terminaison de base de données. Vous utilisez également un nom d'utilisateur qui correspond à l'un des noms d'utilisateur pour les secrets que vous avez fournis.

  • 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"

Considérations relatives à la connexion à un proxy avec 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 Éviter d'épingler un proxy RDS.

Considérations relatives à la connexion à un proxy avec PostgreSQL

Pour PostgreSQL, 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, veuillez consulter 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 de plus amples informations sur la messagerie PostgreSQL, consultez la section relative au protocole frontend/backend de la documentation PostgreSQL.

Pour PostgreSQL, si vous utilisez JDBC, nous vous recommandons ce qui suit pour éviter le pinning :

  • 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 lors du démarrage de la connexion lorsqu'il s'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 Éviter d'épingler un proxy RDS. Pour de plus amples informations sur la connexion à l'aide de JDBC, veuillez consulter la section relative à la connexion à la base de données dans la documentation PostgreSQL.