Amazon web services Can';t通过SSH隧道Sigv4访问Amazon Neptune

Amazon web services Can';t通过SSH隧道Sigv4访问Amazon Neptune,amazon-web-services,amazon-neptune,sigv4,Amazon Web Services,Amazon Neptune,Sigv4,我正在尝试从SSH隧道访问Neptune群集状态端点。我可以在我的bastion主机上点击它,但通过ssh隧道进行操作时,我会得到: https://localhost:8182/status 我该怎么做?看来我需要一些带sigv4的东西。我希望在我的浏览器中点击此按钮后看到响应工作 我还尝试了awscurl设置环境变量后,我得到: raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnecti

我正在尝试从SSH隧道访问Neptune群集
状态
端点。我可以在我的bastion主机上点击它,但通过ssh隧道进行操作时,我会得到:

https://localhost:8182/status

我该怎么做?看来我需要一些带sigv4的东西。我希望在我的浏览器中点击此按钮后看到响应工作

我还尝试了
awscurl
设置环境变量后,我得到:

    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='localhost', port=8182): Max retries exceeded with url: /status (Caused by SSLError(SSLCertVerificationError("hostname 'localhost' doesn't match either of '*.id.us-east-2.neptune.amazonaws.com', '*.id.us-east-2.neptune.amazonaws.com', '*.cluster-custom-id.us-east-2.neptune.amazonaws.com', '*.cluster-ro-id.us-east-2.neptune.amazonaws.com'")))

当使用SSH隧道使用localhost访问Neptune时,需要显式地将Neptune端点作为主机头传递,以便对请求进行签名。考虑下面的AWSCOLL示例:

awscurl -k --service neptune-db --access_key $ACCESS_KEY --secret_key $SECRET_KEY --region <neptune_instance_region> --session_token $SESSION_TOKEN --header 'host: <neptune-cluster-endpoint-withouthttp-withoutport>' https://localhost:8182/status
awscurl-k--服务neptune db--访问密钥$access\u key--机密密钥$secret\u key--区域--会话令牌$session\u令牌--头'host:'https://localhost:8182/status

如果没有显式主机头,则将使用带有无效签名的“localhost”对请求进行签名。

当使用SSH隧道使用localhost访问Neptune时,需要显式地将Neptune端点作为主机头传递以对请求进行签名。考虑下面的AWSCOLL示例:

awscurl -k --service neptune-db --access_key $ACCESS_KEY --secret_key $SECRET_KEY --region <neptune_instance_region> --session_token $SESSION_TOKEN --header 'host: <neptune-cluster-endpoint-withouthttp-withoutport>' https://localhost:8182/status
awscurl-k--服务neptune db--访问密钥$access\u key--机密密钥$secret\u key--区域--会话令牌$session\u令牌--头'host:'https://localhost:8182/status

如果没有显式的主机头,请求将使用带有无效签名的“localhost”进行签名。

请参阅这个问题的答案@KelvinLawrence我仍然无法使用ssh隧道。如何在浏览器中运行它?如下面的答案所示,您的最佳选择是使用类似awscurl的东西,就像启用了IAM并且您正在使用SigV4一样,然后需要对请求进行签名。如果没有像附加插件这样的东西,浏览器将不知道如何做到这一点。请查看这个问题的答案@KelvinLawrence我仍然无法使用ssh隧道。如何在浏览器中运行它?如下面的答案所示,您的最佳选择是使用类似awscurl的东西,就像启用了IAM并且您正在使用SigV4一样,然后需要对请求进行签名。如果没有像附加插件这样的东西,浏览器将不知道如何做到这一点。