Authentification de base de données IAM - 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.

Authentification de base de données IAM

Vous pouvez vous authentifier auprès de votre cluster d' 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 Aurora MySQL et Aurora PostgreSQL. Grâce à cette méthode d'authentification, vous n'avez plus besoin de mot de passe pour vous connecter à un cluster 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 Aurora sur demande. Les jetons d'authentification sont générés à l'aide de AWS la version 4 de Signature. 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 Aurora, 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 cluster 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 JDBC Amazon Web Services (AWS) prend en charge l'authentification de base de données IAM. Pour plus d'informations, consultez la section Plug-in d'authentification AWS IAM dans le référentiel de pilotes JDBC Amazon Web Services (AWS). GitHub

Le pilote Python Amazon Web Services (AWS) prend en charge l'authentification de base de données IAM. Pour plus d'informations, consultez la section Plug-in d'authentification AWS IAM dans le GitHubréférentiel de pilotes Python Amazon Web Services (AWS).

Disponibilité des régions et des versions

La disponibilité et la prise en charge des fonctions varient selon les versions spécifiques de chaque moteur de base de données Aurora, et selon les Régions AWS. Pour obtenir plus d'informations sur la disponibilité des versions et des régions avec Aurora et l'authentification de la base de données IAM, consultez Régions et moteurs de base de données Aurora pris en charge pour l'authentification de base de données IAM.

Pour Aurora MySQL, toutes les classes d'instances de base de données prises en charge prennent en charge l'authentification de base de données IAM, à l'exception de db.t2.small et db.t3.small. Pour plus d'informations sur les classes d'instances de base de données prises en charge, consultez Moteurs de base de données pris en charge pour les classes d'instance de base de données.

Support CLI et kit SDK

L'authentification de base de données IAM est disponible pour AWS CLIet pour les SDK spécifiques aux langues AWS suivants :

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 :

  • L'authentification de base de données IAM limite les connexions dans les scénarios suivants :

    • Vous dépassez les 20 connexions par seconde en utilisant des jetons d'authentification signés chacun par une identité IAM différente.

    • Vous dépassez les 200 connexions par seconde en utilisant différents jetons d'authentification.

    Les connexions qui utilisent le même jeton d'authentification ne sont pas limitées. Nous vous recommandons de réutiliser les jetons d'authentification dans la mesure du possible.

  • 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 Aurora 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 du cluster de base de données pour générer le jeton d'authentification.

  • CloudWatch et CloudTrail n'enregistrez pas l'authentification IAM. Ces services ne suivent pas les appels generate-db-auth-token d'API qui autorisent le rôle IAM à activer la connexion à la base de données. Pour plus d'informations, consultez Atteindre l'auditabilité avec l'authentification Amazon RDS IAM à l'aide du contrôle d'accès basé sur les attributs.

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 Aurora 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 au cluster 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 AWS globale non prises en charge

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

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