翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このセクションでは、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) を使用する必要があります。を使用して 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}`));
使用に関する注意事項:
"
を、最初のステップで保存した証明書へのパスに置き換えてください。path_to_file
/sf-class2-root.crt"ServiceUserName
「」の手順に従って、 と がサービス固有の認証情報を生成したときに取得したユーザー名とパスワードServicePassword
と一致することを確認しますAmazon Keyspaces にプログラムによってアクセスするためのサービス固有の認証情報を作成する。利用可能なエンドポイントのリストについては、「Amazon Keyspaces のサービスエンドポイント」を参照してください。
Apache Cassandra 用の DataStax Node.js ドライバーと SigV4 認証プラグインを使用して Amazon Keyspaces に接続する
次のセクションでは、Apache Cassandra 用のオープンソース DataStax Node.js ドライバーの SigV4 認証プラグインを使用して Amazon Keyspaces (Apache Cassandra 向け) にアクセスする方法を示します。
まだ作成していない場合は、「」の手順に従って、IAMユーザーまたはロールの認証情報を作成しますAmazon Keyspaces の AWS 認証情報の作成と設定。
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
cassandra/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}`));
使用に関する注意事項:
"
を、最初のステップで保存した証明書へのパスに置き換えてください。path_to_file
/sf-class2-root.crt"accessKeyId
と が、 を使用して取得したアクセスキーとシークレットアクセスキーsecretAccessKey
と一致することを確認しますAWSCredentialsProvider
。詳細については、Node.js の の「Node.js での認証情報の設定」を参照してください。 AWS SDK JavaScriptアクセスキーをコード外に保存するには、プログラムによるアクセス用のアクセスキーを保存する のベストプラクティスを参照してください。
利用可能なエンドポイントのリストについては、「Amazon Keyspaces のサービスエンドポイント」を参照してください。