

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
<a name="programmatic.cqlsh"></a>

Pour vous connecter à Amazon Keyspaces à l'aide de`cqlsh`, 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.

**Note**  
`Murmur3Partitioner`est le partitionneur recommandé pour Amazon Keyspaces et le. `cqlsh-expansion` Le `cqlsh-expansion` ne prend pas en charge les Amazon Keyspaces`DefaultPartitioner`. Pour de plus amples informations, veuillez consulter [Utilisation des partitionneurs dans Amazon Keyspaces](working-with-partitioners.md).

Pour des informations générales sur`cqlsh`, voir [`cqlsh`: le shell CQL.](https://cassandra.apache.org/doc/latest/cassandra/managing/tools/cqlsh.html)

**Topics**
+ [Utilisation du `cqlsh-expansion` pour se connecter à Amazon Keyspaces](#using_cqlsh)
+ [Comment configurer manuellement les `cqlsh` connexions pour le protocole TLS](#encrypt_using_tls)

## Utilisation du `cqlsh-expansion` pour se connecter à Amazon Keyspaces
<a name="using_cqlsh"></a>

**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 le`cqlsh-expansion`, pour connaître votre version de Python, utilisez`Python --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 le`PATH`, 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
   ```

1. Pour configurer le`cqlsh-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à.

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

   1. Copiez le fichier de certificat combiné 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 plus d'informations sur les certificats, consultez[Comment configurer manuellement les `cqlsh` connexions pour le protocole TLS](#encrypt_using_tls).

   Pour consulter d'abord le script, vous pouvez y accéder dans le dépôt Github à l'adresse. [https://github.com/aws-samples/amazon-keyspaces-toolkit/blob/master/cqlsh-expansion/cqlsh_expansion/post_install.py](https://github.com/aws-samples/amazon-keyspaces-toolkit/blob/master/cqlsh-expansion/cqlsh_expansion/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`us-east-1`.

   ```
   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](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set).

1. 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](programmatic.endpoints.md) Pour cet exemple, nous utilisons le point de terminaison`cassandra.us-east-1.amazonaws.com`.

1. 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, consultez[Création et configuration des AWS informations d'identification pour Amazon Keyspaces](access.credentials.md).

   1. 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](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table)

   1. 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set).
**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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#adding-security-group-rule).

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

   Pour vous connecter à Amazon Keyspaces avec le`cqlsh-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](troubleshooting.connecting.md#troubleshooting.connection.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. [Créez des informations d'identification spécifiques au service pour un accès programmatique à Amazon Keyspaces](programmatic.credentials.ssc.md) Vous devez également autoriser cet utilisateur à accéder à Amazon Keyspaces. Pour plus d'informations, consultez. [Accès aux tables Amazon Keyspaces](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table) 

     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
<a name="encrypt_using_tls"></a>

Amazon Keyspaces accepte uniquement les connexions sécurisées utilisant le protocole TLS (Transport Layer Security). Vous pouvez utiliser l'`cqlsh-expansion`utilitaire qui télécharge automatiquement les certificats 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](#using_cqlsh) cette page. 

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

1.  Téléchargez les certificats numériques suivants et enregistrez les fichiers localement ou dans votre répertoire personnel.

   1. AmazonRootCA1

   1. AmazonRootCA2

   1. AmazonRootCA3

   1. AmazonRootCA4

   1. Starfield Class 2 Root (en option, pour une rétrocompatibilité)

   Pour télécharger les certificats, vous pouvez utiliser les commandes suivantes.

   ```
   curl -O https://www.amazontrust.com/repository/AmazonRootCA1.pem
   curl -O https://www.amazontrust.com/repository/AmazonRootCA2.pem
   curl -O https://www.amazontrust.com/repository/AmazonRootCA3.pem
   curl -O https://www.amazontrust.com/repository/AmazonRootCA4.pem
   curl -O https://certs.secureserver.net/repository/sf-class2-root.crt
   ```
**Note**  
Amazon Keyspaces utilisait auparavant des certificats TLS ancrés à l'autorité de certification Starfield Class 2. AWS migre le tout Régions AWS vers des certificats émis dans le cadre d'Amazon Trust Services (Amazon Root CAs 1—4). Au cours de cette transition, configurez les clients pour qu'ils fassent confiance à la fois à Amazon Root CAs 1-4 et à la racine Starfield afin de garantir la compatibilité entre toutes les régions.

1. Combinez tous les certificats téléchargés dans un seul `pem` fichier portant le nom *keyspaces-bundle.pem* indiqué dans nos exemples. Pour ce faire, exécutez la commande suivante : Notez le chemin du fichier, vous en aurez besoin plus tard.

   ```
   cat AmazonRootCA1.pem \
    AmazonRootCA2.pem \
    AmazonRootCA3.pem \
    AmazonRootCA4.pem \
    sf-class2-root.crt \
    > keyspaces-bundle.pem
   ```

1. 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/keyspaces-bundle.pem
   ```