기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
이 섹션에서는 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는 클라이언트와의 연결을 보호하기 위해 전송 계층 보안(TLS)을 사용해야 합니다. 를 사용하여 Amazon Keyspaces에 연결하려면 Amazon 디지털 인증서를 다운로드하고를 사용하도록 Python 드라이버를 구성TLS해야 합니다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 드라이버 및 서비스별 자격 증명을 사용하여 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 보안 인증 생성 및 구성.
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의 서비스 엔드포인트 섹션을 참조하세요.