기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Gremlin 콘솔에서 IAM 인증을 사용하여 Amazon Neptune 데이터베이스에 연결
서명 버전 4 인증과 함께 Gremlin 콘솔을 사용하여 Amazon Neptune에 연결하려면 requestInterceptor()를 사용하여 SigV4 서명자를 :remote 명령에 의해 설정된 연결에 연결합니다. 이렇게 하려면 Cluster 객체를 수동으로 구성한 다음 :remote 명령에 전달해야 합니다.
참고로 이는 :remote 명령이 구성 파일을 사용하여 연결을 형성하는 일반적인 상황과는 상당히 다릅니다. requestInterceptor()를 프로그래밍 방식으로 설정해야 하고 파일에서 구성을 로드할 수 없기 때문에 구성 파일 접근 방식이 효과가 없습니다.
참고
다음 예제에서는 TinkerPop 3.6.6에 도입requestInterceptor()된를 사용합니다. 3.6.6 이전(3.5.5 이상)의 TinkerPop 버전을 사용하는 경우 아래 코드 예제requestInterceptor()에서 handshakeInterceptor() 대신를 사용합니다.
다음과 같은 사전 조건이 필요합니다.
요청에 서명하는 데 필요한 IAM 보안 인증 정보가 있어야 합니다. AWS SDK for Java 개발자 안내서의 기본 자격 증명 공급자 체인 사용을 참조하세요.
DB 클러스터에서 사용 중인 Neptune 엔진 버전과 호환되는 Gremlin 콘솔 버전을 설치해야 합니다.
임시 보안 인증 정보를 사용하는 경우 세션 토큰과 마찬가지로 지정된 간격이 지나면 만료되므로, 새 보안 인증 정보를 요청할 때 세션 토큰을 업데이트해야 합니다. IAM 사용 설명서의 임시 보안 자격 증명을 사용하여 AWS 리소스에 대한 액세스 요청을 참조하세요.
SSL/TLS를 사용한 연결에 대한 도움말은 SSL/TLS 구성을 참조하세요.
Sig4 서명으로 Gremlin 콘솔 연결
-
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)") -
서명을 처리하는 데 필요한 클래스를
requestInterceptor()로 가져옵니다.:import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider :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) \ .requestInterceptor { r -> \ def sigV4Signer = new NeptuneNettyHttpSigV4Signer("(Amazon region)", \ DefaultCredentialsProvider.create()); \ sigV4Signer.signRequest(r); \ return r; } \ .create()Neptune DB 인스턴스의 호스트 이름을 찾는 데 도움이 필요하면 Amazon Neptune 엔드포인트에 연결을 참조하세요.
-
이전 단계에서
Cluster객체의 변수 이름을 사용하여:remote연결을 설정합니다.:remote connect tinkerpop.server cluster -
다음 명령을 입력하여 원격 모드로 전환합니다. 그러면 모든 Gremlin 쿼리가 원격 연결로 전송됩니다.
:remote console