Cassandra Node.js クライアントドライバーを使用した Amazon Keyspaces へのプログラムアクセス - Amazon Keyspaces (Apache Cassandra 向け)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Cassandra Node.js クライアントドライバーを使用した Amazon Keyspaces へのプログラムアクセス

このセクションでは、Node.js クライアントドライバーを使用して Amazon Keyspaces に接続する方法を説明します。Amazon Keyspaces リソースへのプログラムアクセスに必要な認証情報を、ユーザーとアプリケーションに提供するには、次のいずれかを実行します。

  • 特定の AWS Identity and Access Management (IAM) ユーザーに関連付けられたサービス固有の認証情報を作成します。

  • セキュリティを強化するために、すべてのサービスで使用される IAM ユーザーまたはロールの IAM アクセスキーを作成することをお勧めします AWS 。Cassandra クライアントドライバー用の Amazon Keyspaces SigV4 認証プラグインを使用すると、ユーザー名とパスワードではなく IAM アクセスキーを使用して Amazon Keyspaces のコールの認証を行うことができます。詳細については、「Amazon Keyspaces の AWS 認証情報を作成して設定する方法」を参照してください。

開始する前に

開始する前に、次のタスクを完了する必要があります。

Amazon Keyspaces では、クライアントとの安全な接続を確保するために Transport Layer Security (TLS) を使用する必要があります。TLS を使用して Amazon Keyspaces に接続するには、Amazon デジタル証明書をダウンロードし、TLS を使用するように Python ドライバーを設定する必要があります。

次のコマンドを使用して Starfield デジタル証明書をダウンロードし、sf-class2-root.crt をローカルまたはホームディレクトリ内に保存します。

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

Amazon デジタル証明書を使用して Amazon Keyspaces に接続することもできます。クライアントが Amazon Keyspaces に正常に接続されている場合は、引き続き Amazon Keyspaces に接続できます。Starfield 証明書は、古い認定権限を使用しているクライアントに対して追加の下位互換性を提供するものです。

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

Apache Cassandra 用の Node.js DataStax ドライバーとサービス固有の認証情報を使用して Amazon Keyspaces に接続する

TLS に Starfield デジタル証明書を使用し、認証にサービス固有の認証情報を使用するようにドライバーを設定します。例:

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

使用に関する注意事項:

  1. "path_to_file/sf-class2-root.crt" を、最初のステップで保存した証明書へのパスに置き換えてください。

  2. 「」の手順に従って、ServiceUser名前と がサービス固有の認証情報を生成したときに取得したユーザー名とパスワードServicePasswordと一致することを確認しますサービス固有の認証情報を生成する

  3. 利用可能なエンドポイントのリストについては、「Amazon Keyspaces のサービスエンドポイント」を参照してください。

Apache Cassandra 用の DataStax Node.js ドライバーと SigV4 認証プラグインを使用して Amazon Keyspaces に接続する

次のセクションでは、Apache Cassandra 用のオープンソース DataStax Node.js ドライバーの SigV4 認証プラグインを使用して Amazon Keyspaces (Apache Cassandra 向け) にアクセスする方法を示します。

まだ完了していない場合は、Amazon Keyspaces の AWS 認証情報を作成して設定する方法 のステップに従って IAM ユーザーまたはロールの認証情報を作成します。

GitHub リポジトリ から Node.js SigV4 認証プラグインをアプリケーションに追加します。プラグインは Cassandra 用 Node.js ドライバーのバージョン 4.x DataStax をサポートしており、 AWS SDK for Node.js に依存しています。認証情報の取得には AWSCredentialsProvider が使用されます。

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

次のコード例で、SigV4AuthProvider のリージョン固有のインスタンスを認証プロバイダーとして設定する方法について説明します。

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

使用に関する注意事項:

  1. "path_to_file/sf-class2-root.crt" を、最初のステップで保存した証明書へのパスに置き換えてください。

  2. アクセスKeyIdシークレットAccessKeyが、 を使用して取得したアクセスキーとシークレットアクセスキーと一致していることを確認しますAWSCredentialsProvider。詳細については、「 SDK for in Node.js」の「Setting CredentialsAWS JavaScript in Node.js」を参照してください。

  3. アクセスキーをコード外に保存するには、IAM ユーザーのアクセスキーを管理する方法 のベストプラクティスを参照してください。

  4. 利用可能なエンドポイントのリストについては、「Amazon Keyspaces のサービスエンドポイント」を参照してください。