View a markdown version of this page

Utilisation d'un pilote Node.js client Cassandra pour accéder à Amazon Keyspaces par programmation - Amazon Keyspaces (pour Apache Cassandra)

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 d'un pilote Node.js client Cassandra pour accéder à Amazon Keyspaces par programmation

Cette section explique comment vous connecter à Amazon Keyspaces à l'aide d'un pilote Node.js client. Pour fournir aux utilisateurs et aux applications des informations d'identification leur permettant d'accéder par programmation aux ressources Amazon Keyspaces, vous pouvez effectuer l'une des opérations suivantes :

  • Créez des informations d'identification spécifiques au service associées à un utilisateur Gestion des identités et des accès AWS (IAM) spécifique.

  • Pour renforcer la sécurité, nous vous recommandons de créer des clés d'accès IAM pour les utilisateurs ou les rôles IAM utilisés dans tous les AWS services. Le plug-in d'authentification Amazon Keyspaces SIGv4 pour les pilotes clients Cassandra vous permet d'authentifier les appels vers Amazon Keyspaces à l'aide de clés d'accès IAM au lieu d'un nom d'utilisateur et d'un mot de passe. Pour de plus amples informations, veuillez consulter Création et configuration des AWS informations d'identification pour Amazon Keyspaces.

Avant de commencer

Vous devez effectuer la tâche suivante avant de pouvoir commencer.

Amazon Keyspaces nécessite l'utilisation du protocole TLS (Transport Layer Security) pour sécuriser les connexions avec les clients. Pour vous connecter à Amazon Keyspaces à l'aide du protocole TLS, vous devez télécharger un certificat numérique Amazon et configurer le pilote Python pour qu'il utilise le protocole TLS.

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

  1. AmazonRootCA1

  2. AmazonRootCA2

  3. AmazonRootCA3

  4. AmazonRootCA4

  5. Starfield Class 2 Root (en option, pour des raisons de 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 dans le Starfield Class 2 CA. AWS migre tous Régions AWS vers des certificats émis dans le cadre d'Amazon Trust Services (Amazon Root CA 1 à 4). Pendant cette transition, configurez les clients pour qu'ils fassent confiance à la fois aux autorités de certification Amazon Root 1 à 4 et à la racine Starfield afin de garantir la compatibilité entre toutes les régions.

Combinez tous les certificats téléchargés dans un seul pem fichier avec le nom keyspaces-bundle.pem indiqué dans nos exemples. Pour ce faire, exécutez la commande suivante : Prenez note du chemin d'accès au fichier, vous en aurez besoin plus tard.

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

Connectez-vous à Amazon Keyspaces à l'aide du Node.js DataStax pilote pour Apache Cassandra et des informations d'identification spécifiques au service

Configurez votre pilote pour utiliser le fichier de certificat combiné keyspaces-bundle.pem pour TLS et authentifiez-vous à l'aide d'informations d'identification spécifiques au service. Par exemple :

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/keyspaces-bundle.pem', '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}`));

Remarques d'utilisation :

  1. Remplacez-le "path_to_file/keyspaces-bundle.pem" par le chemin d'accès au fichier de certificat combiné enregistré lors de la première étape.

  2. Assurez-vous que le nom d'utilisateur ServiceUserName et le mot de passe que vous avez obtenus lors de la génération des informations d'identification spécifiques au service et qu'ils ServicePassword correspondent à ceux que vous avez obtenus en suivant les étapes ci-dessous. Créez des informations d'identification spécifiques au service pour un accès programmatique à Amazon Keyspaces

  3. Pour obtenir la liste des points de terminaison disponibles, reportez-vous à la section Points de terminaison de service pour Amazon Keyspaces.

Connectez-vous à Amazon Keyspaces à l'aide du DataStax Node.js pilote pour Apache Cassandra et du plug-in d'authentification SIGv4

La section suivante montre comment utiliser le plug-in d'authentification Sigv4 pour le DataStax Node.js pilote open source pour Apache Cassandra afin d'accéder à Amazon Keyspaces (pour Apache Cassandra).

Si ce n'est pas déjà fait, créez des informations d'identification pour votre utilisateur ou votre rôle IAM en suivant les étapes décrites à Création et configuration des AWS informations d'identification pour Amazon Keyspaces la section.

Ajoutez le plug-in d'authentification Node.js SigV4 à votre application depuis le GitHub référentiel. Le plugin prend en charge la version 4.x du DataStax Node.js pilote pour Cassandra et dépend du AWS SDK pour. Node.js Il est utilisé AWSCredentialsProvider pour obtenir des informations d'identification.

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

Cet exemple de code montre comment définir une Region-specific instance de SigV4AuthProvider comme fournisseur d'authentification.

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_file/keyspaces-bundle.pem', '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}`));

Remarques d'utilisation :

  1. "path_to_file/keyspaces-bundle.pem"Remplacez-le par le chemin d'accès au certificat enregistré lors de la première étape.

  2. Assurez-vous que la clé d'accès accessKeyId secretAccessKey et la clé d'accès secrète que vous avez obtenues à l'aide deAWSCredentialsProvider. Pour plus d'informations, consultez la section Configuration des informations d'identification Node.js JavaScript dans Node.js le AWS SDK.

  3. Pour stocker les clés d'accès en dehors du code, consultez les meilleures pratiques à l'adresseStocker les clés d'accès pour un accès programmatique.

  4. Pour obtenir la liste des points de terminaison disponibles, reportez-vous à la section Points de terminaison de service pour Amazon Keyspaces.