Uso de un controlador de cliente Node.js para Cassandra para acceder mediante programación a Amazon Keyspaces - Amazon Keyspaces (para Apache Cassandra)

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.

Uso de un controlador de cliente Node.js para Cassandra para acceder mediante programación a Amazon Keyspaces

En esta sección le mostramos cómo conectarse a Amazon Keyspaces mediante un controlador de cliente Node.js. Para proporcionar a los usuarios y a las aplicaciones credenciales de acceso programático a los recursos de Amazon Keyspaces, puede realizar cualquiera de las siguientes acciones:

  • Cree credenciales específicas del servicio que estén asociadas a un usuario específico AWS Identity and Access Management (IAM).

  • Para mejorar la seguridad, recomendamos crear claves de IAM acceso para IAM los usuarios o roles que se utilicen en todos los AWS servicios. El complemento de autenticación SiGv4 de Amazon Keyspaces para los controladores de clientes de Cassandra le permite autenticar las llamadas a Amazon Keyspaces IAM mediante claves de acceso en lugar del nombre de usuario y la contraseña. Para obtener más información, consulte Crear y configurar AWS credenciales para Amazon Keyspaces.

Antes de empezar

Debe completar la siguiente tarea antes de comenzar.

Amazon Keyspaces requiere el uso de Transport Layer Security (TLS) para proteger las conexiones con los clientes. Para conectarse a Amazon Keyspaces medianteTLS, debe descargar un certificado digital de Amazon y configurar el controlador de Python que va a utilizar. TLS

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.

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

Conéctese a Amazon Keyspaces mediante el DataStax controlador Node.js para Apache Cassandra y credenciales específicas del servicio

Configure su controlador para que utilice el certificado digital de Starfield TLS y se autentique con credenciales específicas del servicio. Por ejemplo:

const cassandra = require('cassandra-driver'); const fs = require('fs'); const auth = new cassandra.auth.PlainTextAuthProvider('ServiceUserName', 'ServicePassword'); const sslOptions1 = { ca: [ fs.readFileSync('path_to_file/sf-class2-root.crt', 'utf-8')], host: 'cassandra.us-west-2.amazonaws.com', rejectUnauthorized: true }; const client = new cassandra.Client({ contactPoints: ['cassandra.us-west-2.amazonaws.com'], localDataCenter: 'us-west-2', authProvider: auth, sslOptions: sslOptions1, protocolOptions: { port: 9142 } }); const query = 'SELECT * FROM system_schema.keyspaces'; client.execute(query) .then( result => console.log('Row from Keyspaces %s', result.rows[0])) .catch( e=> console.log(`${e}`));

Notas de uso:

  1. Sustituya "path_to_file/sf-class2-root.crt" por la ruta al certificado guardado en el primer paso.

  2. Asegúrese de que ServiceUserName y ServicePassword haga coincidir el nombre de usuario y la contraseña que obtuvo al generar las credenciales específicas del servicio siguiendo los pasos que se indican a continuación. Cree credenciales de servicios específicos para el acceso programático a Amazon Keyspaces

  3. Para obtener una lista de los puntos de conexión disponibles, consulte Puntos de conexión de servicio para Amazon Keyspaces.

Conéctese a Amazon Keyspaces mediante el controlador DataStax Node.js para Apache Cassandra y el complemento de autenticación SigV4

En la siguiente sección, se muestra cómo utilizar el complemento de autenticación SigV4 para que el controlador DataStax Node.js de código abierto de Apache Cassandra acceda a Amazon Keyspaces (para Apache Cassandra).

Si aún no lo ha hecho, cree las credenciales para su IAM usuario o rol siguiendo los pasos que se indican en. Crear y configurar AWS credenciales para Amazon Keyspaces

Añada el complemento de autenticación SiGv4 de Node.js a su aplicación desde el GitHub repositorio. El complemento es compatible con la versión 4.x del controlador DataStax Node.js para Cassandra y depende del AWS SDK controlador Node.js. Utiliza AWSCredentialsProvider para obtener credenciales.

$ npm install aws-sigv4-auth-cassandra-plugin --save

En este ejemplo de código se muestra cómo configurar una instancia específica de una región de SigV4AuthProvider como proveedor de autenticación.

const cassandra = require('cassandra-driver'); const fs = require('fs'); const sigV4 = require('aws-sigv4-auth-cassandra-plugin'); const auth = new sigV4.SigV4AuthProvider({ region: 'us-west-2', accessKeyId:'AKIAIOSFODNN7EXAMPLE', secretAccessKey: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'}); const sslOptions1 = { ca: [ fs.readFileSync('path_to_filecassandra/sf-class2-root.crt', 'utf-8')], host: 'cassandra.us-west-2.amazonaws.com', rejectUnauthorized: true }; const client = new cassandra.Client({ contactPoints: ['cassandra.us-west-2.amazonaws.com'], localDataCenter: 'us-west-2', authProvider: auth, sslOptions: sslOptions1, protocolOptions: { port: 9142 } }); const query = 'SELECT * FROM system_schema.keyspaces'; client.execute(query).then( result => console.log('Row from Keyspaces %s', result.rows[0])) .catch( e=> console.log(`${e}`));

Notas de uso:

  1. Sustituya "path_to_file/sf-class2-root.crt" por la ruta al certificado guardado en el primer paso.

  2. Asegúrese de que accessKeyId y secretAccessKey coincidan con la clave de acceso y la clave de acceso secreta que obtuvo utilizandoAWSCredentialsProvider. Para obtener más información, consulte Configuración de credenciales en Node.js JavaScript en AWS SDK el formulario Node.js.

  3. Para almacenar las claves de acceso fuera del código, consulta las prácticas recomendadas en Almacene las claves de acceso de los usuarios IAM.

  4. Para obtener una lista de los puntos de conexión disponibles, consulte Puntos de conexión de servicio para Amazon Keyspaces.