选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 Cassandra Node.js 客户端驱动程序以编程方式访问 Amazon Keyspaces

聚焦模式
使用 Cassandra Node.js 客户端驱动程序以编程方式访问 Amazon Keyspaces - Amazon Keyspaces(Apache Cassandra 兼容)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本部分介绍了如何使用 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 要求使用传输层安全 (TLS) 来帮助保护与客户端的连接。要使用连接到 Amazon KeyspacesTLS,您需要下载亚马逊数字证书并配置要使用的 Python 驱动程序。TLS

使用以下命令下载 Starfield 数字证书,并将 sf-class2-root.crt 保存在本地或您的主目录中。

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

您还可以使用 Amazon 数字证书连接到 Amazon Keyspaces。如果您的客户端成功连接到 Amazon Keyspaces,您可以继续这样做。Starfield 证书为使用旧证书颁发机构的客户端提供了额外的向后兼容性。

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

使用适用于 Apache Cassandra 的 Node.js DataStax 驱动程序和特定于服务的凭证连接到亚马逊密钥空间

将您的驱动程序配置为使用 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. 按照以下步骤操作,确保和与您在生成服务特定凭证时获得的用户名和密码ServicePassword相匹配。ServiceUserName 创建用于通过编程方式访问 Amazon Keyspaces 的服务特定凭证。

  3. 有关可用端点的列表,请参阅Amazon Keyspaces 的服务端点

使用适用于 Apache Cassandra DataStax 的 Node.js 驱动程序和 SigV4 身份验证插件连接到亚马逊密钥空间

以下部分介绍如何使用适用于 Apache Cassandra 的开源 DataStax Node.js 驱动程序的 Sigv4 身份验证插件来访问亚马逊密钥空间(适用于 Apache Cassandra)。

如果您尚未这样做,请按照中的步骤为您的IAM用户或角色创建证书为 Amazon Keyspaces 创建和配置 AWS 证书

从存储库中将 Node.js Sigv4 身份验证插件添加到您的应用程序中。GitHub 该插件支持 Cassandra DataStax 的 Node.js 驱动程序版本 4.x,并且依赖于 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. 确保accessKeyIdsecretAccessKey与您使用获得的访问密钥和私有访问密钥相匹配AWSCredentialsProvider。有关更多信息,请参阅 Node.js 中的 “在 Node.js 中AWS SDK设置凭据”。 JavaScript

  3. 要在代码之外存储访问密钥,请参阅存储用于通过编程方式进行访问的访问密钥中的最佳实践。

  4. 有关可用端点的列表,请参阅Amazon Keyspaces 的服务端点

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。