我在单个实例上设置了领事。 web-ui运行正常,但未启用ACL。以前我没有任何配置文件,但现在我在config.json中创建了一个/etc/consul.d/bootstrap/文件,内容如下。

{
    "bootstrap": true,
    "server": true,
    "datacenter": "dc1",
    "acl_datacenter": "dc1",
    "data_dir": "/var/consul",
    "encrypt": "consul keygen output",
    "ca_file": "/etc/consul.d/ssl/ca.cert",
    "cert_file": "/etc/consul.d/ssl/consul.cert",
    "key_file": "/etc/consul.d/ssl/consul.key",
    "verify_incoming": true,
    "verify_outgoing": true,
    "log_level": "INFO",
    "enable_syslog": true
}

比我运行以下命令



其中X.X.X.X是我的实例的私有(private)IP

但是没有启用ACL。


{
    "bootstrap": false,
    "server": false,
    "log_level": "DEBUG",
    "enable_syslog": true,
    "datacenter": "dc1",
    "data_dir": "/var/consul",
    "ui_dir": "/home/ubuntu/dist",
    "acl_datacenter": "dc1"
    "encrypt": "SECRET"
}


{
    "bootstrap": false,
    "server": true,
    "log_level": "DEBUG",
    "enable_syslog": true,
    "datacenter": "dc1",
    "data_dir": "/var/consul",
    "acl_datacenter": "dc1",
    "acl_default_policy": "allow",
    "encrypt": "SECRET"
}

工作配置文件
{
    "bootstrap": true,
    "server": true,
    "log_level": "DEBUG",
    "enable_syslog": true,
    "datacenter": "dc1",
    "addresses" : {
      "http": "X.X.X.X"
    },
    "bind_addr": "X.X.X.X",
    "node_name": "X.X.X.X",
    "data_dir": "/tmp/consul",
    "ui_dir": "~/dist",
    "acl_datacenter": "dc1",
    "acl_master_token": "secret",
    "encrypt": "secret"
}

现在运行以下命令
consul agent -config-dir ~/server -ui-dir ~/dist -bootstrap true -client=X.X.X.X

最佳答案

您在配置中缺少主 token 。如果您添加此,
"acl_master_token": "secret",并且在您的UI中使用相同的 token ,您应该能够使用ACL。

注意:如果使用的是单节点实例,请不要将acl_token属性设置为与主 token 相同。这意味着有权访问UI的任何人都可以访问master token,实际上绕过了所有ACL规则。仅应在服务器节点上设置此属性。

在使其正常运行之后,我创建了一个截屏视频,以演示如何在单个服务器上设置consulHere is the link

关于amazon-web-services - 在领事中未启用ACL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33345310/

10-16 22:30