Authentification de base de données IAM pour MariaDB, MySQL et PostgreSQL - 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.

Authentification de base de données IAM pour MariaDB, MySQL et PostgreSQL

Vous pouvez vous authentifier auprès de votre instance de base de données à l'aide de l'authentification de base de données AWS Identity and Access Management (IAM). L'authentification de base de données IAM fonctionne avec MariaDB, MySQL et PostgreSQL. Grâce à cette méthode d'authentification, vous n'avez plus besoin de mot de passe pour vous connecter à une instance de base de données. En revanche, un jeton d'authentification est nécessaire.

Un jeton d'authentification est une chaîne de caractères unique générée par Amazon RDS sur demande. Les jetons d'authentification sont générés au moyen d'AWS Signature Version 4. Chaque jeton a une durée de vie de 15 minutes. Il n'est pas nécessaire de stocker les informations d'identification des utilisateurs dans la base de données, car l'authentification est gérée de manière externe avec IAM. Vous pouvez aussi toujours utiliser l'authentification de base de données standard. Le jeton est uniquement utilisé pour l'authentification et n'affecte pas la session une fois qu'il est établi.

L'authentification de base de données IAM offre les avantages suivants :

  • Le trafic réseau à destination et en provenance de la base de données est chiffré à l'aide de Secure Socket Layer (SSL) ou de Transport Layer Security (TLS). Pour plus d'informations sur l'utilisation de SSL/TLS avec Amazon RDS, veuillez consulter .

  • Vous pouvez utiliser IAM pour gérer de façon centralisée l'accès à vos ressources de base de données, au lieu de gérer l'accès de manière individuelle sur chaque instance de bases de données.

  • Pour les applications exécutées sur Amazon EC2, vous pouvez utiliser des informations d'identification spécifiques à votre instance EC2 pou accéder à la base de données, ce qui garantit une meilleure sécurité qu'un mot de passe.

En règle générale, envisagez d'utiliser l'authentification de base de données IAM lorsque vos applications créent moins de 200 connexions par seconde, et que vous ne souhaitez pas gérer les noms d'utilisateur et les mots de passe directement dans le code de votre application.

Le pilote AWS JDBC pour MySQL prend en charge l'authentification de la base de données IAM. Pour plus d'informations, consultez la section Authentification de base de données AWS IAM dans le référentiel AWS JDBC Driver for MySQL. GitHub

Disponibilité des régions et des versions

La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour obtenir plus d'informations sur la disponibilité des versions et des régions avec Amazon RDS et l'authentification de la base de données IAM, consultez Authentification de base de données IAM.

Support CLI et kit SDK

L'authentification de la base de données IAM est disponible pour AWS CLI et pour les kit SDK AWS spécifiques aux langues suivantes :

Limites de l'authentification de base de données IAM

Les limitations suivantes s'appliquent lors de l'utilisation de l'authentification de base de données IAM :

  • Le nombre maximal de connexions par seconde à votre instances de base de données peut être limité en fonction de sa classe d'instance de base de données et de votre charge de travail. L'authentification IAM peut échouer en cas d'épuisement des ressources pendant les pics de charge de base de données.

  • Actuellement, l'authentification de base de données IAM ne prend pas en charge toutes les clés de contexte de condition globale.

    Pour plus d'informations sur les clés de contexte de condition globale, veuillez consulter Clés de contexte de condition globales AWS dans le Guide de l'utilisateur IAM.

  • Pour PostgreSQL, si le rôle IAM (rds_iam) est ajouté à un utilisateur (y compris à l'utilisateur principal RDS), l'authentification IAM a priorité sur l'authentification par mot de passe, de sorte que l'utilisateur doit se connecter en tant qu'utilisateur IAM.

  • Pour PostgreSQL, Amazon RDS ne prend pas en charge l'activation simultanée des méthodes d'authentification IAM et Kerberos.

  • Pour PostgreSQL, vous ne pouvez pas utiliser l'authentification IAM pour établir une connexion de réplication.

  • Vous ne pouvez pas utiliser un enregistrement DNS Route 53 personnalisé à la place du point de terminaison de l'instance de base de données pour générer le jeton d'authentification.

Recommandations pour l'authentification de base de données IAM

Nous recommandons les pratiques suivantes lors de l'utilisation de l'authentification de base de données IAM :

  • Utilisez l'authentification de base de données IAM si votre application exige moins de 200 nouvelles connexions d'authentification de base de données IAM par seconde.

    Les moteurs de base de données qui fonctionnent avec Amazon RDS n'imposent pas de limites de tentatives d'authentification par seconde. Néanmoins, lorsque vous utilisez l'authentification de base de données IAM, votre application doit générer un jeton d'authentification. Votre application emploie ensuite ce jeton pour la connexion à l'instance de base de données. Si vous dépassez la limite maximale de nouvelles connexions par seconde, le traitement supplémentaire d'authentification de base de données IAM peut entraîner une limitation de la connexion.

    Envisagez d'utiliser le regroupement de connexions dans vos applications pour limiter la création constante de connexions. Cela peut réduire les frais généraux liés à l'authentification de base de données IAM et permettre à vos applications de réutiliser les connexions existantes. Vous pouvez également envisager d'utiliser le proxy RDS pour ces cas d'utilisation. Le proxy RDS entraîne des coûts supplémentaires. Consultez Tarification de Proxy Amazon RDS.

  • La taille d'un jeton d'authentification de base de données IAM dépend de nombreux facteurs, notamment du nombre de balises IAM, des politiques de service IAM, de la longueur des ARN, ainsi que d'autres propriétés IAM et de base de données. La taille minimale de ce jeton est généralement d'environ 1 Ko, mais elle peut être plus grande. Ce jeton étant utilisé comme mot de passe dans la chaîne de connexion à la base de données à l'aide de l'authentification IAM, vous devez vous assurer que votre pilote de base de données (par exemple ODBC) et/ou les outils ne limitent ni ne tronquent ce jeton en raison de sa taille. Un jeton tronqué provoquera l'échec de la validation d'authentification effectuée par la base de données et IAM.

  • Si vous utilisez des informations d'identification temporaires lors de la création d'un jeton d'authentification d'une base de données IAM, les informations d'identification temporaires doivent toujours être valides lorsque vous utilisez le jeton d'authentification d'une base de données IAM pour effectuer une demande de connexion.

Clés contextuelles de condition globales AWS non prises en charge

L'authentification d'une base de données IAM ne prend pas en charge le sous-ensemble de clés contextuelles de condition globales AWS suivant.

  • aws:Referer

  • aws:SourceIp

  • aws:SourceVpc

  • aws:SourceVpce

  • aws:UserAgent

  • aws:VpcSourceIp

Pour plus d'informations, consultez Clés de contexte de condition globales AWS dans le Guide de l'utilisateur IAM.