ACL 未在领事中启用
ACL not getting enabled in consul
我在单个实例上设置了 consul。 web-ui
是 运行ning 完美,但 ACL 未启用。以前我没有任何配置文件,但现在我在 /etc/consul.d/bootstrap/
中创建了一个包含以下内容的 config.json
文件。
{
"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
}
比我运行下面的命令
consul agent -server -bootstrap -data-dir /tmp/consul -ui-dir
/home/ubuntu/dist/ -client=X.X.X.X
其中 X.X.X.X
是我的实例的私有 ip
但是 ACL 没有被启用。
/etc/consul.d/server/config.json
{
"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"
}
/etc/consul.d/server/config.json
{
"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
您的配置中缺少主令牌。如果你加上这个,
"acl_master_token": "secret"
,并在您的 UI 中使用相同的令牌,您应该可以使用 ACL。
注意:如果您使用的是单节点实例,请不要将 acl_token
属性 设置为与您的主令牌相同。这意味着任何有权访问 UI 的人都可以访问 master token
,基本上可以绕过所有 ACL 规则。此 属性 应仅在服务器节点上设置。
得到它 运行 之后,我创建了一个截屏视频来演示如何在单个服务器上设置 consul
。 Here is the link
我在单个实例上设置了 consul。 web-ui
是 运行ning 完美,但 ACL 未启用。以前我没有任何配置文件,但现在我在 /etc/consul.d/bootstrap/
中创建了一个包含以下内容的 config.json
文件。
{
"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
}
比我运行下面的命令
consul agent -server -bootstrap -data-dir /tmp/consul -ui-dir /home/ubuntu/dist/ -client=X.X.X.X
其中 X.X.X.X
是我的实例的私有 ip
但是 ACL 没有被启用。
/etc/consul.d/server/config.json
{
"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"
}
/etc/consul.d/server/config.json
{
"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
您的配置中缺少主令牌。如果你加上这个,
"acl_master_token": "secret"
,并在您的 UI 中使用相同的令牌,您应该可以使用 ACL。
注意:如果您使用的是单节点实例,请不要将 acl_token
属性 设置为与您的主令牌相同。这意味着任何有权访问 UI 的人都可以访问 master token
,基本上可以绕过所有 ACL 规则。此 属性 应仅在服务器节点上设置。
得到它 运行 之后,我创建了一个截屏视频来演示如何在单个服务器上设置 consul
。 Here is the link