As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Como usar um driver de cliente Cassandra Node.js para acessar o Amazon Keyspaces programaticamente
Esta seção mostra como se conectar ao Amazon Keyspaces usando um driver de cliente Node.js. Para fornecer aos usuários e aplicativos credenciais para acesso programático aos recursos do Amazon Keyspaces, você pode executar uma das seguintes ações:
-
Criar credenciais específicas do serviço associadas a um usuário específico AWS Identity and Access Management (IAM).
-
Para aumentar a segurança, recomendamos criar chaves de acesso do IAM para usuários ou funções do IAM que são usadas em todos os AWS serviços. O plug-in de autenticação SigV4 do Amazon Keyspaces para drivers de clientes do Cassandra permite que você autentique chamadas para o Amazon Keyspaces usando chaves de acesso do IAM em vez de nome de usuário e senha. Para obter mais informações, consulte Crie e configure AWS credenciais para o Amazon Keyspaces.
Tópicos
Antes de começar
Você precisa concluir a tarefa seguinte antes de iniciar.
O Amazon Keyspaces requer o uso do Transport Layer Security (TLS) para ajudar a proteger as conexões com os clientes. Para se conectar ao Amazon Keyspaces usando o TLS, você precisa baixar um certificado digital da Amazon e configurar o driver do Python para usar o TLS.
Faça o download dos seguintes certificados digitais e salve os arquivos localmente ou em seu diretório pessoal.
AmazonRootCA1
AmazonRootCA2
AmazonRootCA3
AmazonRootCA4
Starfield Class 2 Root (opcional — para compatibilidade com versões anteriores)
Para baixar os certificados, você pode usar os seguintes comandos.
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
nota
O Amazon Keyspaces usava anteriormente certificados TLS ancorados na CA Starfield Class 2. AWS está migrando tudo Regiões da AWS para certificados emitidos pelo Amazon Trust Services (Amazon Root CAs 1—4). Durante essa transição, configure os clientes para que confiem tanto na Amazon Root CAs 1—4 quanto na raiz Starfield para garantir a compatibilidade em todas as regiões.
Combine todos os certificados baixados em um único pem arquivo com o nome keyspaces-bundle.pem em nossos exemplos. Você pode fazer isso executando o seguinte comando : Anote o caminho para o arquivo, você precisará disso mais tarde.
cat AmazonRootCA1.pem \ AmazonRootCA2.pem \ AmazonRootCA3.pem \ AmazonRootCA4.pem \ sf-class2-root.crt \ >keyspaces-bundle.pem
Conecte-se ao Amazon Keyspaces usando o DataStax driver Node.js para Apache Cassandra e credenciais específicas do serviço
Configure seu driver para usar o arquivo de certificado combinado keyspaces-bundle.pem para TLS e autenticar usando credenciais específicas do serviço. Por exemplo:
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}`));
Observações de uso:
"Substitua pelo caminho para o arquivo de certificado combinado salvo na primeira etapa.path_to_file/keyspaces-bundle.pem"Certifique-se de que
ServiceUserNameeServicePasswordcorresponda ao nome de usuário e à senha que você obteve ao gerar as credenciais específicas do serviço seguindo as etapas para. Crie credenciais específicas do serviço para acesso programático ao Amazon KeyspacesPara obter uma lista de endpoints disponíveis, consulte Endpoints de serviço para Amazon Keyspaces.
Conecte-se ao Amazon Keyspaces usando o driver DataStax Node.js para Apache Cassandra e o plug-in de autenticação SigV4
A seção a seguir mostra como usar o plug-in de autenticação SigV4 para o driver DataStax Node.js de código aberto do Apache Cassandra para acessar o Amazon Keyspaces (para o Apache Cassandra).
Se ainda não tiver feito isso, crie credenciais para o usuário do IAM ou o perfil do IAM seguindo as etapas em Crie e configure AWS credenciais para o Amazon Keyspaces.
Adicione o plug-in de autenticação Node.js SigV4 ao seu aplicativo a partir do GitHub repositório.AWSCredentialsProvider para obter credenciais.
$ npm install aws-sigv4-auth-cassandra-plugin --save
Este exemplo de código mostra como definir uma instância específica da região SigV4AuthProvider como provedor de autenticação.
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}`));
Observações de uso:
Substitua
"pelo caminho para o certificado salvo na primeira etapa.path_to_file/keyspaces-bundle.pem"Certifique-se de que
accessKeyIdesecretAccessKeycorresponda à chave de acesso e à chave de acesso secreta que você obteve usandoAWSCredentialsProvider. Para obter mais informações, consulte Configuração de credenciais em Node.js no AWS SDK para JavaScript em Node.js.Para armazenar chaves de acesso fora do código, consulte as melhores práticas em Armazene chaves de acesso para acesso programático.
Para obter uma lista de endpoints disponíveis, consulte Endpoints de serviço para Amazon Keyspaces.