翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 のコールの認証を行うことができます。詳細については、「Amazon Keyspaces の AWS 認証情報の作成と設定」を参照してください。
トピック
[開始する前に]
開始する前に、次のタスクを完了する必要があります。
Amazon Keyspaces では、クライアントとの安全な接続を確保するために Transport Layer Security (TLS) を使用する必要があります。TLS を使用して Amazon Keyspaces に接続するには、Amazon デジタル証明書をダウンロードし、TLS を使用するように Python ドライバーを設定する必要があります。
次のデジタル証明書をダウンロードし、ローカルまたはホームディレクトリにファイルを保存します。
AmazonRootCA1
AmazonRootCA2
AmazonRootCA3
AmazonRootCA4
Starfield クラス 2 ルート (オプション – 下位互換性用)
証明書をダウンロードするには、次のコマンドを使用できます。
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
注記
Amazon Keyspaces は以前、Starfield Class 2 CA に固定された TLS 証明書を使用していました。 AWS は、Amazon Trust Services (Amazon ルート CAs で発行された証明書 AWS リージョン にすべて移行しています。この移行中に、Amazon ルート CAs 1~4 と Starfield ルートの両方を信頼するようにクライアントを設定し、すべてのリージョンで互換性を確保します。
ダウンロードしたすべての証明書を、この例の keyspaces-bundle.pem という名前の 1 つのpemファイルに結合します。そのためには、以下の コマンドを実行します。ファイルへのパスを書き留めます。これは後で必要になります。
cat AmazonRootCA1.pem \ AmazonRootCA2.pem \ AmazonRootCA3.pem \ AmazonRootCA4.pem \ sf-class2-root.crt \ >keyspaces-bundle.pem
Apache Cassandra 用の Node.js DataStax ドライバーとサービス固有の認証情報を使用して Amazon Keyspaces に接続する
TLS keyspaces-bundle.pemの結合証明書ファイルを使用し、サービス固有の認証情報を使用して認証するようにドライバーを設定します。例:
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}`));
使用に関する注意事項:
を、最初のステップで保存した結合証明書ファイルへのパス
"に置き換えます。path_to_file/keyspaces-bundle.pem"ServiceUserNameとServicePasswordが、Amazon Keyspaces にプログラムによってアクセスするためのサービス固有の認証情報を作成する の手順に従ってサービス固有の認証情報を生成したときに取得したユーザー名とパスワードと一致していることを確認してください。利用可能なエンドポイントのリストについては、「Amazon Keyspaces のサービスエンドポイント」を参照してください。
Apache Cassandra 用 DataStax Node.js ドライバーと SigV4 認証プラグインを使用して Amazon Keyspaces に接続する
次のセクションでは、Apache Cassandra 用オープンソース DataStax Node.js ドライバーの SigV4 認証プラグインを使用して、Amazon Keyspaces (Apache Cassandra 向け) にアクセスする方法を示します。
まだ完了していない場合は、Amazon Keyspaces の AWS 認証情報の作成と設定 のステップに従って IAM ユーザーまたはロールの認証情報を作成します。
Node.js SigV4 認証プラグインを GitHub リポジトリ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_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}`));
使用に関する注意事項:
"を、最初のステップで保存した証明書へのパスに置き換えてください。path_to_file/keyspaces-bundle.pem"accessKeyIdとsecretAccessKeyが、AWSCredentialsProviderを使用して取得したアクセスキーとシークレットアクセスキーに一致していることを確認してください。詳細については、「AWS SDK for JavaScript in Node.js」(Node.js での JavaScript の SDK) の「Setting Credentials in Node.js」(Node.js での認証情報の設定) を参照してください。アクセスキーをコード外に保存するには、プログラムによるアクセス用のアクセスキーを保存する のベストプラクティスを参照してください。
利用可能なエンドポイントのリストについては、「Amazon Keyspaces のサービスエンドポイント」を参照してください。