Résolution des problèmes de connexion dans Amazon Keyspaces - Amazon Keyspaces (pour Apache Cassandra)

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.

Résolution des problèmes de connexion dans Amazon Keyspaces

Vous rencontrez des difficultés pour vous connecter ? Voici quelques problèmes courants et comment les résoudre.

Erreurs de connexion à un point de terminaison Amazon Keyspaces

Les connexions échouées et les erreurs de connexion peuvent entraîner des messages d'erreur différents. La section suivante couvre les scénarios les plus courants.

Je n'arrive pas à me connecter à Amazon Keyspaces avec cqlsh

Vous essayez de vous connecter à un point de terminaison Amazon Keyspaces à l'aide de cqlsh et la connexion échoue avec un. Connection error

Si vous essayez de vous connecter à une table Amazon Keyspaces et que cqlsh n'est pas correctement configuré, la connexion échoue. La section suivante fournit des exemples des problèmes de configuration les plus courants qui entraînent des erreurs de connexion lorsque vous essayez d'établir une connexion à l'aide de cqlsh.

Note

Si vous essayez de vous connecter à Amazon Keyspaces depuis un VPC, des autorisations supplémentaires sont requises. Pour configurer correctement une connexion à l'aide de points de terminaison VPC, suivez les étapes décrites dans le. Tutoriel : Connexion à Amazon Keyspaces à l'aide d'un point de terminaison VPC d'interface

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais une erreur de connexion s'affiche. timed out

Cela peut être le cas si vous n'avez pas fourni le port correct, ce qui entraîne l'erreur suivante.

# cqlsh cassandra.us-east-1.amazonaws.com 9140 -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.199': error(None, "Tried connecting to [('3.234.248.199', 9140)]. Last error: timed out")})

Pour résoudre ce problème, vérifiez que vous utilisez le port 9142 pour la connexion.

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais un message d'erreur s'affiche. Name or service not known

Cela peut être le cas si vous avez utilisé un point de terminaison mal orthographié ou qui n'existe pas. Dans l'exemple suivant, le nom du point de terminaison est mal orthographié.

# cqlsh cassandra.us-east-1.amazon.com 9142 -u "USERNAME" -p "PASSWORD" --ssl Traceback (most recent call last): File "/usr/bin/cqlsh.py", line 2458, in >module> main(*read_options(sys.argv[1:], os.environ)) File "/usr/bin/cqlsh.py", line 2436, in main encoding=options.encoding) File "/usr/bin/cqlsh.py", line 484, in __init__ load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]), File "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.11.0-bb96859b.zip/cassandra-driver-3.11.0-bb96859b/cassandra/policies.py", line 417, in __init__ socket.gaierror: [Errno -2] Name or service not known

Pour résoudre ce problème lorsque vous utilisez des points de terminaison publics pour vous connecter, sélectionnez un point de Points de terminaison de service pour Amazon Keyspaces terminaison disponible et vérifiez que le nom du point de terminaison ne contient aucune erreur. Si vous utilisez des points de terminaison VPC pour vous connecter, vérifiez que les informations du point de terminaison VPC sont correctes dans votre configuration cqlsh.

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais un message d'erreur s'affiche. OperationTimedOut

Amazon Keyspaces exige que le protocole SSL soit activé pour les connexions afin de garantir une sécurité renforcée. Le paramètre SSL est peut-être absent si le message d'erreur suivant s'affiche.

# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" Connection error: ('Unable to connect to any servers', {'3.234.248.192': OperationTimedOut('errors=Timed out creating connection (5 seconds), last_host=None',)}) #

Pour résoudre ce problème, ajoutez l'indicateur suivant à la commande de connexion cqlsh.

--ssl

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh et vous recevez un message d'erreur. SSL transport factory requires a valid certfile to be specified

Dans ce cas, le chemin d'accès au certificat SSL/TLS est manquant, ce qui entraîne l'erreur suivante.

# cat .cassandra/cqlshrc [connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory # # cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl Validation is enabled; SSL transport factory requires a valid certfile to be specified. Please provide path to the certfile in [ssl] section as 'certfile' option in /root/.cassandra/cqlshrc (or use [certfiles] section) or set SSL_CERTFILE environment variable. #

Pour résoudre ce problème, ajoutez le chemin du fichier de certificat sur votre ordinateur.

certfile = path_to_file/sf-class2-root.crt

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais un message d'erreur s'affiche. No such file or directory

Cela peut être le cas si le chemin d'accès au fichier de certificat sur votre ordinateur est incorrect, ce qui entraîne l'erreur suivante.

# cat .cassandra/cqlshrc [connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile = /root/wrong_path/sf-class2-root.crt # # cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.192': IOError(2, 'No such file or directory')}) #

Pour résoudre ce problème, vérifiez que le chemin d'accès au fichier de certificat sur votre ordinateur est correct.

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais un message d'erreur s'affiche. [X509] PEM lib

Cela peut être le cas si le fichier de certificat SSL/TLS n'sf-class2-root.crtest pas valide, ce qui entraîne l'erreur suivante.

# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.241': error(185090057, u"Tried connecting to [('3.234.248.241', 9142)]. Last error: [X509] PEM lib (_ssl.c:3063)")}) #

Pour résoudre ce problème, téléchargez le certificat numérique Starfield à l'aide de la commande suivante. Enregistrez sf-class2-root.crt localement ou dans votre répertoire personnel.

curl https://certs.secureserver.net/repository/sf-class2-root.crt -O

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais vous recevez une erreur SSL. unknown

Cela peut être le cas si le fichier de certificat SSL/TLS sf-class2-root.crt est vide, ce qui entraîne l'erreur suivante.

# cqlsh cassandra.us-east-1.amazonaws.com -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.220': error(0, u"Tried connecting to [('3.234.248.220', 9142)]. Last error: unknown error (_ssl.c:3063)")}) #

Pour résoudre ce problème, téléchargez le certificat numérique Starfield à l'aide de la commande suivante. Enregistrez sf-class2-root.crt localement ou dans votre répertoire personnel.

curl https://certs.secureserver.net/repository/sf-class2-root.crt -O

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais un message d'erreur s'affiche. SSL: CERTIFICATE_VERIFY_FAILED

Cela peut être le cas si le fichier de certificat SSL/TLS n'a pas pu être vérifié, ce qui entraîne l'erreur suivante.

Connection error: ('Unable to connect to any servers', {'3.234.248.223': error(1, u"Tried connecting to [('3.234.248.223', 9142)]. Last error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)")})

Pour résoudre ce problème, téléchargez à nouveau le fichier de certificat à l'aide de la commande suivante. Enregistrez sf-class2-root.crt localement ou dans votre répertoire personnel.

curl https://certs.secureserver.net/repository/sf-class2-root.crt -O

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais un message d'erreur s'affiche. Last error: timed out

Cela peut être le cas si vous n'avez pas configuré de règle sortante pour Amazon Keyspaces dans votre groupe de sécurité Amazon EC2, ce qui entraîne l'erreur suivante.

# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.206': error(None, "Tried connecting to [('3.234.248.206', 9142)]. Last error: timed out")}) #

Pour confirmer que ce problème est dû à la configuration de l'instance Amazon EC2 et noncqlsh, vous pouvez essayer de vous connecter à votre espace de touches en utilisant, par exemple AWS CLI, la commande suivante.

aws keyspaces list-tables --keyspace-name 'my_keyspace'

Si cette commande expire également, l'instance Amazon EC2 n'est pas correctement configurée.

Pour vérifier que vous disposez des autorisations suffisantes pour accéder à Amazon Keyspaces, vous pouvez utiliser le AWS CloudShell pour vous connecter à. cqlsh Si ces connexions sont établies, vous devez configurer l'instance Amazon EC2.

Pour résoudre ce problème, vérifiez que votre instance Amazon EC2 dispose d'une règle sortante qui autorise le trafic vers Amazon Keyspaces. Si ce n'est pas le cas, vous devez créer un nouveau groupe de sécurité pour l'instance EC2 et ajouter une règle autorisant le trafic sortant vers les ressources Amazon Keyspaces. Pour mettre à jour la règle de trafic sortant afin d'autoriser le trafic vers Amazon Keyspaces, choisissez CQLSH/CASSANDRA dans le menu déroulant Type.

Après avoir créé le nouveau groupe de sécurité avec la règle de trafic sortant, vous devez l'ajouter à l'instance. Sélectionnez l'instance, puis sélectionnez Actions, Sécurité, puis Modifier les groupes de sécurité. Ajoutez le nouveau groupe de sécurité avec la règle sortante, mais assurez-vous que le groupe par défaut reste également disponible.

Pour plus d'informations sur la façon d'afficher et de modifier les règles de sortie EC2, consultez la section Ajouter des règles à un groupe de sécurité dans le guide de l'utilisateur Amazon EC2.

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais un message d'erreur s'affiche. Unauthorized

Cela peut être le cas si vous ne disposez pas des autorisations Amazon Keyspaces dans la politique utilisateur d'IAM, ce qui entraîne l'erreur suivante.

# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u "testuser-at-12345678910" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.241': AuthenticationFailed('Failed to authenticate to 3.234.248.241: Error from server: code=2100 [Unauthorized] message="User arn:aws:iam::12345678910:user/testuser has no permissions."',)}) #

Pour résoudre ce problème, assurez-vous que l'utilisateur IAM testuser-at-12345678910 est autorisé à accéder à Amazon Keyspaces. Pour des exemples de politiques IAM qui accordent l'accès à Amazon Keyspaces, consultez. Exemples de politiques basées sur l'identité d'Amazon Keyspaces

Pour obtenir des conseils de résolution des problèmes spécifiques à l'accès IAM, consultezRésolution des problèmes d'identité et d'accès à Amazon Keyspaces.

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de cqlsh, mais un message d'erreur s'affiche. Bad credentials

Cela peut être le cas si le nom d'utilisateur ou le mot de passe est incorrect, ce qui entraîne l'erreur suivante.

# cqlsh cassandra.us-east-1.amazonaws.com 9142 -u "USERNAME" -p "PASSWORD" --ssl Connection error: ('Unable to connect to any servers', {'3.234.248.248': AuthenticationFailed('Failed to authenticate to 3.234.248.248: Error from server: code=0100 [Bad credentials] message="Provided username USERNAME and/or password are incorrect"',)}) #

Pour résoudre ce problème, vérifiez que le NOM D'UTILISATEUR et le MOT DE PASSE de votre code correspondent au nom d'utilisateur et au mot de passe que vous avez obtenus lorsque vous avez généré les informations d'identification spécifiques au service.

Important

Si vous continuez à voir des erreurs lorsque vous essayez de vous connecter à cqlsh, réexécutez la commande avec l'--debugoption et incluez le résultat détaillé lors de la prise de contact. AWS Support

Je ne parviens pas à me connecter à Amazon Keyspaces à l'aide d'un pilote client Cassandra

Les sections suivantes présentent les erreurs les plus courantes lors de la connexion avec un pilote client Cassandra.

Vous essayez de vous connecter à une table Amazon Keyspaces à l'aide du pilote DataStax Java, mais un message d'NodeUnavailableExceptionerreur s'affiche.

Si la connexion sur laquelle la demande est tentée est interrompue, cela entraîne l'erreur suivante.

[com.datastax.oss.driver.api.core.NodeUnavailableException: No connection was available to Node(endPoint=vpce-22ff22f2f22222fff-aa1bb234.cassandra.us-west-2.vpce.amazonaws.com/11.1.1111.222:9142, hostId=1a23456b-c77d-8888-9d99-146cb22d6ef6, hashCode=123ca4567)]

Pour résoudre ce problème, trouvez la valeur du rythme cardiaque et abaissez-la à 30 secondes si elle est supérieure.

advanced.heartbeat.interval = 30 seconds

Recherchez ensuite le délai d'expiration associé et assurez-vous que la valeur est définie sur au moins 5 secondes.

advanced.connection.init-query-timeout = 5 seconds

Vous essayez de vous connecter à une table Amazon Keyspaces à l'aide d'un pilote et du plugin SigV4, mais un message d'erreur s'affiche. AttributeError

Si les informations d'identification ne sont pas correctement configurées, l'erreur suivante se produit.

cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’, {‘44.234.22.154:9142’: AttributeError(“‘NoneType’ object has no attribute ‘access_key’“)})

Pour résoudre ce problème, vérifiez que vous transmettez les informations d'identification associées à votre utilisateur ou rôle IAM lorsque vous utilisez le plug-in SigV4. Le plug-in SigV4 nécessite les informations d'identification suivantes.

  • AWS_ACCESS_KEY_ID— Spécifie une clé d' AWS accès associée à un utilisateur ou à un rôle IAM.

  • AWS_SECRET_ACCESS_KEY— Spécifie la clé secrète associée à la clé d'accès. Il s'agit du « mot de passe » de la clé d'accès.

Pour en savoir plus sur les clés d'accès et le plug-in SigV4, consultezComment créer et configurer les AWS informations d'identification pour Amazon Keyspaces.

Vous essayez de vous connecter à une table Amazon Keyspaces à l'aide d'un pilote, mais un message d'erreur s'affiche. PartialCredentialsError

Si ce AWS_SECRET_ACCESS_KEY n'est pas le cas, cela peut entraîner l'erreur suivante.

cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’, {‘44.234.22.153:9142’: PartialCredentialsError(‘Partial credentials found in config-file, missing: aws_secret_access_key’)})

Pour résoudre ce problème, vérifiez que vous passez à la fois le AWS_ACCESS_KEY_ID et le AWS_SECRET_ACCESS_KEY lorsque vous utilisez le plug-in SigV4. Pour en savoir plus sur les clés d'accès et le plug-in SigV4, consultezComment créer et configurer les AWS informations d'identification pour Amazon Keyspaces.

Vous essayez de vous connecter à une table Amazon Keyspaces à l'aide d'un pilote, mais un message d'Invalid signatureerreur s'affiche.

Cela peut être le cas si vous avez utilisé des informations d'identification incorrectes, ce qui entraîne l'erreur suivante.

cassandra.cluster.NoHostAvailable: (‘Unable to connect to any servers’, {‘44.234.22.134:9142’: AuthenticationFailed(‘Failed to authenticate to 44.234.22.134:9142: Error from server: code=0100 [Bad credentials] message=“Authentication failure: Invalid signature”’)})

Pour résoudre ce problème, vérifiez que les informations d'identification que vous transmettez sont associées à l'utilisateur ou au rôle IAM que vous avez configuré pour accéder à Amazon Keyspaces. Pour en savoir plus sur les clés d'accès et le plug-in SigV4, consultezComment créer et configurer les AWS informations d'identification pour Amazon Keyspaces.

La connexion de mon point de terminaison VPC ne fonctionne pas correctement

Vous essayez de vous connecter à Amazon Keyspaces via des points de terminaison VPC, mais vous recevez des erreurs de mappage de jetons ou vous rencontrez un faible débit.

Cela peut être le cas si la connexion du point de terminaison VPC n'est pas correctement configurée.

Pour résoudre ces problèmes, vérifiez les détails de configuration suivants. Pour suivre un step-by-step didacticiel expliquant comment configurer une connexion via des points de terminaison VPC d'interface pour Amazon Keyspaces, consultez. Tutoriel : Connexion à Amazon Keyspaces à l'aide d'un point de terminaison VPC d'interface

  1. Vérifiez que l'entité IAM utilisée pour se connecter à Amazon Keyspaces dispose d'un accès en lecture/écriture à la table utilisateur et d'un accès en lecture aux tables système, comme indiqué dans l'exemple suivant.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "cassandra:Select", "cassandra:Modify" ], "Resource":[ "arn:aws:cassandra:us-east-1:111122223333:/keyspace/mykeyspace/table/mytable", "arn:aws:cassandra:us-east-1:111122223333:/keyspace/system*" ] } ] }
  2. Vérifiez que l'entité IAM utilisée pour se connecter à Amazon Keyspaces dispose des autorisations de lecture requises pour accéder aux informations du point de terminaison VPC sur votre instance Amazon EC2, comme indiqué dans l'exemple suivant.

    { "Version":"2012-10-17", "Statement":[ { "Sid":"ListVPCEndpoints", "Effect":"Allow", "Action":[ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints" ], "Resource":"*" } ] }
    Note

    Les politiques gérées AmazonKeyspacesFullAccess incluent AmazonKeyspacesReadOnlyAccess_v2 les autorisations requises pour permettre à Amazon Keyspaces d'accéder à l'instance Amazon EC2 afin de lire les informations sur les points de terminaison VPC d'interface disponibles.

    Pour plus d'informations sur les points de terminaison VPC, voir Utilisation des points de terminaison VPC de l'interface pour Amazon Keyspaces

  3. Vérifiez que la configuration SSL du pilote Java définit la validation du nom d'hôte sur false, comme indiqué dans cet exemple.

    hostname-validation = false

    Pour plus d'informations sur la configuration du pilote, consultezÉtape 2 : Configuration du pilote.

  4. Pour confirmer que le point de terminaison du VPC a été correctement configuré, vous pouvez exécuter l'instruction suivante depuis votre VPC.

    Note

    Vous ne pouvez pas utiliser votre environnement de développement local ou l'éditeur CQL d'Amazon Keyspaces pour confirmer cette configuration, car ils utilisent le point de terminaison public.

    SELECT peer FROM system.peers;

    La sortie doit ressembler à cet exemple et renvoyer entre 2 et 6 nœuds avec des adresses IP privées, en fonction de la configuration et AWS de la région de votre VPC.

    peer --------------- 192.0.2.0.15 192.0.2.0.24 192.0.2.0.13 192.0.2.0.7 192.0.2.0.8 (5 rows)

Je ne parviens pas à me connecter en utilisant cassandra-stress

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de la cassandra-stress commande, mais un SSL context message d'erreur s'affiche.

Cela se produit si vous essayez de vous connecter à Amazon Keyspaces, mais que le TrustStore n'est pas correctement configuré. Amazon Keyspaces nécessite l'utilisation du protocole TLS (Transport Layer Security) pour sécuriser les connexions avec les clients.

Dans ce cas, le message d'erreur suivant s'affiche.

Error creating the initializing the SSL Context

Pour résoudre ce problème, suivez les instructions pour configurer un TrustStore comme indiqué dans cette rubriqueAvant de commencer.

Une fois le TrustStore configuré, vous devriez pouvoir vous connecter à l'aide de la commande suivante.

./cassandra-stress user profile=./profile.yaml n=100 "ops(insert=1,select=1)" cl=LOCAL_QUORUM -node "cassandra.eu-north-1.amazonaws.com" -port native=9142 -transport ssl-alg="PKIX" truststore="./cassandra_truststore.jks" truststore-password="trustStore_pw" -mode native cql3 user="user_name" password="password"

Je ne parviens pas à me connecter à l'aide des identités IAM

Vous essayez de vous connecter à une table Amazon Keyspaces en utilisant une identité IAM, mais vous recevez un message d'erreur. Unauthorized

Cela se produit si vous essayez de vous connecter à une table Amazon Keyspaces en utilisant une identité IAM (par exemple, un utilisateur IAM) sans mettre en œuvre la politique et sans donner au préalable à l'utilisateur les autorisations requises.

Dans ce cas, le message d'erreur suivant s'affiche.

Connection error: ('Unable to connect to any servers', {'3.234.248.202': AuthenticationFailed('Failed to authenticate to 3.234.248.202: Error from server: code=2100 [Unauthorized] message="User arn:aws:iam::1234567890123:user/testuser has no permissions."',)})

Pour résoudre ce problème, vérifiez les autorisations de l'utilisateur IAM. Pour se connecter à un pilote standard, l'utilisateur doit au moins avoir SELECT accès aux tables système, car la plupart des pilotes lisent les espaces-clés/tables du système lorsqu'ils établissent la connexion.

Par exemple, les politiques IAM qui accordent l'accès au système Amazon Keyspaces et aux tables utilisateur, voir. Accès aux tables Amazon Keyspaces

Pour consulter la section de résolution des problèmes spécifique à IAM, consultezRésolution des problèmes d'identité et d'accès à Amazon Keyspaces.

J'essaie d'importer des données avec cqlsh et la connexion à ma table Amazon Keyspaces est perdue

Vous essayez de télécharger des données sur Amazon Keyspaces avec cqlsh, mais vous recevez des erreurs de connexion.

La connexion à Amazon Keyspaces échoue lorsque le client cqlsh a reçu trois erreurs consécutives de tout type de la part du serveur. Le client cqlsh échoue avec le message suivant.

Failed to import 1 rows: NoHostAvailable - , will retry later, attempt 3 of 100

Pour résoudre cette erreur, vous devez vous assurer que les données à importer correspondent au schéma de table dans Amazon Keyspaces. Vérifiez le fichier d'importation pour détecter les erreurs d'analyse. Vous pouvez essayer d'utiliser une seule ligne de données en utilisant une instruction INSERT pour isoler l'erreur.

Le client tente automatiquement de rétablir la connexion.