Pourquoi ne puis-je pas me connecter à mon instance de base de données Amazon RDS ou Amazon Aurora à l'aide de Proxy RDS ?

Lecture de 7 minute(s)
0

Impossible de me connecter à mon instance de base de données Amazon Relational Database Service (Amazon RDS) ou Amazon Aurora à l'aide de Proxy Amazon RDS.

Brève description

La connexion avec le proxy RDS peut échouer pour plusieurs raisons. Les problèmes suivants causent fréquemment des échecs de connexion au proxy RDS, y compris lorsque le proxy RDS est à l'état Disponible :

  • les règles de groupe de sécurité, au niveau de l'instance de base de données ou du proxy RDS, empêchent la connexion.
  • le proxy RDS fonctionne uniquement au sein d'un cloud privé virtuel (VPC), ce qui entraîne l'échec des connexions extérieures au réseau privé.
  • l'instance de base de données n'accepte pas la connexion en raison d'une modification ou parce qu'elle est dans un état non disponible.
  • pour le mode nom d'utilisateur et mot de passe natifs : vous avez utilisé des informations d'identification incorrectes.
  • pour l'authentification de base de données de la gestion des identités et des accès AWS (IAM) : le rôle ou l'utilisateur IAM associé au client n'est pas autorisé à se connecter au proxy RDS.

Résolution

Remarque : si vous utilisez un proxy RDS avec une instance de base de données RDS ou un cluster de base de données Aurora qui utilise l'authentification IAM, tous les utilisateurs doivent authentifier leurs connexions. Assurez-vous que tous les utilisateurs qui se connectent via un proxy authentifient leur connexion à l'aide de noms d'utilisateur et de mots de passe. Reportez-vous à Configuration des politiques IAM pour en savoir plus sur la prise en charge de l'IAM dans le proxy RDS.

Vérifier que le client peut accéder au proxy RDS au sein du réseau privé d'un VPC

Le proxy RDS ne peut être utilisé que dans un VPC et ne peut pas être accessible publiquement (bien que l'instance de base de données puisse l'être). Si vous vous connectez depuis l'extérieur d'un réseau privé, votre connexion expire. Les attributs suivants sont nécessaires pour se connecter au sein d'un VPC :

  • si le client provient du même VPC, vérifiez que le groupe de sécurité de votre proxy RDS autorise les connexions du client sur le port par défaut. les ports par défaut sont 3306 pour MySQL et 5432 pour PostgreSQL. Ajoutez des règles au groupe de sécurité associé au VPC pour autoriser le trafic requis.
  • Si le client appartient à un autre VPC, utilisez l'appairage de VPC. Pour gérer le trafic provenant de l'autre VPC, reportez-vous au groupe de sécurité et aux tables de routage.
  • Si votre client provient d'un réseau d'entreprise, utilisez AWS Direct Connect ou AWS Site-to-Site VPN pour vous connecter directement au VPC.
  • Si votre client doit se connecter via l'Internet public, utilisez le tunnel SSH comme hôte intermédiaire. L'utilisation de ce tunnel vous autorise à vous connecter au proxy RDS au sein du même VPC.

Vérifier que le proxy RDS peut se connecter à l'instance de base de données

Le proxy RDS doit établir une connexion avec votre instance de base de données pour gérer le groupe de connexion. Cette connexion utilise le nom d'utilisateur et le mot de passe stockés dans AWS Secrets Manager. Appliquez les bonnes pratiques suivantes pour vous assurer que le proxy RDS peut se connecter à votre instance de base de données :

  • vérifiez que les informations d'identification dans Secrets Manager sont valides et peuvent se connecter à l'instance de base de données.
  • assurez-vous que le groupe de sécurité de votre instance de base de données autorise le trafic provenant du proxy RDS. Pour ce faire, commencez par déterminer le groupe de sécurité de l'instance de base de données et du proxy RDS.

Si le proxy RDS et l'instance de base de données utilisent le même groupe de sécurité, vérifiez que la règle d'héritage du groupe de sécurité est mentionnée dans les règles entrantes :

Inbound rules for the RDS instance in order to allow connections from RDS proxy:
Protocol : TCP
Port Range : Port on which the DB engine is running on the RDS instance
Source : Common security group (for self referencing the security group)

s'ils utilisent des groupes de sécurité différents, citez le groupe de sécurité du proxy RDS dans la règle entrante du groupe de sécurité de l'instance de base de données :

Inbound rules for the RDS instance in order to allow connections from RDS proxy:
Protocol : TCP
Port range : Port on which the DB engine is running on the DB instance
Source : Security group of RDS Proxy

Le proxy RDS initie la connexion pour gérer le groupe. Vous devez donc autoriser le trafic sortant à atteindre l'instance de base de données. Pour ce faire, le groupe de sécurité du proxy RDS doit autoriser le trafic requis dans ses règles sortantes :

Protocol : TCP
Port range : Port on which the DB engine is running on the RDS instance
Destination : Security group of DB instance

Note: If you already have the following outbound rules attached to the security group of the RDS Proxy, then there is no need to explicitly add the security group.
Outbound rules: ALL --- 0.0.0.0/0

Le rôle IAM doit respecter la politique d'approbation de rds.amazonaws.com.

La politique IAM doit être autorisée à appeler l'action secretsmanager:GetSecretValue sur le secret.

La politique IAM doit être autorisée à appeler l'action kms:Decrypt sur la clé AWS Key Management Service (AWS KMS) qui a chiffré le secret. Vous pouvez obtenir les détails de la clé KMS utilisée par AWS Secrets Manager dans la console AWS KMS. Remarque : l'ID de clé KMS doit être utilisé pour la section Ressource. Reportez-vous à l'exemple de politique suivant :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "secretsmanager:GetSecretValue",
      "Resource": [
        "arn:aws:secretsmanager:region:account_id:secret:secret_name"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "kms:Decrypt",
      "Resource": "arn:aws:kms:region:account_id:key/key_id",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "secretsmanager.region.amazonaws.com"
        }
      }
    }
  ]
}

Remarque : veillez à remplacer account_id, secret_name, region, account_id et key_id par les valeurs adéquates.

  • Pour plus d'informations sur ce qui peut empêcher le proxy de se connecter à l'instance de base de données, exécutez la commande describe-db-proxy-targets. Examinez ensuite la structure TargetHealth dans la sortie. Examinez les champs État, Raison et Description pour en savoir plus sur l'état de la connexion de la cible du proxy RDS :
aws rds describe-db-proxy-targets --db-proxy-name $DB_PROXY_NAME

Pour en savoir plus, reportez-vous à Vérification de la connectivité pour un proxy.

Vérifier que l'instance de base de données accepte actuellement les connexions

Vérifiez l'état actuel de votre instance de base de données et confirmez qu'elle est à l'état DISPONIBLE. Pour plus d'informations sur l'examen de l'état de votre instance de base de données, consultez la documentation Amazon RDS et Aurora pour connaître le statut de l'instance de base de données.

Vérifier que le rôle/l'utilisateur IAM est associé à un client disposant des autorisations obligatoires

Remarque : cette étape n'est obligatoire que si vous avez activé l'authentification de base de données IAM sur votre proxy RDS.

Le client doit générer un jeton pour autoriser la demande de connexion. Pour ce faire, l'utilisateur IAM et le rôle IAM associés à ce client doivent disposer de la politique IAM rds-db:connect. Assurez-vous également d'utiliser l'ID de proxy RDS dans l'ARN pour l'attribut Ressources de la politique :

"Resource": "arn:aws:rds-db:us-east-2:1234567890:dbuser:prx-ABCDEFGHIJKL01234/db_user"

Pour en savoir plus, reportez-vous à Création et utilisation d'une politique IAM pour l'accès à la base de données IAM.

Examiner les journaux du proxy RDS

Activez la fonction de journalisation améliorée du proxy RDS. La journalisation donne des informations détaillées sur les instructions SQL. Ces journaux sont utiles pour mieux comprendre certains problèmes d'authentification. Étant donné que cette activation améliore les performances, il est conseillé de les activer uniquement pour le débogage. Pour minimiser la charge, le proxy RDS désactive automatiquement ce paramètre 24 heures après son activation.

Informations connexes

Utilisation du proxy Amazon RDS

Configurer des connexions de bases de données partagées avec le proxy Amazon RDS