保护群集

理解 DC/OS 中的安全特性

一般安全概念

网络安全

您必须采用适当的网络机制,防止未经授权访问群集节点。

根据群集环境,这可能包括:

  • 使用物理或虚拟子网隔离 ;
  • 使用路由器防火墙或安全组限制对端口的访问;
  • 在节点上使用防火墙软件(例如,iptables)来限制对端口的访问。

使用这些机制提供以下连接:

  • 在代理节点之间:允许在所有端口上建立连接。
  • 从管理节点到代理节点:允许在所有端口上建立连接。
  • 从代理节点到管理节点:允许在 TCP 端口 8201 和 26257 之外的所有端口上建立连接。
  • 从外部设备到管理节点:阻止除 TCP 端口 80 和 443 之外的所有端口上的连接请求。
  • 从外部设备到专用代理节点:阻止所有端口上的连接请求。
  • 从外部设备到共用代理节点:阻止所有端口上的连接请求 广告端口范围.

您可能希望向外部设备开放端口 22,以允许使用安全外壳()的管理任务。). 虽然 DC/OS 组件当前不支持专用网络选择,但您可以将 ssh 配置为可以使用 指示访问专用管理网络。

安全区

在最高级别上,我们可以区分 DC/OS 部署中的三个安全区 ,即管理、私有和公共安全区。

Admin Router 控制对管理区的访问。

传入 DC/OS 群集的 HTTP 请求通过 Admin Router 代理(使用 Nginx ,其核心是 Admin Router 拒绝访问大多数 HTTP 端点以获取未经身份认证的请求。为了请求进行身份认证,它必须在其身份认证标头中提供有效的认证令牌。可通过身份验证流程获得令牌。请参阅 安全文档了解详情。

经过验证的用户有权在其群集中执行任何操作。除了是否有权访问服务之外,DC/OS 目前还没有细分的访问权限控制。

保护 Admin Router 的步骤

默认情况下,Admin Router 将允许未加密的 HTTP 流量。我们认为这样不安全,您必须提供有效的 TLS 证书并将所有 HTTP 流量重定向到 HTTPS,才能妥善保障安全访问群集。在您获得有效的 TLS 证书之后,在每个管理节点上安装证书。将证书和私钥复制到众所周知的位置,如在 位置下。/etc/ssl/certs.

如果您在 Admin Router 前运行 HAProxy,您应该保护它们之间的通信。有关保护您的通信的信息,请参阅.

可选的公共区是运行公共可访问的应用程序的地方。通常,此区中仅运行少量代理节点。边缘路由器将流量转发给专用区中运行的应用程序。

公共区中的代理节点被标记为特殊角色,以便只能在此处安排特定任务。这些代理节点具有公共和专用 IP 地址,也只能在其 防火墙中打开特定端口。

默认情况下,使用基于云的安装程序(例如 AWS CloudFormation 模板)时,大量端口都会接触到公共区的互联网。在生产系统中,这些端口全都会暴露出来。建议您关闭除 80 和 443 之外的所有端口(针对 HTTP/HTTPS 流量),并使用带有 HTTPS 的 Marathon-LB来管理入口流量。

典型 AWS 部署

包括 AWS 负载均衡器的典型 AWS 部署如下所示: