远程控制几个执政官堆栈安全的概念



简介

我正在运行多个,我称之为执政官堆栈。它们看起来总是这样:-领事服务器1台-9个执政官节点

每个节点都提供一些服务——只是一个经典的web堆栈等等(对于这个问题不感兴趣(。Gossip用于保护服务器被任意节点查询并泄露数据。几个执政官模板/tiller"观察者"正在等待动态配置KV更改上的节点/服务

目标

假设我有10个这样的堆栈(数字是动态的(,我想建立一个网络应用程序,使用特定的逻辑控制每个堆栈的执政官KV

我现在拥有的

我创建了一个thor+外交家工具来包装我创建特定KV条目所需的逻辑。我在堆栈中的"控制器"容器上运行它时实现了它,并与localhost:8500进行了交谈,然后localhost:8500使用八卦进行身份验证并写入服务器。

问题

我现在用什么概念来移动这个工具一个远程(不是执政官堆栈的一部分(服务器,同时能够写入每个执政官堆栈KV。

当然,我可以使用外交家连接到stack1.tld:8500,但这意味着我打开HTTP端口,需要以某种方式保护它(不受八卦的保护?以某种方式,只有RPC?(,并保护/ui。

  • 有没有更好的方法连接到每个堆栈
  • 使用一个带有基本身份验证的nginx代理服务器来保护访问
  • 也在该端口上使用ssl-interception,并且仍然使用8500,或者更确切地说,使用配置的https端口(在consul https API中(
  • 使用ACL来保护访问?(大量设置允许堆栈成员访问-需要TLS吗?(

一般来说,在不使用TLS(客户端需要大量工作才能设置(的情况下,什么概念适合这种情况需要与堆栈服务器通信,以便安全地写入其KV。

如果我错过了什么,很乐意添加您对的任何要求

这个问题的答案是

  1. 在执政官服务器上启用ACL

{ "acl_datacenter": "stable", "acl_default_policy": "deny", "acl_down_policy": "deny" }

  1. 使用write/write/write创建通用acl令牌

consul-cli acl create --management=false --name="general_node" --rule "key::write" --rule "event::write" --rule "service::write" --token=<master-token> 确保在这里使用您的主令牌,在服务器启动期间创建

  1. 也可以选择配置八卦,让你的客户端加密通信(否则ACL就没有意义了(

  2. 将通用令牌添加到您远程使用的领事客户端,以便能够与远程领事交谈-因为这位领事将不再公开做任何事情(没有令牌(

最新更新