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) ユーザーに関連付けられているサービス固有の認証情報を作成します。

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

開始する前に

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

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

次のコマンドを使用して 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 に接続する

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

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. ServiceUserName また、ServicePassword は、 の手順に従って、サービス固有の認証情報を生成したときに取得したユーザー名とパスワードと一致しますAmazon Keyspaces にプログラムでアクセスするためのサービス固有の認証情報を作成する

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

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

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

まだ作成していない場合は、「」の手順に従って、IAMユーザーまたはロールの認証情報を作成します作成と設定 AWS Amazon Keyspaces の 認証情報

Node.js SigV4 認証プラグインをGitHub リポジトリ からアプリケーションに追加します。プラグインは Cassandra 用の Node.js ドライバーのバージョン 4.x DataStax をサポートしており、Node.js 用の AWS SDKによって異なります。認証情報の取得には 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. accessKeyId また、secretAccessKey を使用して取得したアクセスキーとシークレットアクセスキーと一致しますAWSCredentialsProvider。詳細については、Node.js の の「Node.js で認証情報を設定する」を参照してください。 AWS SDK JavaScript

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

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