启用 IAM 数据库身份验证后无法连接到 AWS Neptune 数据库
unable to connect to AWS Neptune DB after enabling IAM DB authorisation
我在启用 IAM 数据库授权后尝试连接到 AWS neptune 数据库,但它无法连接并失败并出现以下错误。
{"code":"AccessDeniedException","requestId":"68bbc87a-cbf6-31d3-5829-91f32062239f","detailedMessage":"缺少身份验证令牌"}
然而,它在禁用 IAM DB 授权后工作正常。
我已经创建了一个策略(使用 link https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-policy.html)来连接到海王星数据库并将该策略附加到 IAM 角色,该角色正在添加到 ec2 实例。我可以通过 8182 端口远程登录到海王星数据库端点。
有人可以帮忙吗。
启用 IAM 身份验证后,必须使用 SigV4 对对 HTTP 端点的请求进行签名。您可以使用 awscurl
之类的工具来执行此操作。
这是 Amazon Neptune 文档中的一个示例,我对其进行了稍微修改以使其指向 /status 端点。
正确设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量(并且
如果您使用的是临时凭证,也可以 AWS_SECURITY_TOKEN)。您也可以将这些作为参数传递给 awscurl
。然后使用诸如(将区域更改为您所在的区域)之类的命令。
awscurl -X GET --service neptune-db --region us-west-2 "$SYSTEM_ENDPOINT/status"
您可以通过 AWS CLI 工具使用 sts
获取临时凭证,如下所示:
aws sts get-session-token
如果您 运行 在 EC2 实例上,只要 EC2 实例附加了可以访问 Neptune 的角色,您就可以从元数据服务获取令牌。此处有更多详细信息:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
我在启用 IAM 数据库授权后尝试连接到 AWS neptune 数据库,但它无法连接并失败并出现以下错误。
{"code":"AccessDeniedException","requestId":"68bbc87a-cbf6-31d3-5829-91f32062239f","detailedMessage":"缺少身份验证令牌"}
然而,它在禁用 IAM DB 授权后工作正常。
我已经创建了一个策略(使用 link https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth-policy.html)来连接到海王星数据库并将该策略附加到 IAM 角色,该角色正在添加到 ec2 实例。我可以通过 8182 端口远程登录到海王星数据库端点。
有人可以帮忙吗。
启用 IAM 身份验证后,必须使用 SigV4 对对 HTTP 端点的请求进行签名。您可以使用 awscurl
之类的工具来执行此操作。
这是 Amazon Neptune 文档中的一个示例,我对其进行了稍微修改以使其指向 /status 端点。
正确设置 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量(并且
如果您使用的是临时凭证,也可以 AWS_SECURITY_TOKEN)。您也可以将这些作为参数传递给 awscurl
。然后使用诸如(将区域更改为您所在的区域)之类的命令。
awscurl -X GET --service neptune-db --region us-west-2 "$SYSTEM_ENDPOINT/status"
您可以通过 AWS CLI 工具使用 sts
获取临时凭证,如下所示:
aws sts get-session-token
如果您 运行 在 EC2 实例上,只要 EC2 实例附加了可以访问 Neptune 的角色,您就可以从元数据服务获取令牌。此处有更多详细信息:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html