本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置网络、安全组和 IAM 身份验证
在 Amazon ECS 或 Amazon EKS 上进行容器化部署需要正确的网络配置和 IAM 凭证管理才能连接到 Neptune。
安全组清单
Neptune 集群安全组必须允许来自 Amazon EKS 节点或容器 CIDR 范围的端口 8182(或为海王星集群配置的自定义端口)上的入站 TCP。
如果您使用带有自定义网络的 Amazon VPC CNI 插件,请验证 pod 子网是否有通往 Neptune 子网的路由。
Neptune 必须与您的亚马逊 ECS 或 Amazon EKS 集群位于同一个亚马逊 VPC 中,或者通过亚马逊 VPC 对等互连或 Transit Gateway 进行连接。
从容器内部验证连接
在调试应用程序级问题之前,请通过在容器内部运行以下命令之一来确认网络路径:
成功的响应确认安全组、路由和 DNS 解析均正常运行。超时表示存在网络级别的问题。
刷新 IAM 凭证
如果您对 Neptune 使用 IAM 身份验证,则您的 pod 必须在证书过期之前刷新证书。对于新的部署,我们建议使用 Amazon EKS Pod 标识。服务账户的 IAM 角色 (IRSA) 也得到支持和广泛使用。
无论采用哪种方法,都要在身份验证生成器函数中检索凭证,而不是在启动时检索一次。IRSA 和 Pod 身份令牌将在 1 小时后过期。如果您在初始化时缓存凭证,则请求将在令牌过期AccessDeniedException: security token expired后失败。
对于 gremlin-go 来说:在传递给的
gen函数cfg.Credentials.Retrieve(ctx)内部调用。NewDynamicAuth对于 Java:
NeptuneGremlinClient与在每个新HandshakeInterceptor连接上刷新 Sigv4 签名的配合使用。
Cross-account access
Neptune 不支持直接跨账户 IAM 身份验证。如果您的 Amazon EKS 集群与您的 Neptune 集群位于不同的 AWS 账户中,则该容器必须先在 Neptune 账户中扮演角色,然后才能进行身份验证。
图表浏览器的入口配置
如果您在容器化环境中运行 Graph Explorer/explorer在 Amazon EKS 上,配置您的入口控制器规则以允许所有路径。在 Amazon ECS 上,配置您的 Application Load Balancer 目标组和侦听器规则,以转发指向 Graph Explorer 容器的所有路径。Graph Explorer 的代理调用/summary/gremlin/openCypher、、和/sparql。 Path-restricted 路由规则会以静默方式中断代理。