

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo `cqlsh` per connettersi ad Amazon Keyspaces
<a name="programmatic.cqlsh"></a>

Per connetterti ad Amazon Keyspaces utilizzando`cqlsh`, puoi utilizzare il. `cqlsh-expansion` Si tratta di un toolkit che contiene strumenti comuni come Apache Cassandra `cqlsh` e helper preconfigurati per Amazon Keyspaces, pur mantenendo la piena compatibilità con Apache Cassandra. `cqlsh-expansion`Integra il plug-in di autenticazione SigV4 e consente di connettersi utilizzando le chiavi di accesso IAM anziché il nome utente e la password. Devi solo installare `cqlsh` gli script per stabilire una connessione e non la distribuzione completa di Apache Cassandra, perché Amazon Keyspaces è serverless. Questo pacchetto di installazione leggero include `cqlsh-expansion` `cqlsh` gli script classici che puoi installare su qualsiasi piattaforma che supporti Python.

**Nota**  
`Murmur3Partitioner`è il partizionatore consigliato per Amazon Keyspaces e. `cqlsh-expansion` `cqlsh-expansion`Non supporta Amazon Keyspaces`DefaultPartitioner`. Per ulteriori informazioni, consulta [Utilizzo dei partizionatori in Amazon Keyspaces](working-with-partitioners.md).

Per informazioni generali su`cqlsh`, vedi [`cqlsh`: la shell CQL.](https://cassandra.apache.org/doc/latest/cassandra/managing/tools/cqlsh.html)

**Topics**
+ [Utilizzo di `cqlsh-expansion` per connettersi ad Amazon Keyspaces](#using_cqlsh)
+ [Come configurare manualmente le `cqlsh` connessioni per TLS](#encrypt_using_tls)

## Utilizzo di `cqlsh-expansion` per connettersi ad Amazon Keyspaces
<a name="using_cqlsh"></a>

**Installazione e configurazione di `cqlsh-expansion`**

1. Per installare il pacchetto `cqlsh-expansion` Python, puoi eseguire un `pip` comando. Questo installa `cqlsh-expansion` gli script sulla tua macchina usando un'*installazione pip* insieme a un file contenente un elenco di dipendenze. Le `--user flag` istruzioni `pip` per usare la directory di installazione degli utenti Python per la tua piattaforma. Su un sistema basato su Unix, quella dovrebbe essere la `~/.local/` directory.

   Hai bisogno di Python 3 per installare`cqlsh-expansion`, per scoprire la tua versione di Python, usa. `Python --version` Per installarlo, puoi eseguire il seguente comando.

   ```
   python3 -m pip install --user cqlsh-expansion
   ```

   L'output dovrebbe essere simile a questo.

   ```
   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
   ```

   Se la directory di installazione non si trova in`PATH`, è necessario aggiungerla seguendo le istruzioni del sistema operativo. Di seguito è riportato un esempio per Ubuntu Linux.

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

   Per confermare che il pacchetto è installato, puoi eseguire il seguente comando.

   ```
   cqlsh-expansion --version
   ```

   L'output dovrebbe essere simile a questo.

   ```
   cqlsh 6.1.0
   ```

1. Per configurare`cqlsh-expansion`, puoi eseguire uno script di post-installazione per completare automaticamente i seguenti passaggi:

   1. Crea la `.cassandra` directory nella home directory dell'utente se non esiste già.

   1. Copia un file di `cqlshrc` configurazione preconfigurato nella `.cassandra` directory.

   1. Copia il file di certificato combinato nella `.cassandra` directory. Amazon Keyspaces utilizza questo certificato per configurare la connessione sicura con Transport Layer Security (TLS). La crittografia in transito fornisce un ulteriore livello di protezione dei dati crittografando i dati mentre viaggiano da e verso Amazon Keyspaces. Per ulteriori informazioni sui certificati, consulta. [Come configurare manualmente le `cqlsh` connessioni per TLS](#encrypt_using_tls)

   Per esaminare prima lo script, puoi accedervi dal repository Github all'indirizzo. [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)

   Per utilizzare lo script, puoi eseguire il comando seguente. 

   ```
   cqlsh-expansion.init
   ```
**Nota**  
La directory e il file creati dallo script di post-installazione non vengono rimossi quando si disinstalla l'`cqlsh-expansion`utilizzo `pip uninstall` e devono essere eliminati manualmente.

**Connessione ad Amazon Keyspaces utilizzando il `cqlsh-expansion`**

1. Configura la tua Regione AWS e aggiungila come variabile di ambiente utente.

   Per aggiungere la tua regione predefinita come variabile di ambiente su un sistema basato su Unix, puoi eseguire il seguente comando. Per questo esempio, utilizziamo`us-east-1`.

   ```
   export AWS_DEFAULT_REGION=us-east-1
   ```

   Per ulteriori informazioni su come impostare le variabili di ambiente, anche per altre piattaforme, vedi [Come impostare le variabili di ambiente](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set).

1. Trova il tuo endpoint di servizio.

   Scegli l'endpoint di servizio appropriato per la tua regione. Per esaminare gli endpoint disponibili per Amazon Keyspaces, consulta. [Endpoint di servizio per Amazon Keyspaces](programmatic.endpoints.md) Per questo esempio, utilizziamo l'endpoint. `cassandra.us-east-1.amazonaws.com`

1. Configura il metodo di autenticazione.

   La connessione con le chiavi di accesso IAM (utenti, ruoli e identità federate IAM) è il metodo consigliato per una maggiore sicurezza. 

   Prima di poterti connettere con le chiavi di accesso IAM, devi completare i seguenti passaggi:

   1. Crea un utente IAM o segui le best practice e crea un ruolo IAM che gli utenti IAM possono assumere. Per ulteriori informazioni su come creare chiavi di accesso IAM, consulta[Crea e configura AWS credenziali per Amazon Keyspaces](access.credentials.md).

   1. Crea una policy IAM che conceda al ruolo (o all'utente IAM) almeno l'accesso in sola lettura ad Amazon Keyspaces. Per ulteriori informazioni sulle autorizzazioni richieste all'utente o al ruolo IAM per connettersi ad Amazon Keyspaces, consulta. [Accesso alle tabelle Amazon Keyspaces](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table)

   1. Aggiungi le chiavi di accesso dell'utente IAM alle variabili di ambiente dell'utente come mostrato nell'esempio seguente.

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

      Per ulteriori informazioni su come impostare le variabili di ambiente, anche per altre piattaforme, vedi [Come impostare le variabili di ambiente](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html#envvars-set).
**Nota**  
Se ti connetti da un'istanza Amazon EC2, devi anche configurare una regola in uscita nel gruppo di sicurezza che consenta il traffico dall'istanza ad Amazon Keyspaces. Per ulteriori informazioni su come visualizzare e modificare le regole in uscita EC2, consulta [Add rules to a security group nella Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#adding-security-group-rule) User Guide.

1. Connect ad Amazon Keyspaces utilizzando l'autenticazione `cqlsh-expansion` e SigV4.

   Per connetterti ad Amazon Keyspaces con`cqlsh-expansion`, puoi usare il seguente comando. Assicurati di sostituire l'endpoint di servizio con l'endpoint corretto per la tua regione.

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

   Se la connessione è riuscita, dovresti vedere un output simile a quello dell'esempio seguente.

   ```
   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>
   ```

   Se si verifica un errore di connessione, consulta la sezione [Non riesco a connettermi ad Amazon Keyspaces con cqlsh](troubleshooting.connecting.md#troubleshooting.connection.cqlsh) per informazioni sulla risoluzione dei problemi.
   + Connect ad Amazon Keyspaces con credenziali specifiche del servizio.

     Per connetterti con la combinazione tradizionale di nome utente e password utilizzata da Cassandra per l'autenticazione, devi prima creare credenziali specifiche del servizio per Amazon Keyspaces come descritto in. [Crea credenziali specifiche del servizio per l'accesso programmatico ad Amazon Keyspaces](programmatic.credentials.ssc.md) È inoltre necessario concedere all'utente le autorizzazioni per accedere ad Amazon Keyspaces, per ulteriori informazioni, consulta. [Accesso alle tabelle Amazon Keyspaces](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-one-table) 

     Dopo aver creato le credenziali e le autorizzazioni specifiche del servizio per l'utente, devi aggiornare il `cqlshrc` file, che in genere si trova nel percorso della directory utente. `~/.cassandra/` Nel `cqlshrc` file, vai alla `[authentication]` sezione Cassandra e commenta il modulo SigV4 e la classe sotto `[auth_provider]` usando il carattere «;», come mostrato nell'esempio seguente. 

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

     Dopo aver aggiornato il `cqlshrc` file, puoi connetterti ad Amazon Keyspaces con credenziali specifiche del servizio utilizzando il seguente comando.

     ```
     cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 -u myUserName -p myPassword --ssl
     ```

**Pulizia**
+ Per rimuovere il `cqlsh-expansion` pacchetto puoi usare il comando. `pip uninstall`

  ```
  pip3 uninstall cqlsh-expansion
  ```

  Il `pip3 uninstall` comando non rimuove la directory e i file correlati creati dallo script di post-installazione. Per rimuovere la cartella e i file creati dallo script di post-installazione, è possibile eliminare la `.cassandra` directory.

## Come configurare manualmente le `cqlsh` connessioni per TLS
<a name="encrypt_using_tls"></a>

Amazon Keyspaces accetta solo connessioni sicure tramite Transport Layer Security (TLS). Puoi utilizzare l'`cqlsh-expansion`utilità che scarica automaticamente i certificati e installa un file di configurazione `cqlshrc` preconfigurato. Per ulteriori informazioni, consulta questa [Utilizzo di `cqlsh-expansion` per connettersi ad Amazon Keyspaces](#using_cqlsh) pagina. 

Se desideri scaricare i certificati e configurare la connessione manualmente, puoi farlo utilizzando i seguenti passaggi. 

1.  Scaricate i seguenti certificati digitali e salvate i file localmente o nella vostra home directory.

   1. AmazonRootCA1

   1. AmazonRootCA2

   1. AmazonRootCA3

   1. AmazonRootCA4

   1. Starfield Class 2 Root (opzionale, per compatibilità con le versioni precedenti)

   Per scaricare i certificati, puoi usare i seguenti comandi.

   ```
   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
   ```
**Nota**  
Amazon Keyspaces utilizzava in precedenza certificati TLS ancorati alla CA Starfield Class 2. AWS sta migrando tutto Regioni AWS verso certificati emessi nell'ambito di Amazon Trust Services (Amazon Root CAs 1—4). Durante questa transizione, configura i client in modo che si fidino sia di Amazon Root CAs 1-4 che di Starfield root per garantire la compatibilità in tutte le regioni.

1. Combina tutti i certificati scaricati in un unico `pem` file con il nome indicato *keyspaces-bundle.pem* nei nostri esempi. Per aggiungerlo, eseguire il comando seguente: Prendi nota del percorso del file, ne avrai bisogno in seguito.

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

1. Apri il file di `cqlshrc` configurazione nella home directory di Cassandra, ad esempio, `${HOME}/.cassandra/cqlshrc` e aggiungi le seguenti righe.

   ```
   [connection]
   port = 9142
   factory = cqlshlib.ssl.ssl_transport_factory
   
   [ssl]
   validate = true
   certfile =  path_to_file/keyspaces-bundle.pem
   ```