기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Signature Version 4 서명으로 Gremlin 콘솔을 사용하여 Neptune에 연결
서명 버전 4 인증을 사용하여 Gremlin 콘솔을 사용하여 Amazon Neptune에 연결하는 방법은 버전 이상을 사용하는지 또는 3.4.11
이전 버전을 TinkerPop 사용하는지에 따라 다릅니다. 어느 경우든 다음과 같은 사전 조건이 필요합니다.
요청에 서명하는 데 필요한 IAM 자격 증명이 있어야 합니다. AWS SDK for Java 개발자 안내서의 기본 자격 증명 공급자 체인 사용을 참조하십시오.
DB 클러스터에서 사용 중인 Neptune 엔진 버전과 호환되는 Gremlin 콘솔 버전을 설치해야 합니다.
임시 보안 인증 정보를 사용하는 경우 세션 토큰과 마찬가지로 지정된 간격이 지나면 만료되므로, 새 보안 인증 정보를 요청할 때 세션 토큰을 업데이트해야 합니다. 사용 IAM 설명서의 임시 보안 자격 증명을 사용하여 AWS 리소스에 대한 액세스 요청을 참조하십시오.
SSL/를 사용하여 연결하는 데 도움이 TLS 필요하면 을 참조하십시오SSL/구성 TLS.
TinkerPop 3.4.11 이상을 사용하여 Sig4 서명을 통해 Neptune에 연결
TinkerPop 3.4.11 이상에서는 명령으로 설정된 연결에 Sigv4 서명자를 연결하는 방법을 제공하는 방법을 사용할 handshakeInterceptor()
수 있습니다. :remote
Java에 사용되는 접근 방식과 마찬가지로 Cluster
객체를 수동으로 구성한 다음 :remote
명령에 전달해야 합니다.
참고로 이는 :remote
명령이 구성 파일을 사용하여 연결을 형성하는 일반적인 상황과는 상당히 다릅니다. handshakeInterceptor()
를 프로그래밍 방식으로 설정해야 하고 파일에서 구성을 로드할 수 없기 때문에 구성 파일 접근 방식이 효과가 없습니다.
Sig4 서명을 사용하여 그렘린 콘솔 (TinkerPop 3.4.11 이상) 을 연결합니다.
-
Gremlin 콘솔을 실행합니다.
$ bin/gremlin.sh
-
gremlin>
프롬프트가 나타나면amazon-neptune-sigv4-signer
라이브러리를 설치합니다. 이 작업은 콘솔에서 한 번만 수행하면 됩니다.:install com.amazonaws amazon-neptune-sigv4-signer 2.4.0
이 단계에서 문제가 발생하는 경우 Grape 구성 관련 설명서를 참조하는 것이 도움이 될 수 있습니다. TinkerPop
참고
HTTP프록시를 사용하는 경우 이 단계에서
:install
명령이 완료되지 않는 오류가 발생할 수 있습니다. 이 문제를 해결하려면 다음 명령을 실행하여 콘솔에 프록시에 대해 알립니다.System.setProperty("https.proxyHost", "
(the proxy IP address)
") System.setProperty("https.proxyPort", "(the proxy port)
") -
서명을 처리하는 데 필요한 클래스를
handshakeInterceptor()
로 가져옵니다.:import com.amazonaws.auth.DefaultAWSCredentialsProviderChain :import com.amazonaws.neptune.auth.NeptuneNettyHttpSigV4Signer
-
임시 보안 인증 정보를 사용하는 경우 다음과 같이 세션 토큰도 제공해야 합니다.
System.setProperty("aws.sessionToken","(your session token)")
-
다른 방법으로 계정 보안 인증 정보를 설정하지 않은 경우 다음과 같이 계정 보안 인증 정보를 할당할 수 있습니다.
System.setProperty("aws.accessKeyId","
") System.setProperty("aws.secretKey","(your access key)
(your secret key)
") -
Neptune에 연결할
Cluster
객체를 수동으로 구성합니다.cluster = Cluster.build("
(host name)
") \ .enableSsl(true) \ .handshakeInterceptor { r -> \ def sigV4Signer = new NeptuneNettyHttpSigV4Signer("(Amazon region)
", \ new DefaultAWSCredentialsProviderChain()); \ sigV4Signer.signRequest(r); \ return r; } \ .create()Neptune DB 인스턴스의 호스트 이름을 찾는 데 도움이 필요하면 Amazon Neptune 엔드포인트에 연결을 참조하세요.
-
이전 단계에서
Cluster
객체의 변수 이름을 사용하여:remote
연결을 설정합니다.:remote connect tinkerpop.server cluster
-
다음 명령을 입력하여 원격 모드로 전환합니다. 그러면 모든 Gremlin 쿼리가 원격 연결로 전송됩니다.
:remote console
3.4.11 TinkerPop 이전 버전을 사용하여 Sig4 서명을 통해 Neptune에 연결
TinkerPop 3.4.10 이하에서는 아래 설명과 같이 Neptune에서 제공하는 amazon-neptune-gremlin-java-sigv4
라이브러리를 사용하여 콘솔을 Sigv4 서명으로 Neptune에 연결합니다.
Sig4 서명을 사용하여 그렘린 콘솔 (3.4.11 이전 TinkerPop 버전) 을 연결합니다.
-
Gremlin 콘솔을 실행합니다.
$ bin/gremlin.sh
-
gremlin>
프롬프트가 나타나면amazon-neptune-sigv4-signer
라이브러리를 설치합니다. 이 작업은 콘솔에서 한 번만 수행하면 됩니다.:install com.amazonaws amazon-neptune-sigv4-signer 2.4.0
참고
HTTP프록시를 사용하는 경우 이 단계에서 명령이 완료되지 않는 오류가 발생할 수 있습니다.
:install
이 문제를 해결하려면 다음 명령을 실행하여 콘솔에 프록시에 대해 알립니다.System.setProperty("https.proxyHost", "
(the proxy IP address)
") System.setProperty("https.proxyPort", "(the proxy port)
")Grape
구성 TinkerPop 관련 설명서를 참조하는 것도 도움이 될 수 있습니다. -
추출된 디렉토리의
conf
하위 디렉토리에neptune-remote.yaml
이라는 파일을 만듭니다.AWS CloudFormation 템플릿을 사용하여 Neptune DB 클러스터를 생성한 경우 파일이 이미
neptune-remote.yaml
존재합니다. 이 경우 아래 표시된 채널라이저 설정을 포함하도록 기존 파일을 편집하기만 하면 됩니다.그렇지 않으면 다음 텍스트를 파일에 복사하여 바꾸십시오.
(host name)
Neptune DB 인스턴스의 호스트 이름 또는 IP 주소를 입력합니다. 참고로 호스트 이름을 감싼 대괄호([])는 필수입니다.hosts: [
(host name)
] port:8182
connectionPool: { channelizer: org.apache.tinkerpop.gremlin.driver.SigV4WebSocketChannelizer, enableSsl: true } serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: true }} -
중요
요청에 서명하려면 IAM 자격 증명을 제공해야 합니다. 다음 명령을 입력하여 사용자의 자격 증명을 환경 변수로 설정하고 관련 항목을 해당 자격 증명으로 바꿉니다.
export AWS_ACCESS_KEY_ID=
access_key_id
export AWS_SECRET_ACCESS_KEY=secret_access_key
export SERVICE_REGION=us-east-1 or us-east-2 or us-west-1 or us-west-2 or ca-central-1 or sa-east-1 or eu-north-1 or eu-west-1 or eu-west-2 or eu-west-3 or eu-central-1 or me-south-1 or me-central-1 or il-central-1 or af-south-1 or ap-east-1 or ap-northeast-1 or ap-northeast-2 or ap-southeast-1 or ap-southeast-2 or ap-south-1 or cn-north-1 or cn-northwest-1 or us-gov-east-1 or us-gov-west-1
Neptune Version 4 서명자는 기본 보안 인증 정보 공급자 체인을 사용합니다. 보안 인증 정보를 공급하는 추가 방법은 AWS SDK for Java 개발자 안내서의 기본 보안 인증 정보 공급자 체인 사용을 참조하세요.
자격 증명 파일을 사용할 때에도
SERVICE_REGION
변수가 필요합니다. -
.yaml
파일을 사용하여:remote
연결을 설정합니다.:remote connect tinkerpop.server conf/neptune-remote.yaml
-
다음 명령을 입력하여 원격 모드로 전환하면 모든 Gremlin 쿼리가 원격 연결로 전송됩니다.
:remote console