Utilizzo cqlsh per connettersi ad Amazon Keyspaces - Amazon Keyspaces (per Apache Cassandra)

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

Per connetterti ad Amazon Keyspaces utilizzandocqlsh, 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-expansionIntegra il plug-in di autenticazione SigV4 e consente di connettersi utilizzando chiavi di accesso anziché nome utente e password. IAM 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-expansionNon supporta Amazon KeyspacesDefaultPartitioner. Per ulteriori informazioni, consulta Utilizzo dei partizionatori in Amazon Keyspaces.

Per informazioni generali sucqlsh, vedi cqlsh: the CQL shell.

Utilizzo di cqlsh-expansion per connettersi ad Amazon Keyspaces

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 installarecqlsh-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 inPATH, è 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
  2. Per configurarecqlsh-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à.

    2. Copia un file di cqlshrc configurazione preconfigurato nella .cassandra directory.

    3. Copia il certificato digitale Starfield 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 esaminare prima lo script, puoi accedervi dal repository Github all'indirizzo. 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-expansionutilizzo pip uninstall e devono essere eliminati manualmente.

Connessione ad Amazon Keyspaces tramite cqlsh-expansion
  1. Configura il tuo Regione AWS e aggiungila come variabile di ambiente utente.

    Per aggiungere la regione predefinita come variabile di ambiente su un sistema basato su Unix, è possibile eseguire il comando seguente. Per questo esempio, utilizziamo US East (Virginia settentrionale).

    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.

  2. 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 Per questo esempio, utilizziamo l'endpoint. cassandra.us-east-1.amazonaws.com

  3. Configura il metodo di autenticazione.

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

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

    1. Crea un IAM utente oppure segui le best practice e crea un IAM ruolo che IAM gli utenti possano assumere. Per ulteriori informazioni su come creare le chiavi di IAM accesso, consultaCreazione e configurazione AWS credenziali per Amazon Keyspaces.

    2. Crea una IAM policy che conceda al ruolo (o all'IAMutente) almeno l'accesso in sola lettura ad Amazon Keyspaces. Per ulteriori informazioni sulle autorizzazioni richieste all'IAMutente o al ruolo per connettersi ad Amazon Keyspaces, consulta. Accesso alle tabelle Amazon Keyspaces

    3. Aggiungi le chiavi di accesso dell'IAMutente 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.

      Nota

      Se ti connetti da un'EC2istanza Amazon, 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 EC2 in uscita, consulta Aggiungere regole a un gruppo di sicurezza nella Amazon EC2 User Guide.

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

    Per connetterti ad Amazon Keyspaces concqlsh-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 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 È inoltre necessario concedere a tale utente le autorizzazioni per accedere ad Amazon Keyspaces, per ulteriori informazioni, consulta. Accesso alle tabelle Amazon Keyspaces

      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
Rimozione
  • 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

Amazon Keyspaces accetta solo connessioni sicure utilizzando Transport Layer Security ()TLS. Puoi utilizzare l'cqlsh-expansionutilità che scarica automaticamente il certificato e installa un file di configurazione preconfiguratocqlshrc. Per ulteriori informazioni, consulta questa Utilizzo di cqlsh-expansion per connettersi ad Amazon Keyspaces pagina.

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

  1. Scaricate il certificato digitale Starfield utilizzando il seguente comando e salvatelo sf-class2-root.crt localmente o nella vostra home directory.

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

    Puoi anche utilizzare il certificato digitale Amazon per connetterti ad Amazon Keyspaces e puoi continuare a farlo se il tuo client si connette ad Amazon Keyspaces con successo. Il certificato Starfield offre un'ulteriore compatibilità con le versioni precedenti per i client che utilizzano autorità di certificazione precedenti.

  2. Apri il file cqlshrc di 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/sf-class2-root.crt