View a markdown version of this page

Utilizzo di un driver Node.js client Cassandra per accedere ad Amazon Keyspaces a livello di codice - 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 di un driver Node.js client Cassandra per accedere ad Amazon Keyspaces a livello di codice

Questa sezione mostra come connettersi ad Amazon Keyspaces utilizzando un driver Node.js client. Per fornire agli utenti e alle applicazioni le credenziali per l'accesso programmatico alle risorse di Amazon Keyspaces, puoi effettuare una delle seguenti operazioni:

  • Crea credenziali specifiche del servizio associate a un utente specifico (IAM). AWS Identity and Access Management

  • Per una maggiore sicurezza, consigliamo di creare chiavi di accesso IAM per utenti o ruoli IAM utilizzati in tutti i servizi. AWS Il plug-in di autenticazione Amazon Keyspaces SigV4 per i driver client Cassandra consente di autenticare le chiamate ad Amazon Keyspaces utilizzando chiavi di accesso IAM anziché nome utente e password. Per ulteriori informazioni, consulta Crea e configura AWS credenziali per Amazon Keyspaces.

Prima di iniziare

È necessario completare la seguente attività prima di iniziare.

Amazon Keyspaces richiede l'uso di Transport Layer Security (TLS) per proteggere le connessioni con i client. Per connetterti ad Amazon Keyspaces tramite TLS, devi scaricare un certificato digitale Amazon e configurare il driver Python per utilizzare TLS.

Scarica i seguenti certificati digitali e salva i file localmente o nella tua home directory.

  1. AmazonRootCA1

  2. AmazonRootCA 2

  3. AmazonRootCA 3

  4. AmazonRootCA 4

  5. 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 CA 1—4). Durante questa transizione, configura i client in modo che si fidino sia di Amazon Root CA 1—4 che di Starfield root per garantire la compatibilità in tutte le regioni.

Combina tutti i certificati scaricati in un unico pem file con il nome keyspaces-bundle.pem indicato 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

Connect ad Amazon Keyspaces utilizzando il Node.js DataStax driver per Apache Cassandra e le credenziali specifiche del servizio

Configura il driver per utilizzare il file di certificato combinato keyspaces-bundle.pem per TLS e autenticarsi utilizzando credenziali specifiche del servizio. Esempio:

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}`));

Note sull'utilizzo:

  1. Sostituisci "path_to_file/keyspaces-bundle.pem" con il percorso del file di certificato combinato salvato nel primo passaggio.

  2. Assicurati che ServiceUserName e ServicePassword corrispondano al nome utente e alla password che hai ottenuto quando hai generato le credenziali specifiche del servizio seguendo i passaggi per. Crea credenziali specifiche del servizio per l'accesso programmatico ad Amazon Keyspaces

  3. Per un elenco degli endpoint disponibili, consulta. Endpoint di servizio per Amazon Keyspaces

Connect ad Amazon Keyspaces utilizzando il DataStax Node.js driver per Apache Cassandra e il plug-in di autenticazione SigV4

La sezione seguente mostra come utilizzare il plug-in di autenticazione SigV4 per il DataStax Node.js driver open source per Apache Cassandra per accedere ad Amazon Keyspaces (per Apache Cassandra).

Se non l'hai già fatto, crea le credenziali per il tuo utente o ruolo IAM seguendo la procedura descritta in. Crea e configura AWS credenziali per Amazon Keyspaces

Aggiungi il plug-in di autenticazione Node.js SigV4 all'applicazione dal repository. GitHub Il plugin supporta la versione 4.x del DataStax Node.js driver per Cassandra e dipende dall'SDK per. AWS Node.js Viene utilizzato per AWSCredentialsProvider ottenere le credenziali.

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

Questo esempio di codice mostra come impostare un' Region-specific istanza di SigV4AuthProvider come provider di autenticazione.

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}`));

Note sull'utilizzo:

  1. Sostituisci "path_to_file/keyspaces-bundle.pem" con il percorso del certificato salvato nel primo passaggio.

  2. Assicurati che accessKeyId e secretAccessKey corrispondano alla chiave di accesso e alla chiave di accesso segreta che hai ottenuto utilizzandoAWSCredentialsProvider. Per ulteriori informazioni, consulta Impostazione delle credenziali Node.js nell'AWSSDK for JavaScript in. Node.js

  3. Per archiviare le chiavi di accesso al di fuori del codice, consulta le best practice all'indirizzo. Memorizza le chiavi di accesso per l'accesso programmatico

  4. Per un elenco degli endpoint disponibili, consultaEndpoint di servizio per Amazon Keyspaces.