View a markdown version of this page

Verwenden eines Node.js Cassandra-Client-Treibers für den programmgesteuerten Zugriff auf Amazon Keyspaces - Amazon Keyspaces (für Apache Cassandra)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden eines Node.js Cassandra-Client-Treibers für den programmgesteuerten Zugriff auf Amazon Keyspaces

In diesem Abschnitt erfahren Sie, wie Sie mithilfe eines Client-Treibers eine Node.js Verbindung zu Amazon Keyspaces herstellen. Um Benutzern und Anwendungen Anmeldeinformationen für den programmatischen Zugriff auf Amazon Keyspaces-Ressourcen zur Verfügung zu stellen, können Sie einen der folgenden Schritte ausführen:

  • Erstellen Sie dienstspezifische Anmeldeinformationen, die einem bestimmten Benutzer AWS Identity and Access Management (IAM) zugeordnet sind.

  • Zur Erhöhung der Sicherheit empfehlen wir, IAM-Zugriffsschlüssel für IAM-Benutzer oder -Rollen zu erstellen, die für alle Dienste verwendet werden. AWS Das Amazon Keyspaces SigV4-Authentifizierungs-Plugin für Cassandra-Client-Treiber ermöglicht es Ihnen, Anrufe an Amazon Keyspaces mithilfe von IAM-Zugriffsschlüsseln anstelle von Benutzername und Passwort zu authentifizieren. Weitere Informationen finden Sie unter AWS Anmeldeinformationen für Amazon Keyspaces erstellen und konfigurieren.

Bevor Sie beginnen

Sie müssen die folgende Aufgabe abschließen, bevor Sie beginnen können.

Amazon Keyspaces erfordert die Verwendung von Transport Layer Security (TLS), um die Verbindungen mit Kunden abzusichern. Um mithilfe von TLS eine Verbindung zu Amazon Keyspaces herzustellen, müssen Sie ein digitales Amazon-Zertifikat herunterladen und den Python-Treiber für die Verwendung von TLS konfigurieren.

Laden Sie die folgenden digitalen Zertifikate herunter und speichern Sie die Dateien lokal oder in Ihrem Home-Verzeichnis.

  1. AmazonRootCA1

  2. AmazonRootCA2

  3. AmazonRootCA3

  4. AmazonRootCA4

  5. Starfield Class 2 Root (optional — aus Gründen der Abwärtskompatibilität)

Um die Zertifikate herunterzuladen, können Sie die folgenden Befehle verwenden.

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
Anmerkung

Amazon Keyspaces verwendete zuvor TLS-Zertifikate, die in der Starfield Class 2-CA verankert waren. AWS migriert alle Zertifikate AWS-Regionen , die unter Amazon Trust Services (Amazon Root CAs 1—4) ausgestellt wurden. Konfigurieren Sie während dieser Umstellung die Clients so, dass sie sowohl Amazon Root CAs 1—4 als auch dem Starfield-Root vertrauen, um die Kompatibilität in allen Regionen sicherzustellen.

Kombinieren Sie alle heruntergeladenen Zertifikate in einer einzigen pem Datei mit dem Namen keyspaces-bundle.pem in unseren Beispielen. Sie erreichen dies mit dem -Befehl- Notieren Sie sich den Pfad zur Datei, diesen benötigen Sie später.

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

Stellen Sie mithilfe des Apache Node.js DataStax Cassandra-Treibers und der dienstspezifischen Anmeldeinformationen eine Verbindung zu Amazon Keyspaces her

Konfigurieren Sie Ihren Treiber so, dass er die kombinierte Zertifikatsdatei keyspaces-bundle.pem für TLS verwendet, und authentifizieren Sie sich mit dienstspezifischen Anmeldeinformationen. Beispiel:

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

Hinweise zur Verwendung:

  1. "path_to_file/keyspaces-bundle.pem"Ersetzen Sie durch den Pfad zur kombinierten Zertifikatsdatei, die im ersten Schritt gespeichert wurde.

  2. Stellen Sie sicher, dass ServiceUserName und ServicePassword mit dem Benutzernamen und dem Passwort übereinstimmen, das Sie bei der Generierung der dienstspezifischen Anmeldeinformationen erhalten haben, indem Sie die Schritte unter ausführen. Dienstspezifische Anmeldeinformationen für den programmatischen Zugriff auf Amazon Keyspaces erstellen

  3. Eine Liste der verfügbaren Endpunkte finden Sie unter. Serviceendpunkte für Amazon Keyspaces

Stellen Sie mithilfe des DataStax Node.js Treibers für Apache Cassandra und des SigV4-Authentifizierungs-Plug-ins eine Verbindung zu Amazon Keyspaces her

Der folgende Abschnitt zeigt, wie Sie das SigV4-Authentifizierungs-Plugin für den DataStax Node.js Open-Source-Treiber für Apache Cassandra verwenden, um auf Amazon Keyspaces (für Apache Cassandra) zuzugreifen.

Falls Sie dies noch nicht getan haben, erstellen Sie Anmeldeinformationen für Ihren IAM-Benutzer oder Ihre IAM-Rolle, indem Sie den Schritten unter folgen. AWS Anmeldeinformationen für Amazon Keyspaces erstellen und konfigurieren

Fügen Sie das Node.js SigV4-Authentifizierungs-Plugin aus dem Repository zu Ihrer Anwendung hinzu. GitHub Das Plugin unterstützt Version 4.x des DataStax Node.js Treibers für Cassandra und hängt vom AWS SDK für ab. Node.js Es wird verwendet, AWSCredentialsProvider um Anmeldeinformationen zu erhalten.

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

Dieses Codebeispiel zeigt, wie eine Region-specific Instanz von SigV4AuthProvider als Authentifizierungsanbieter festgelegt wird.

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

Hinweise zur Verwendung:

  1. "path_to_file/keyspaces-bundle.pem"Ersetzen Sie durch den Pfad zum Zertifikat, das im ersten Schritt gespeichert wurde.

  2. Stellen Sie sicher, dass accessKeyId und secretAccessKey mit dem Zugriffsschlüssel und dem geheimen Zugriffsschlüssel übereinstimmen, den Sie mit diesem Schlüssel erhalten habenAWSCredentialsProvider. Weitere Informationen finden Sie unter Einstellen von Anmeldeinformationen Node.js im AWS SDK für JavaScript in Node.js.

  3. Informationen zum Speichern von Zugriffsschlüsseln außerhalb des Codes finden Sie unter Best PracticesSpeichern Sie die Zugriffstasten für den programmatischen Zugriff.

  4. Eine Liste der verfügbaren Endpunkte finden Sie unterServiceendpunkte für Amazon Keyspaces.