Utilisation cqlsh pour se connecter à 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.

Utilisation cqlsh pour se connecter à Amazon Keyspaces

Pour vous connecter à Amazon Keyspaces à l'aide decqlsh, vous pouvez utiliser le. cqlsh-expansion Il s'agit d'une boîte à outils qui contient des outils Apache Cassandra courants cqlsh et des aides préconfigurés pour Amazon Keyspaces tout en maintenant une compatibilité totale avec Apache Cassandra. Il cqlsh-expansion intègre le plugin d'authentification SigV4 et vous permet de vous connecter à l'aide de clés d'accès IAM au lieu du nom d'utilisateur et du mot de passe. Vous devez uniquement installer les cqlsh scripts pour établir une connexion, et non la distribution complète d'Apache Cassandra, car Amazon Keyspaces fonctionne sans serveur. Ce package d'installation léger inclut les cqlsh scripts classiques cqlsh-expansion et les scripts que vous pouvez installer sur n'importe quelle plateforme supportant Python.

Pour des informations générales surcqlsh, voir cqlsh: le shell CQL.

Utilisation du cqlsh-expansion pour se connecter à Amazon Keyspaces

Installation et configuration du cqlsh-expansion
  1. Pour installer le package cqlsh-expansion Python, vous pouvez exécuter une pip commande. Cela installe les cqlsh-expansion scripts sur votre machine à l'aide d'une installation pip avec un fichier contenant une liste de dépendances. Il --user flag indique pip d'utiliser le répertoire d'installation utilisateur Python pour votre plateforme. Sur un système basé sur Unix, ce devrait être le ~/.local/ répertoire.

    Vous avez besoin de Python 3 pour installer lecqlsh-expansion, pour connaître votre version de Python, utilisezPython --version. Pour l'installer, vous pouvez exécuter la commande suivante.

    python3 -m pip install --user cqlsh-expansion

    La sortie doit ressembler à ceci.

    Collecting cqlsh-expansion Downloading cqlsh_expansion-0.9.6-py3-none-any.whl (153 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 153.7/153.7 KB 3.3 MB/s eta 0:00:00 Collecting cassandra-driver Downloading cassandra_driver-3.28.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.1/19.1 MB 44.5 MB/s eta 0:00:00 Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from cqlsh-expansion) (1.16.0) Collecting boto3 Downloading boto3-1.29.2-py3-none-any.whl (135 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.8/135.8 KB 17.2 MB/s eta 0:00:00 Collecting cassandra-sigv4>=4.0.2 Downloading cassandra_sigv4-4.0.2-py2.py3-none-any.whl (9.8 kB) Collecting botocore<1.33.0,>=1.32.2 Downloading botocore-1.32.2-py3-none-any.whl (11.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.4/11.4 MB 60.9 MB/s eta 0:00:00 Collecting s3transfer<0.8.0,>=0.7.0 Downloading s3transfer-0.7.0-py3-none-any.whl (79 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.8/79.8 KB 13.1 MB/s eta 0:00:00 Collecting jmespath<2.0.0,>=0.7.1 Downloading jmespath-1.0.1-py3-none-any.whl (20 kB) Collecting geomet<0.3,>=0.1 Downloading geomet-0.2.1.post1-py3-none-any.whl (18 kB) Collecting python-dateutil<3.0.0,>=2.1 Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 KB 33.1 MB/s eta 0:00:00 Requirement already satisfied: urllib3<2.1,>=1.25.4 in /usr/lib/python3/dist-packages (from botocore<1.33.0,>=1.32.2->boto3->cqlsh-expansion) (1.26.5) Requirement already satisfied: click in /usr/lib/python3/dist-packages (from geomet<0.3,>=0.1->cassandra-driver->cqlsh-expansion) (8.0.3) Installing collected packages: python-dateutil, jmespath, geomet, cassandra-driver, botocore, s3transfer, boto3, cassandra-sigv4, cqlsh-expansion WARNING: The script geomet is installed in '/home/ubuntu/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The scripts cqlsh, cqlsh-expansion and cqlsh-expansion.init are installed in '/home/ubuntu/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed boto3-1.29.2 botocore-1.32.2 cassandra-driver-3.28.0 cassandra-sigv4-4.0.2 cqlsh-expansion-0.9.6 geomet-0.2.1.post1 jmespath-1.0.1 python-dateutil-2.8.2 s3transfer-0.7.0

    Si le répertoire d'installation ne se trouve pas dans lePATH, vous devez l'ajouter en suivant les instructions de votre système d'exploitation. Vous trouverez ci-dessous un exemple pour Ubuntu Linux.

    export PATH="$PATH:/home/ubuntu/.local/bin"

    Pour confirmer que le package est installé, vous pouvez exécuter la commande suivante.

    cqlsh-expansion --version

    La sortie doit ressembler à ceci.

    cqlsh 6.1.0
  2. Pour configurer lecqlsh-expansion, vous pouvez exécuter un script de post-installation pour effectuer automatiquement les étapes suivantes :

    1. Créez le .cassandra répertoire dans le répertoire personnel de l'utilisateur s'il n'existe pas déjà.

    2. Copiez un fichier de cqlshrc configuration préconfiguré dans le .cassandra répertoire.

    3. Copiez le certificat numérique Starfield dans le .cassandra répertoire. Amazon Keyspaces utilise ce certificat pour configurer la connexion sécurisée avec le protocole TLS (Transport Layer Security). Le chiffrement en transit fournit une couche supplémentaire de protection des données en chiffrant vos données lorsqu'elles sont acheminées vers et depuis Amazon Keyspaces.

    Pour consulter d'abord le script, vous pouvez y accéder dans le dépôt Github à l'adresse. post_install.py

    Pour utiliser le script, vous pouvez exécuter la commande suivante.

    cqlsh-expansion.init
    Note

    Le répertoire et le fichier créés par le script de post-installation ne sont pas supprimés lorsque vous cqlsh-expansion désinstallez pip uninstall l'utilisateur et doivent être supprimés manuellement.

Connexion à Amazon Keyspaces à l'aide du cqlsh-expansion
  1. Configurez votre variable d'environnement Région AWS et ajoutez-la en tant que variable d'environnement utilisateur.

    Pour ajouter votre région par défaut en tant que variable d'environnement sur un système basé sur Unix, vous pouvez exécuter la commande suivante. Pour cet exemple, nous utilisons l'est des États-Unis (Virginie du Nord).

    export AWS_DEFAULT_REGION=us-east-1

    Pour plus d'informations sur la définition des variables d'environnement, y compris pour d'autres plateformes, consultez Comment définir des variables d'environnement.

  2. Trouvez le point de terminaison de votre service.

    Choisissez le point de terminaison de service approprié pour votre région. Pour consulter les points de terminaison disponibles pour Amazon Keyspaces, consultez. Points de terminaison de service pour Amazon Keyspaces Pour cet exemple, nous utilisons le point de terminaisoncassandra.us-east-1.amazonaws.com.

  3. Configurez la méthode d'authentification.

    La connexion à l'aide de clés d'accès IAM (utilisateurs IAM, rôles et identités fédérées) est la méthode recommandée pour renforcer la sécurité.

    Avant de pouvoir vous connecter à l'aide des clés d'accès IAM, vous devez suivre les étapes suivantes :

    1. Créez un utilisateur IAM ou suivez les meilleures pratiques et créez un rôle IAM que les utilisateurs IAM peuvent assumer. Pour plus d'informations sur la création de clés d'accès IAM, consultezComment créer et configurer des AWS informations d'identification pour Amazon Keyspaces.

    2. Créez une politique IAM qui accorde au rôle (ou à l'utilisateur IAM) au moins un accès en lecture seule à Amazon Keyspaces. Pour plus d'informations sur les autorisations requises pour que l'utilisateur ou le rôle IAM se connecte à Amazon Keyspaces, consultez. Accès aux tables Amazon Keyspaces

    3. Ajoutez les clés d'accès de l'utilisateur IAM aux variables d'environnement de l'utilisateur, comme indiqué dans l'exemple suivant.

      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

      Pour plus d'informations sur la définition des variables d'environnement, y compris pour d'autres plateformes, consultez Comment définir des variables d'environnement.

      Note

      Si vous vous connectez depuis une instance Amazon EC2, vous devez également configurer une règle sortante dans le groupe de sécurité qui autorise le trafic depuis l'instance vers Amazon Keyspaces. 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.

  4. Connectez-vous à Amazon Keyspaces à l'aide de l'authentification cqlsh-expansion et SigV4.

    Pour vous connecter à Amazon Keyspaces avec lecqlsh-expansion, vous pouvez utiliser la commande suivante. Assurez-vous de remplacer le point de terminaison du service par le point de terminaison adapté à votre région.

    cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl

    Si la connexion est établie, vous devriez obtenir un résultat similaire à celui de l'exemple suivant.

    Connected to Amazon Keyspaces at cassandra.us-east-1.amazonaws.com:9142 [cqlsh 6.1.0 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh current consistency level is ONE. cqlsh>

    Si vous rencontrez une erreur de connexion, consultez Je ne parviens pas à me connecter à Amazon Keyspaces avec cqlsh les informations de dépannage.

    • Connectez-vous à Amazon Keyspaces avec des informations d'identification spécifiques au service.

      Pour vous connecter à la combinaison traditionnelle de nom d'utilisateur et de mot de passe utilisée par Cassandra pour l'authentification, vous devez d'abord créer des informations d'identification spécifiques au service pour Amazon Keyspaces, comme décrit dans. Générer des informations d'identification spécifiques au service Vous devez également autoriser cet utilisateur à accéder à Amazon Keyspaces. Pour plus d'informations, consultez. Accès aux tables Amazon Keyspaces

      Après avoir créé des informations d'identification et des autorisations spécifiques au service pour l'utilisateur, vous devez mettre à jour le cqlshrc fichier, qui se trouve généralement dans le chemin du répertoire utilisateur. ~/.cassandra/ Dans le cqlshrc fichier, accédez à la [authentication] section Cassandra et commentez le module et la classe SigV4 [auth_provider] en utilisant le caractère « ; » comme indiqué dans l'exemple suivant.

      [auth_provider] ; module = cassandra_sigv4.auth ; classname = SigV4AuthProvider

      Après avoir mis à jour le cqlshrc fichier, vous pouvez vous connecter à Amazon Keyspaces avec des informations d'identification spécifiques au service à l'aide de la commande suivante.

      cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 -u myUserName -p myPassword --ssl
Nettoyage
  • Pour supprimer le cqlsh-expansion package, vous pouvez utiliser la pip uninstall commande.

    pip3 uninstall cqlsh-expansion

    La pip3 uninstall commande ne supprime pas le répertoire et les fichiers associés créés par le script de post-installation. Pour supprimer le dossier et les fichiers créés par le script de post-installation, vous pouvez supprimer le .cassandra répertoire.

Comment configurer manuellement les cqlsh connexions pour le protocole TLS

Amazon Keyspaces accepte uniquement les connexions sécurisées utilisant le protocole TLS (Transport Layer Security). Vous pouvez utiliser l'cqlsh-expansionutilitaire qui télécharge automatiquement le certificat pour vous et installe un fichier de cqlshrc configuration préconfiguré. Pour plus d'informations, consultez Utilisation du cqlsh-expansion pour se connecter à Amazon Keyspaces cette page.

Si vous souhaitez télécharger le certificat et configurer la connexion manuellement, procédez comme suit.

  1. Téléchargez le certificat numérique Starfield à l'aide de la commande suivante et enregistrez-le sf-class2-root.crt localement ou dans votre répertoire personnel.

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

    Vous pouvez également utiliser le certificat numérique Amazon pour vous connecter à Amazon Keyspaces et continuer à le faire si votre client se connecte correctement à Amazon Keyspaces. Le certificat Starfield fournit une rétrocompatibilité supplémentaire aux clients utilisant des autorités de certification plus anciennes.

  2. Ouvrez le fichier cqlshrc de configuration dans le répertoire de base de Cassandra, par exemple, ${HOME}/.cassandra/cqlshrc et ajoutez les lignes suivantes.

    [connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile = path_to_file/sf-class2-root.crt