网络与安全

如何使用 Neo4j 网络和安全概念

公开的服务

出于安全原因,我们默认情况下未启用从 Kubernetes 外部访问数据库集群的权限,而是选择让用户为其使用配置适当的网络访问策略。如果需要,请查看此存储库中提供的外部访问说明。

默认情况下,每个节点将公开

  • 7474 端口上的 HTTP

  • 7473 端口上的 HTTPS

  • 7687 端口上的 Bolt

可以通过参考 neo4j 的 Docker 文档来配置公开的服务和端口映射。请参阅本文档中的高级配置部分,了解如何更改每个 Pod 中 Docker 容器的配置方式。

请参阅 Neo4j 操作手册,了解 Neo4j 正常运行所需的端口。Helm 图表中的默认端口号与其他安装中的默认端口号完全一致。

服务地址

此外,集群内部的服务地址将按如下方式提供 - 要确定您的服务地址,只需将 $APP_INSTANCE_NAME 替换为您部署 Neo4j 的名称,并将 $NAMESPACE 替换为 Neo4j 所在的 Kubernetes 命名空间。

$NAME-neo4j.$NAMESPACE.svc.cluster.local

任何客户端都可以连接到此地址,因为它是一个 DNS 记录,其中包含指向支持集群的节点的多个条目。例如,bolt+routing 客户端可以使用此地址将连接引导到集群中,但需遵守限制部分中的内容。

集群形成

部署 Neo4j 后,随着 Pod 的创建,集群开始形成。这可能需要长达 5 分钟,具体取决于许多因素,包括 Pod 调度所需的时间以及与 Pod 关联的资源数量。在集群形成期间,Neo4j REST API 和 Bolt 端点可能不可用。几分钟后,Kubernetes 集群内部的 Bolt 端点将可用。

密码

安装后,您的集群将以您提供的 neo4jPassword 设置作为密码启动。该密码存储在附加到部署的 Kubernetes 密钥中。给定一个名为“my-graph”的部署,您可以将密码作为 Kubernetes 中 mygraph-neo4j-secrets 配置项下的“neo4j-password”密钥找到。密码采用 Base64 编码,授权用户可以使用以下命令将其恢复为明文

export NEO4J_PASSWORD=$(kubectl get secrets {{ template "neo4j.secrets.fullname" . }} -o jsonpath='{.data.neo4j-password}' | base64 -d)

或者:如果您设置了 existingPasswordSecret,则应使用该密钥名称。如果设置了 existingPasswordSecretKey,请确保您的 jsonpath 也与此密钥匹配。

此密码适用于名为“neo4j”的基本管理员用户。