>백엔드 개발 >Golang >IAM이 활성화된 Neptune 인스턴스에 연결할 때 Neptune에서 잘못된 핸드셰이크 오류가 발생합니다.

IAM이 활성화된 Neptune 인스턴스에 연결할 때 Neptune에서 잘못된 핸드셰이크 오류가 발생합니다.

王林
王林앞으로
2024-02-08 22:20:21674검색

连接到启用 IAM 的 Neptune 实例时,Neptune 抛出错误握手错误

Neptune에서 오류 발생 핸드셰이크 오류는 IAM 지원 Neptune 인스턴스에 연결할 때 흔히 발생하는 문제입니다. IAM(Identity and Access Management)은 AWS 리소스에 대한 액세스를 관리하고 제어하는 ​​Amazon Web Services(AWS)의 기능입니다. 그러나 IAM 지원 Neptune 인스턴스에 연결하려고 하면 핸드셰이크 오류가 발생할 수 있습니다. 이 오류는 IAM 역할에 대한 잘못된 권한이나 Neptune 인스턴스가 잘못 설정되어 발생할 수 있습니다. 이 문제에 대한 대응으로 이 문서에서는 IAM 지원 Neptune 인스턴스에 대한 원활한 연결을 보장하기 위해 이 오류를 해결하는 방법을 자세히 소개합니다.

질문 내용

iam이 활성화된 aws neptune 인스턴스가 있고 인증 없이 CRUD 작업을 수행할 수 있지만 인증을 활성화하면 핸드셰이크 오류 로그에 오류가 발생합니다.

참고: 람다 함수에는 완전한 Neptune 권한이 있습니다

으아악

오류 로그: 연결 상태를 닫힘으로 설정하여 새 연결을 인스턴스화할 수 없습니다. 연결 풀에 대한 새 연결 생성 오류: websocket: 핸드셰이크 오류 'e0104: 성공적인 연결을 설정할 수 없습니다: websocket: 핸드셰이크 오류'

참고: iam 인증이 비활성화되어 있으면 쿼리를 실행할 수 있습니다. 도와주세요.

요청에 서명을 시도했지만 인증에 실패했습니다.

해결 방법

필요한 모든 권한이 부여된 경우 Neptune iam과 함께 작동하려면 코드에 수정해야 할 몇 가지 문제가 있습니다.

  1. neptune의 iam 서명자의 서비스 이름은 neptune-db,而不是 neptune여야 합니다.
  2. 타입*gremlingo.driverremoteconnectionsettings 应为 *gremlingo.driverremoteconnectionsettings.
  3. settings.authinfo.header使用的标头实际上不是签名者返回的标头,而是原始请求的标头,因此应该是settings.authinfo.header = req.header.

모두 종합하면 //signing request 아래의 코드 블록은 다음과 같습니다.

으아악

한 가지 주의할 점은 현재 gremlin-go에서는 인증 토큰의 자동 새로 고침을 허용할 수 있는 방법이 없다는 것입니다. 즉, 만료 후에는 새 연결을 설정해야 합니다.

도움이 되기를 바랍니다.

위 내용은 IAM이 활성화된 Neptune 인스턴스에 연결할 때 Neptune에서 잘못된 핸드셰이크 오류가 발생합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제