Création d’un proxy pour Amazon Aurora - 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.

Création d’un proxy pour Amazon Aurora

Vous pouvez utiliser Proxy Amazon RDS pour améliorer la capacité de mise à l’échelle, la disponibilité et la sécurité de vos applications de base de données en regroupant les connexions et en gérant les basculements de base de données de manière plus efficace. Cette rubrique vous guide dans le processus de création d’un proxy. Avant de commencer, assurez-vous que votre base de données répond aux conditions requises, notamment celles qui concernent les autorisations IAM et la configuration VPC.

Vous pouvez employer un proxy avec un cluster de base de données Aurora MySQL ou Aurora PostgreSQL.

Pour créer un proxy
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à https://console.aws.amazon.com/rds/l'adresse.

  2. Dans le panneau de navigation, sélectionnez Proxies.

  3. Choisissez Création d’un proxy.

  4. Configurez les paramètres suivants pour votre proxy.

    Paramètre Description
    Famille de moteurs Le protocole réseau de base de données que le proxy reconnaît lorsqu’il interprète le trafic réseau à destination et en provenance de la base de données.
    Note

    Pour utiliser Aurora PostgreSQL, assurez-vous de conserver la base de données postgres dans votre instance. Consultez Dépannage des problèmes liés à la base de données postgres.

    Identifiant du proxy Un nom unique au sein de votre identifiant de AWS compte et de votre AWS région actuelle.
    Délai d’inactivité de la connexion client

    Le proxy ferme une connexion client si celle-ci reste inactive pendant une période définie. La valeur par défaut est de 1 800 secondes (30 minutes). Une connexion est considérée comme inactive lorsque l’application ne soumet aucune nouvelle demande dans le délai défini après l’achèvement de la demande précédente. Le proxy maintient la connexion à la base de données sous-jacente ouverte et la renvoie au pool de connexions, la rendant ainsi disponible pour les nouvelles connexions client.

    Pour supprimer proactivement les connexions obsolètes, réduisez le délai d’expiration de la connexion client inactive. Pour minimiser les coûts de connexion en cas de pics de charge de travail, augmentez le délai d’expiration.

    Base de données Choisissez un cluster de bases de données Aurora pour y accéder via ce proxy. La liste inclut uniquement les instances et les clusters de bases de données dotés de moteurs de base de données, de versions de moteur et d’autres paramètres compatibles. Si la liste est vide, créez une instance ou un cluster de base de données compatible avec RDS Proxy. Pour ce faire, suivez la procédure décrite dans Création d’un cluster de bases de données Amazon Aurora. Puis, réessayez de créer le proxy.
    Nombre maximal de connexions du pool de connexions Une valeur comprise entre 1 et 100 pour définir le pourcentage de la limite max_connections que RDS Proxy peut utiliser. Si vous ne prévoyez d’utiliser qu’un seul proxy avec cette instance ou ce cluster de bases de données, définissez cette valeur sur 100. Pour plus d’informations sur l’utilisation de ce paramètre par RDS Proxy, consultez MaxConnectionsPercent.
    Filtres d’épinglage de session

    Empêche RDS Proxy d’épingler certains états de session détectés, contournant ainsi les mécanismes de sécurité par défaut utilisés pour le multiplexage des connexions. Actuellement, PostgreSQL ne prend pas en charge ce paramètre, et la seule option disponible est EXCLUDE_VARIABLE_SETS. Son activation peut entraîner la propagation de variables de session d’une connexion à une autre, ce qui risque de provoquer des erreurs ou des problèmes de cohérence si les requêtes dépendent de variables de session définies en dehors de la transaction en cours. N’utilisez cette option qu’après avoir confirmé que vos applications peuvent partager des connexions de base de données en toute sécurité.

    Les modèles suivants sont considérés comme sûrs :

    • Instructions SET dans lesquelles aucune modification n’est apportée à la valeur effective de la variable de session. En d’autres termes, aucune modification n’est apportée à la variable de session.

    • Vous modifiez la valeur de la variable de session et exécutez une instruction dans la même transaction.

    Pour plus d’informations, consultez Contournement de l’épinglage d’un proxy RDS.

    Délai d’expiration de l’emprunt de connexion Si vous prévoyez que le proxy utilise toutes les connexions de base de données disponibles, définissez le délai d’attente avant qu’il ne renvoie une erreur de temporisation. Vous pouvez spécifier une durée maximale de cinq minutes. Ce paramètre s’applique uniquement lorsque le proxy a atteint le nombre maximal de connexions et que toutes les connexions sont déjà utilisées.
    Requête d’initialisation

    (Facultatif) Ajoutez une requête d’initialisation ou modifiez la requête actuelle. Vous pouvez spécifier une ou plusieurs instructions SQL que le proxy doit exécuter lors de l’ouverture de chaque nouvelle connexion à la base de données. Ce paramètre est généralement utilisé avec des instructions SET pour s’assurer que chaque connexion a des paramètres identiques. Assurez-vous que la requête que vous ajoutez est valide. Pour inclure plusieurs variables dans une seule instruction SET, utilisez des virgules comme séparateurs. Par exemple :

    SET variable1=value1, variable2=value2

    Pour plusieurs instructions, utilisez des points-virgules comme séparateur.

    Important

    Comme la requête d’initialisation est accessible dans le cadre de la configuration du groupe cible, elle n’est pas protégée par des mécanismes d’authentification ni de chiffrement. Toute personne ayant accès à l’affichage ou à la gestion de la configuration du groupe cible proxy peut consulter la requête d’initialisation. Vous ne devez pas ajouter de données sensibles, telles que des mots de passe ou des clés de chiffrement à longue durée de vie, à cette option.

    AWS Identity and Access Management Rôle (IAM)

    Un rôle IAM autorisé à accéder aux secrets de Secrets Manager, qui représentent les informations d’identification des comptes utilisateur de base de données que le proxy peut utiliser. Vous pouvez également créer un rôle IAM à l’aide de la AWS Management Console.

    Secrets Manager

    Créez ou choisissez des secrets Secrets Manager représentant les informations d'identification des comptes des utilisateurs de base de données autorisés à utiliser le proxy.

    Lorsque le schéma d'authentification par défaut est défini sur Aucun, ce champ est obligatoire. Lorsque le schéma d'authentification par défaut est défini sur l'authentification IAM, ce champ devient facultatif et est marqué comme tel dans la console.

    Vous pouvez choisir un ou plusieurs secrets dans le menu déroulant ou en créer un nouveau à l'aide du lien Créer un nouveau secret.

    Type d’authentification client Le type d’authentification utilisé par le proxy pour les connexions à partir des clients. Votre choix s’applique à tous les secrets de Secrets Manager que vous associez à ce proxy. Si vous devez spécifier un type d'authentification client différent pour chaque secret, créez votre proxy en utilisant plutôt l'API AWS CLI ou l'API. Spécifiez cette option uniquement lorsque votre connexion client utilise les informations d'identification de base de données pour l'authentification.
    Authentification IAM Spécifiez Obligatoire ou Non autorisé pour l'authentification IAM pour les connexions à votre proxy. Votre choix s’applique à tous les secrets de Secrets Manager que vous associez à ce proxy. Si vous devez spécifier une authentification IAM différente pour chaque secret, créez votre proxy en utilisant plutôt l'API AWS CLI ou l'API.
    Schéma d'authentification par défaut

    Choisissez le type d'authentification par défaut que le proxy utilise pour les connexions client au proxy et les connexions entre le proxy et la base de données sous-jacente. Vous avez les options suivantes :

    • Aucun (par défaut) : le proxy récupère les informations d'identification de la base de données à partir des secrets de Secrets Manager.

    • Authentification IAM : le proxy utilise l'authentification IAM pour se connecter à la base de données, ce qui permet l'authentification end-to-end IAM.

    Lorsque vous sélectionnez l'authentification IAM, une alerte d'information apparaît pour vous rappeler d'activer l'authentification de base de données IAM pour les bases de données de la configuration du groupe cible.

    Note

    Cette option est prise en charge uniquement pour les familles de moteurs MySQL, PostgreSQL et MariaDB.

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

    Ce champ apparaît uniquement lorsque le schéma d'authentification par défaut est défini sur Authentification IAM et que le rôle de gestion des identités et des accès (IAM) est défini sur Créer un rôle IAM.

    Nommez les comptes utilisateur de base de données pour le proxy à utiliser avec l'authentification IAM. Ce champ est obligatoire. Spécifiez plusieurs comptes en :

    • Tapez un nom d'utilisateur de base de données pour l'ajouter en tant que balise

    • Utilisation de noms d'utilisateur de base de données spécifiques (par exempledb_user,,jane_doe)

    • Utilisation de modèles de caractères génériques pour plusieurs utilisateurs (par exemple,db_test_*)

    Chaque compte apparaît sous la forme d'une étiquette amovible que vous pouvez supprimer en cliquant sur l'icône X. La console utilise ces valeurs pour créer les rds-db:connect autorisations appropriées dans la politique de rôle IAM.

    Exigez la sécurité de la couche de transport

    S'applique TLS/SSL à toutes les connexions client. Le proxy utilise le même paramètre de chiffrement pour sa connexion à la base de données sous-jacente, que la connexion du client soit chiffrée ou non.

    Type de réseau de connexion cible

    Version IP utilisée par le proxy pour se connecter à la base de données cible. Sélectionnez parmi les options suivantes :

    • IPv4— Le proxy se connecte à la base de données à l'aide d' IPv4 adresses.

    • IPv6— Le proxy se connecte à la base de données à l'aide d' IPv6 adresses.

    La valeur par défaut est IPv4. Pour pouvoir être utilisée IPv6, votre base de données doit prendre en charge le mode double pile. Le mode double pile n’est pas disponible pour les connexions cibles.

    Type de réseau de point de terminaison

    Version IP du point de terminaison de proxy que les clients utilisent pour se connecter au proxy. Sélectionnez parmi les options suivantes :

    • IPv4— Le point de terminaison du proxy utilise uniquement IPv4 des adresses.

    • IPv6— Le point de terminaison du proxy utilise uniquement IPv6 des adresses.

    • Double pile : le point de terminaison du proxy prend en charge à la fois les IPv6 adresses IPv4 et les adresses.

    La valeur par défaut est IPv4. Pour l'utiliser IPv6 ou le double-stack, votre VPC et vos sous-réseaux doivent être configurés pour prendre en charge le type de réseau sélectionné.

    Sous-réseaux

    Ce champ est pré-rempli avec tous les sous-réseaux associés à votre VPC. Vous pouvez supprimer tous les sous-réseaux dont le proxy n’a pas besoin, en veillant toutefois à en conserver au moins deux. Pour les IPv6 types de réseaux de points de terminaison à double pile, assurez-vous que les sous-réseaux sélectionnés prennent en charge le type de réseau choisi.

    Groupe de sécurité VPC

    Choisissez un groupe de sécurité de VPC existant ou créez-en un à l’aide de la AWS Management Console. Configurez les règles entrantes pour permettre à vos applications d’accéder au proxy, et les règles sortantes pour autoriser le trafic en provenance de vos bases de données cibles.

    Note

    Le groupe de sécurité doit autoriser les connexions du proxy à la base de données. Il sert à la fois pour le trafic entrant depuis vos applications vers le proxy et pour le trafic sortant du proxy vers la base de données. Par exemple, si vous utilisez le même groupe de sécurité pour la base de données et le proxy, assurez-vous que les ressources de ce groupe de sécurité peuvent communiquer entre elles.

    Lorsque vous utilisez un VPC partagé, évitez d’utiliser le groupe de sécurité par défaut pour le VPC ou un groupe associé à un autre compte. Choisissez plutôt un groupe de sécurité qui appartient à votre compte. Si aucun n’existe, créez-en un. Pour plus d'informations, voir Travailler avec le partage VPCs.

    RDS déploie un proxy sur plusieurs zones de disponibilité pour assurer une haute disponibilité. Pour activer la communication entre les zones de disponibilité, la liste de contrôle d’accès (ACL) réseau du sous-réseau de votre proxy doit autoriser le trafic sortant propre aux ports du moteur et autoriser le trafic entrant sur tous les ports. Pour plus d'informations sur le réseau ACLs, voir Contrôler le trafic vers les sous-réseaux à l'aide du réseau ACLs. Si votre proxy et votre cible ont la même liste ACL réseau, vous devez ajouter une règle de trafic entrant de protocole TCP dans laquelle la source est définie sur le CIDR du VPC. Vous devez également ajouter une règle de trafic sortant de protocole TCP propre aux ports du moteur dans laquelle la destination est définie sur le CIDR du VPC.

    Activation de la journalisation améliorée

    Activez ce paramètre pour résoudre les problèmes liés à la compatibilité des proxies ou aux performances. Lorsqu’il est activé, RDS Proxy consigne des informations détaillées sur les performances afin de vous aider à diagnostiquer le comportement SQL ou les performances et la capacité de mise à l’échelle des connexions via le proxy.

    Activez ce paramètre uniquement pour le débogage et assurez-vous que les mesures de sécurité appropriées sont appliquées pour protéger les informations sensibles contenues dans les journaux. Pour minimiser les frais, RDS Proxy désactive automatiquement ce paramètre 24 heures après son activation. Utilisez-le temporairement pour résoudre des problèmes spécifiques.

  5. Choisissez Création d’un proxy.

Pour créer un proxy à l'aide de AWS CLI, appelez la create-db-proxycommande avec les paramètres obligatoires suivants :

  • --db-proxy-name

  • --engine-family

  • --role-arn

  • --vpc-subnet-ids

La valeur --engine-family est sensible à la casse.

Exemple

Pour Linux, macOS ou Unix :

aws rds create-db-proxy \ --db-proxy-name proxy_name \ --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \ --role-arn iam_role \ --vpc-subnet-ids space_separated_list \ [--default-auth-scheme { NONE | IAM_AUTH }] \ [--auth ProxyAuthenticationConfig_JSON_string] \ [--vpc-security-group-ids space_separated_list] \ [--require-tls | --no-require-tls] \ [--idle-client-timeout value] \ [--debug-logging | --no-debug-logging] \ [--endpoint-network-type { IPV4 | IPV6 | DUAL }] \ [--target-connection-network-type { IPV4 | IPV6 }] \ [--tags comma_separated_list]

Pour Windows :

aws rds create-db-proxy ^ --db-proxy-name proxy_name ^ --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^ --role-arn iam_role ^ --vpc-subnet-ids space_separated_list ^ [--default-auth-scheme { NONE | IAM_AUTH }] ^ [--auth ProxyAuthenticationConfig_JSON_string] ^ [--vpc-security-group-ids space_separated_list] ^ [--require-tls | --no-require-tls] ^ [--idle-client-timeout value] ^ [--debug-logging | --no-debug-logging] ^ [--endpoint-network-type { IPV4 | IPV6 | DUAL }] ^ [--target-connection-network-type { IPV4 | IPV6 }] ^ [--tags comma_separated_list]

Voici un exemple de valeur JSON pour l’option --auth. Cet exemple applique un type d’authentification client différent à chaque secret.

[ { "Description": "proxy description 1", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab", "IAMAuth": "DISABLED", "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256" }, { "Description": "proxy description 2", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd", "IAMAuth": "DISABLED", "ClientPasswordAuthType": "POSTGRES_MD5" }, { "Description": "proxy description 3", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef", "IAMAuth": "REQUIRED" } ]

Le paramètre --endpoint-network-type indique la version IP du point de terminaison de proxy que les clients utilisent pour se connecter au proxy. Les valeurs valides sont :

  • IPV4— Le point de terminaison du proxy utilise uniquement IPv4 des adresses (par défaut).

  • IPV6— Le point de terminaison du proxy utilise uniquement IPv6 des adresses.

  • DUAL— Le point de terminaison du proxy prend en charge IPv4 les deux IPv6 adresses.

Le paramètre --target-connection-network-type indique la version IP utilisée par le proxy pour se connecter à la base de données cible. Les valeurs valides sont :

  • IPV4— Le proxy se connecte à la base de données à l'aide d' IPv4 adresses (par défaut).

  • IPV6— Le proxy se connecte à la base de données à l'aide d' IPv6 adresses.

Pour utiliser IPv6 ou doubler les types de réseaux de points de terminaison, votre VPC et vos sous-réseaux doivent être configurés pour prendre en charge le type de réseau sélectionné. Pour utiliser le type de réseau de connexion IPv6 cible, votre base de données doit prendre en charge le mode double pile.

Astuce

Si vous ne connaissez pas encore le sous-réseau IDs à utiliser pour le --vpc-subnet-ids paramètre, consultez des exemples Configuration des prérequis réseau pour un proxy RDS pour les trouver.

Note

Le groupe de sécurité doit autoriser l’accès à la base de données à laquelle le proxy se connecte. Le même groupe de sécurité est utilisé pour l’entrée de vos applications vers le proxy, et pour la sortie du proxy vers la base de données. Par exemple, supposons que vous utilisiez le même groupe de sécurité pour votre base de données et votre proxy. Dans ce cas, assurez-vous de spécifier que les ressources de ce groupe de sécurité peuvent communiquer avec d’autres ressources du même groupe de sécurité.

Lorsque vous utilisez un VPC partagé, vous ne pouvez pas utiliser le groupe de sécurité par défaut pour le VPC ni un groupe appartenant à un autre compte. Choisissez un groupe de sécurité qui appartient à votre compte. S’il n’en existe aucun, créez-en un. Pour plus d'informations sur cette limitation, voir Travailler avec le partage VPCs.

Pour créer les associations appropriées pour le proxy, vous devez également utiliser la register-db-proxy-targetscommande. Spécifiez le nom du groupe cible default. RDS Proxy crée automatiquement un groupe cible portant ce nom au moment de la création de chaque proxy.

aws rds register-db-proxy-targets --db-proxy-name value [--target-group-name target_group_name] [--db-instance-identifiers space_separated_list] # rds db instances, or [--db-cluster-identifiers cluster_id] # rds db cluster (all instances)

Pour créer un proxy RDS, appelez l'opération Create de l'API Amazon RDS. DBProxy Vous transmettez un paramètre avec la structure AuthConfigde données.

RDS Proxy crée automatiquement un groupe cible nommé default au moment de la création de chaque proxy. Vous associez un cluster de base de données Aurora d'une instance de base au groupe cible en appelant la fonction Register DBProxy Targets.

Important

Lorsque vous sélectionnez l'authentification IAM comme schéma d'authentification par défaut :

  • Vous devez activer l'authentification de base de données IAM sur vos instances ou clusters de base de données cibles pour que le proxy puisse se connecter correctement.

  • Si vous choisissez Créer un rôle IAM, le champ Comptes de base de données pour l'authentification IAM est obligatoire.

  • Si vous sélectionnez un rôle IAM existant, la console ne met pas automatiquement à jour le rôle avec les autorisations de connexion à la base de données. Vérifiez que le rôle dispose des rds-db:connect autorisations nécessaires.