网络与安全

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

暴露的服务

出于安全考虑,我们默认未启用从 Kubernetes 外部访问数据库集群,而是选择让用户根据其使用情况配置适当的网络访问策略。如果需要此功能,请查阅此存储库中提供的外部暴露说明。

默认情况下,每个节点将暴露

  • 端口 7474 上的 HTTP

  • 端口 7473 上的 HTTPS

  • 端口 7687 上的 Bolt

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

有关 Neo4j 运行所需端口的信息,请参阅 Neo4j 操作手册。Helm Chart 中的默认端口号与其它安装中的默认端口完全一致。

服务地址

此外,集群内部的服务地址将如下所示 — 要确定您的服务地址,只需将 $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”的基础管理用户。

© . All rights reserved.