

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Gremlin JavaScript에서 IAM 인증을 사용하여 Amazon Neptune 데이터베이스에 연결
<a name="gremlin-javascript-iam-auth"></a>

## 개요
<a name="gremlin-javascript-iam-auth-overview"></a>

 이 설명서에서는 Gremlin JavaScript 드라이버를 사용하여 IAM 인증을 활성화하고 Signature Version 4 인증 및 AWS SDK for Javascript v3를 사용하여 Amazon Neptune 데이터베이스에 연결하는 방법을 보여줍니다.

## 사전 조건
<a name="gremlin-javascript-iam-auth-prereqs"></a>
+  IAM 인증이 활성화된 Amazon Neptune 클러스터입니다.
+  노드 13 이상(Gremlin JavaScript 및 [AWS SDK for Javascript v3](https://docs.aws.amazon.com//AWSJavaScriptSDK/v3/latest/introduction/#release-cadence)의 최소 버전 참조).
+  AWS 구성된 자격 증명(환경 변수, 공유 자격 증명 파일 또는 IAM 역할을 통해).

## 기본 연결 생성
<a name="gremlin-javascript-iam-auth-basic-connection"></a>

 다음 코드 예제를 Gremlin JavaScript 드라이버를 사용하여 IAM 인증과 기본 연결을 설정하는 방법에 대한 지침으로 사용합니다.

```
const { fromNodeProviderChain } = require('@aws-sdk/credential-providers');
const { getUrlAndHeaders } = require('gremlin-aws-sigv4/lib/utils');
const { loadConfig } = require("@smithy/node-config-provider");
const { NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS } = require("@smithy/config-resolver");

const gremlin = require('gremlin');
const DriverRemoteConnection = gremlin.driver.DriverRemoteConnection;
const traversal = gremlin.process.AnonymousTraversalSource.traversal;

const DEFAULT_REGION = 'us-east-1';

const getCredentials = async () => {
    try {
        // Loads the default credential provider chain
        return await fromNodeProviderChain();
    } catch (e) {
        console.error("No credentials found", e);
        throw e;
    }
};

(main = async () => {
    console.log('Starting');

    const credentials = await getCredentials();
    try {
        // region set inside config profile or via AWS_REGION environment variable will be loaded
        credentials['region'] = await loadConfig(NODE_REGION_CONFIG_OPTIONS, NODE_REGION_CONFIG_FILE_OPTIONS)();
    } catch (e) {
        credentials['region'] = DEFAULT_REGION
    }

    const connInfo = getUrlAndHeaders(
        'you.cluster.endpoint.neptune.amazonaws.com',
        '8182',
        credentials,
        '/gremlin',
        'wss');

    const dc = new DriverRemoteConnection(connInfo['url'], {headers: connInfo['headers']});
    const g = traversal().withRemote(dc);

    const query = g.V().limit(5).count();
    const count = await query.next();
    console.log("Vertex count: " + count.value);

    await dc.close();
})

main();
```