Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Para conectarse a Amazon Keyspaces con cqlsh
, puede utilizar la cqlsh-expansion
. Se trata de un conjunto de herramientas que contiene herramientas comunes de Apache Cassandra como cqlsh
y asistentes preconfigurados para Amazon Keyspaces que mantienen una compatibilidad total con Apache Cassandra. La cqlsh-expansion
integra el complemento de autenticación SigV4 y le permite conectarse utilizando claves de acceso de IAM en lugar de nombre de usuario y contraseña. Solo necesita instalar los scripts de cqlsh
para realizar una conexión y no la distribución completa de Apache Cassandra, dado que Amazon Keyspaces funciona sin servidor. Este paquete de instalación ligero incluye la cqlsh-expansion
y los scripts clásicos de cqlsh
que puede instalar en cualquier plataforma que admita Python.
nota
Murmur3Partitioner
es el particionador recomendado para Amazon Keyspaces y la cqlsh-expansion
. La cqlsh-expansion
no es compatible con el DefaultPartitioner
de Amazon Keyspaces. Para obtener más información, consulte Uso de particionadores en Amazon Keyspaces.
Para obtener información general sobre cqlsh
, consulte cqlsh
: el intérprete de comandos CQL
Temas
Uso de la cqlsh-expansion
para conectarse a Amazon Keyspaces
Instalación y configuración de la cqlsh-expansion
Para instalar el paquete
cqlsh-expansion
para Python, puede ejecutar un comandopip
. Este instala los scripts decqlsh-expansion
en su máquina utilizando un pip install junto con un archivo que contiene una lista de dependencias. La--user flag
le dice apip
que utilice el directorio de instalación del usuario de Python para su plataforma. En un sistema basado en Unix, ese debe ser el directorio~/.local/
.Necesita Python 3 para instalar la
cqlsh-expansion
; si quiere averiguar cuál es su versión de Python, utilicePython --version
. Para la instalación, puede ejecutar el siguiente comando.python3 -m pip install --user cqlsh-expansion
La salida debería ser similar a la siguiente.
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 el directorio de instalación no está en la
PATH
, debe agregarlo siguiendo las instrucciones de su sistema operativo. A continuación se muestra un ejemplo para Ubuntu Linux.export PATH="$PATH:/home/ubuntu/.local/bin"
Para confirmar que el paquete esté instalado, puede ejecutar el siguiente comando.
cqlsh-expansion --version
La salida debería tener este aspecto.
cqlsh 6.1.0
Para configurar la
cqlsh-expansion
, puede ejecutar un script post-instalación para completar automáticamente los siguientes pasos:Cree el directorio
.cassandra
en el directorio de inicio del usuario si aún no existe.Copie un archivo de configuración
cqlshrc
preconfigurado en el directorio.cassandra
.Copie el certificado digital Starfield en el directorio
.cassandra
. Amazon Keyspaces utiliza este certificado para configurar la conexión segura con Seguridad de la capa de transporte (TLS). El cifrado en tránsito proporciona una capa adicional de protección de datos al cifrar sus datos mientras viajan hacia y desde Amazon Keyspaces.
Para revisar antes el script, puede acceder al mismo en el repositorio de Github en
post_install.py
. Para utilizar el script, puede ejecutar el siguiente comando.
cqlsh-expansion.init
nota
El directorio y el archivo creados por el script post-instalación no se eliminan al desinstalar la
cqlsh-expansion
utilizandopip uninstall
por lo que se tienen que eliminar manualmente.
Conexión a Amazon Keyspaces mediante la cqlsh-expansion
Configure su Región de AWS y añádala como variable de entorno de usuario.
Para añadir su región predeterminada como variable de entorno en un sistema basado en Unix, puede ejecutar el siguiente comando. Para este ejemplo, utilizaremos Este de EE. UU. (Norte de Virginia).
export AWS_DEFAULT_REGION=us-east-1
Para obtener más información sobre cómo establecer variables de entorno, incluso para otras plataformas, consulte Establecimiento de variables de entorno.
Encuentre el punto de conexión de servicio.
Elija el punto de conexión de servicio apropiado para su región. Para revisar los puntos de conexión disponibles para Amazon Keyspaces, consulte Puntos de conexión de servicio para Amazon Keyspaces. En este ejemplo, utilizamos el punto de conexión
cassandra.us-east-1.amazonaws.com
.Configure el método de autenticación.
Para mejorar la seguridad, el método recomendado es conectarse con claves de acceso de IAM (usuarios, roles e identidades federadas de IAM).
Para poder conectarse con claves de acceso de IAM, debe completar los siguientes pasos:
Cree un usuario de IAM, u observe la práctica recomendada y cree un rol de IAM que los usuarios de IAM puedan asumir. Para obtener más información sobre cómo crear claves de acceso de IAM, consulte Creación y configuración de AWS credenciales para Amazon Keyspaces.
Cree una política de IAM que conceda al rol (o usuario de IAM) al menos acceso de solo lectura a Amazon Keyspaces. Para obtener más información sobre los permisos necesarios para que el usuario o rol de IAM se conecten a Amazon Keyspaces, consulte Acceso a las tablas de Amazon Keyspaces.
Añada las claves de acceso del usuario de IAM a las variables de entorno del usuario como se muestra en el siguiente ejemplo.
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Para obtener más información sobre cómo establecer variables de entorno, incluso para otras plataformas, consulte Establecimiento de variables de entorno.
nota
Si se conecta desde una instancia de Amazon EC2, también debe configurar una regla de salida en el grupo de seguridad que permita el tráfico desde la instancia hasta Amazon Keyspaces. Para obtener más información sobre cómo ver y editar las reglas de salida de EC2, consulte Adición de reglas a un grupo de seguridad en la Guía del usuario de Amazon EC2.
-
Conéctese a Amazon Keyspaces utilizando la
cqlsh-expansion
y la autenticación SigV4.Para conectarse a Amazon Keyspaces con la
cqlsh-expansion
, puede utilizar el siguiente comando. Asegúrese de sustituir el punto de conexión de servicio por el punto de conexión correcto para su región.cqlsh-expansion
cassandra.us-east-1.amazonaws.com
9142 --sslSi la conexión tiene éxito, debería ver una salida similar a la del siguiente ejemplo.
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 encuentra algún error, consulte No puedo conectarme a Amazon Keyspaces con cqlsh para ver información de solución de problemas.
Conéctese a Amazon Keyspaces con credenciales específicas del servicio.
Para conectarse con la combinación tradicional de nombre de usuario y contraseña que Cassandra utiliza para autenticación, primero debe crear credenciales específicas del servicio para Amazon Keyspaces como se describe en Creación de credenciales específicas del servicio para el acceso programático a Amazon Keyspaces. También tiene que dar a ese usuario permisos para acceder a Amazon Keyspaces. Para obtener más información, consulte Acceso a las tablas de Amazon Keyspaces.
Una vez creadas las credenciales específicas del servicio y los permisos para el usuario, debe actualizar el archivo
cqlshrc
, que suele encontrarse en la ruta del directorio de usuario~/.cassandra/
. En el archivocqlshrc
, vaya a la sección[authentication]
de Cassandra y comente el módulo SigV4 y la clase bajo[auth_provider]
utilizando el carácter ";", como se muestra en el siguiente ejemplo.[auth_provider] ; module = cassandra_sigv4.auth ; classname = SigV4AuthProvider
Una vez actualizado el archivo
cqlshrc
, puede conectarse a Amazon Keyspaces con las credenciales específicas del servicio mediante el siguiente comando.cqlsh-expansion
--sslcassandra.us-east-1.amazonaws.com
9142 -umyUserName
-pmyPassword
Limpieza
Para eliminar el paquete de
cqlsh-expansion
, puede utilizar el comandopip uninstall
.pip3 uninstall cqlsh-expansion
El comando
pip3 uninstall
no elimina el directorio ni los archivos relacionados creados por el script post-instalación. Para eliminar el directorio y los archivos creados por el script post-instalación, puede eliminar el directorio.cassandra
.
Configuración manual de conexiones de cqlsh
para TLS
Amazon Keyspaces solo acepta conexiones seguras utilizando Seguridad de la capa de transporte (TLS). Puede utilizar la utilidad cqlsh-expansion
que descarga automáticamente el certificado por usted e instala un archivo de configuración cqlshrc
preconfigurado. Para obtener más información, consulte Uso de la cqlsh-expansion para conectarse a Amazon Keyspaces en esta página.
Si desea descargar el certificado y configurar la conexión manualmente, siga estos pasos.
Descargue el certificado digital de Starfield utilizando el siguiente comando y guarde
sf-class2-root.crt
localmente o en su directorio de inicio.curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
nota
También puede utilizar el certificado digital de Amazon para conectarse a Amazon Keyspaces, y puede seguir haciéndolo si su cliente se conecta a Amazon Keyspaces correctamente. El certificado de Starfield proporciona compatibilidad retroactiva adicional para los clientes que utilicen autoridades de certificación más antiguas.
Abra el archivo de configuración
cqlshrc
en el directorio de inicio de Cassandra, por ejemplo${HOME}/.cassandra/cqlshrc
, y añada las siguientes líneas.[connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile =
path_to_file
/sf-class2-root.crt