Connexion à une base de données via RDS Proxy - Amazon Aurora

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

Votre connexion à un cluster ou à un cluster de base de données Aurora qui utilise Aurora Serverless v2 via un proxy est généralement identique à une connexion directe à la base de données. La principale différence est que vous indiquez le point de terminaison du proxy et non celui du cluster. Par défaut, toutes les connexions proxy sont read/write fonctionnelles et utilisent l'instance Writer. Si vous utilisez généralement le point de terminaison du lecteur pour les connexions en lecture seule, vous pouvez créer un point de terminaison supplémentaire en lecture seule pour le proxy. Vous pouvez utiliser ce point de terminaison de la même manière. Pour de plus amples informations, veuillez consulter 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 à un cluster de bases de données Aurora. Pour obtenir des informations générales sur l’utilisation d’IAM, consultez Sécurité dans Amazon Aurora. 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 cluster 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 à 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.