Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan driver klien Cassandra Node.js untuk mengakses Amazon Keyspaces secara terprogram
Bagian ini menunjukkan kepada Anda cara terhubung ke Amazon Keyspaces dengan menggunakan driver klien Node.js. Untuk memberikan kredensyal kepada pengguna dan aplikasi untuk akses terprogram ke sumber daya Amazon Keyspaces, Anda dapat melakukan salah satu hal berikut:
-
Buat kredensyal khusus layanan yang terkait dengan pengguna AWS Identity and Access Management (IAM) tertentu.
-
Untuk keamanan yang ditingkatkan, kami sarankan untuk membuat kunci akses IAM untuk pengguna IAM atau peran yang digunakan di semua AWS layanan. Plugin otentikasi Amazon Keyspaces SigV4 untuk driver klien Cassandra memungkinkan Anda untuk mengautentikasi panggilan ke Amazon Keyspaces menggunakan kunci akses IAM alih-alih nama pengguna dan kata sandi. Untuk informasi selengkapnya, lihat Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces.
Topik
Sebelum kamu memulai
Anda harus menyelesaikan tugas berikut sebelum Anda dapat memulai.
Amazon Keyspaces memerlukan penggunaan Transport Layer Security (TLS) untuk membantu mengamankan koneksi dengan klien. Untuk terhubung ke Amazon Keyspaces menggunakan TLS, Anda perlu mengunduh sertifikat digital Amazon dan mengonfigurasi driver Python untuk menggunakan TLS.
Unduh sertifikat digital berikut dan simpan file secara lokal atau di direktori home Anda.
AmazonRootCA1
AmazonRootCA2
AmazonRootCA3
AmazonRootCA4
Starfield Class 2 Root (opsional - untuk kompatibilitas mundur)
Untuk mengunduh sertifikat, Anda dapat menggunakan perintah berikut.
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
catatan
Amazon Keyspaces sebelumnya menggunakan sertifikat TLS yang ditambatkan ke Starfield Class 2 CA. AWS memigrasikan semua Wilayah AWS ke sertifikat yang dikeluarkan di bawah Amazon Trust Services (Amazon Root CAs 1-4). Selama transisi ini, konfigurasikan klien untuk mempercayai Amazon Root CAs 1-4 dan root Starfield untuk memastikan kompatibilitas di semua Wilayah.
Gabungkan semua sertifikat yang diunduh menjadi satu pem file dengan nama keyspaces-bundle.pem dalam contoh kami. Anda dapat melakukan ini dengan menjalankan perintah berikut. Catat jalur ke file, Anda perlu ini nanti.
cat AmazonRootCA1.pem \ AmazonRootCA2.pem \ AmazonRootCA3.pem \ AmazonRootCA4.pem \ sf-class2-root.crt \ >keyspaces-bundle.pem
Connect ke Amazon Keyspaces menggunakan DataStax driver Node.js untuk Apache Cassandra dan kredensyal khusus layanan
Konfigurasikan driver Anda untuk menggunakan file sertifikat gabungan keyspaces-bundle.pem untuk TLS dan autentikasi menggunakan kredensyal khusus layanan. Contoh:
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}`));
Catatan penggunaan:
Ganti
"dengan jalur ke file sertifikat gabungan yang disimpan di langkah pertama.path_to_file/keyspaces-bundle.pem"Pastikan bahwa
ServiceUserNamedanServicePasswordmencocokkan nama pengguna dan kata sandi yang Anda peroleh saat Anda membuat kredensyal khusus layanan dengan mengikuti langkah-langkahnya. Buat kredensil khusus layanan untuk akses terprogram ke Amazon KeyspacesUntuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.
Connect ke Amazon Keyspaces menggunakan driver DataStax Node.js untuk Apache Cassandra dan plugin otentikasi SiGv4
Bagian berikut menunjukkan cara menggunakan plugin otentikasi SiGv4 untuk driver DataStax Node.js open-source untuk Apache Cassandra untuk mengakses Amazon Keyspaces (untuk Apache Cassandra).
Jika Anda belum melakukannya, buat kredensyal untuk pengguna IAM Anda atau peran mengikuti langkah-langkah di. Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces
Tambahkan plugin otentikasi SiGv4 Node.js ke aplikasi Anda dari repositori. GitHub AWSCredentialsProvider untuk mendapatkan kredensil.
$ npm install aws-sigv4-auth-cassandra-plugin --save
Contoh kode ini menunjukkan cara mengatur instance khusus Wilayah SigV4AuthProvider sebagai penyedia otentikasi.
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}`));
Catatan penggunaan:
Ganti
"dengan jalur ke sertifikat yang disimpan di langkah pertama.path_to_file/keyspaces-bundle.pem"Pastikan bahwa
accessKeyIddansecretAccessKeycocok dengan Kunci Akses dan Kunci Akses Rahasia yang Anda peroleh menggunakanAWSCredentialsProvider. Untuk informasi selengkapnya, lihat Menyetel Kredensyal di Node.js di AWS SDK untuk JavaScript di Node.js.Untuk menyimpan kunci akses di luar kode, lihat praktik terbaik diSimpan kunci akses untuk akses terprogram.
Untuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.