Résolution des erreurs 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 erreurs 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 ne parviens 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 unVPC, des autorisations supplémentaires sont requises. Pour configurer correctement une connexion à l'aide de VPC points de terminaison, suivez les étapes décrites dans leTutoriel : Connexion à Amazon Keyspaces à l'aide d'un point de terminaison d'interface VPC.

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 VPC points de terminaison pour vous connecter, vérifiez que les informations du VPC point de terminaison 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 cette option SSL soit activée pour les connexions afin de garantir une sécurité renforcée. Le SSL paramètre 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 TLS certificatSSL/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 TLS certificatSSL/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 un message d'erreur s'affiche. unknown SSL

Cela peut être le cas si le fichier de TLS certificatSSL/sf-class2-root.crtest 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 TLS certificatSSL/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é EC2 Amazon, 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'EC2instance Amazon et noncqlsh, vous pouvez essayer de vous connecter à votre espace de touches en utilisant AWS CLI, par exemple, la commande suivante.

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

Si cette commande expire également, l'EC2instance Amazon 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'EC2instance Amazon.

Pour résoudre ce problème, vérifiez que votre EC2 instance Amazon 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'EC2instance 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, CQLSHchoisissez 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 l'affichage et la modification des règles de EC2 trafic sortant, consultez la section Ajouter des règles à un groupe de sécurité dans le guide de l'EC2utilisateur Amazon.

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 les autorisations Amazon Keyspaces ne figurent pas dans la politique IAM utilisateur, 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'IAMutilisateur testuser-at-12345678910 est autorisé à accéder à Amazon Keyspaces. Pour des exemples de IAM politiques 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 à IAM l'accès, 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 USERNAME and PASSWORD dans votre code, correspondez au nom d'utilisateur et au mot de passe que vous avez obtenus lorsque vous avez généré des 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 IAM utilisateur ou à votre rôle 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é AWS d'accès associée à un IAM utilisateur ou à un rôle.

  • 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, consultezCréation et configuration 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, consultezCréation et configuration 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'IAMutilisateur ou au rôle 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, consultezCréation et configuration AWS informations d'identification pour Amazon Keyspaces.

La connexion de mon VPC terminal ne fonctionne pas correctement

Vous essayez de vous connecter à Amazon Keyspaces à l'aide de VPC points de terminaison, 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 VPC point de terminaison 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 VPC points de terminaison d'interface pour Amazon Tutoriel : Connexion à Amazon Keyspaces à l'aide d'un point de terminaison d'interface VPC Keyspaces, consultez.

  1. Vérifiez que l'IAMentité 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'IAMentité utilisée pour se connecter à Amazon Keyspaces dispose des autorisations de lecture requises pour accéder aux informations du VPC point de terminaison sur votre EC2 instance Amazon, 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'EC2instance Amazon afin de lire les informations sur les points de terminaison d'interface VPC disponibles.

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

  3. Vérifiez que la SSL configuration 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 VPC point de terminaison a été correctement configuré, vous pouvez exécuter l'instruction suivante depuis votreVPC.

    Note

    Vous ne pouvez pas utiliser votre environnement de développement local ou l'CQLéditeur 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 votre VPC configuration et de votre AWS région.

    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 la trustStore configuration n'est pas correcte. Amazon Keyspaces nécessite l'utilisation de Transport Layer Security (TLS) 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 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 en utilisant IAM des identités

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

Cela se produit si vous essayez de vous connecter à une table Amazon Keyspaces en utilisant une IAM identité (par exemple, un IAM utilisateur) 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'IAMutilisateur. 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.

Pour des exemples IAM de politiques qui accordent l'accès au système Amazon Keyspaces et aux tables utilisateur, consultez. Accès aux tables Amazon Keyspaces

Pour consulter la section de résolution des problèmes spécifique àIAM, voirRé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 INSERT instruction pour isoler l'erreur.

Le client tente automatiquement de rétablir la connexion.