我有以下问题,我不确定我做的不对还是没有按预期工作。
- 我有一个启用了 ACL 的领事集群。
- ACL 默认策略设置为 DENY ("acl_default_policy": "deny",)
- 现在我一直使用主要的管理 CONSUL 令牌进行通信。
- 我还使用管理令牌配置了 VAULT 和 NOMAD,并且“vault.service.consul”和“nomad.service.consul”正在 consul 中注册
- 我专门为 NOMAD 配置了带有 consul 管理令牌的 consul 节,以便能够与 consul 通信并自行注册。
consul {
address = "127.0.0.1:8500"
token = "management token"
}
我正在使用 NOMAD 来安排 Docker 容器。那些 docker 容器需要从 CONSUL KV 存储中填充配置文件,我使用 consul 模板(当没有启用 ACL 时)。
现在我的问题是,当我在 CONSUL 中启用 ACL 时 - 由于 ACL,docker 容器无法从 CONSUL KV 存储中获取 403 错误(权限拒绝)的值。我想,因为我已经在 NOMAD 中配置了 consul 节,例如:
consul {
address = "127.0.0.1:8500"
token = "management token"
}
使用 NOMAD 安排的所有作业都将能够使用该管理令牌,并且 Docker 容器将能够与 CONSUL KV 通信?!
如果我将管理令牌作为 Docker 环境变量放在 NOMAD 作业描述中 - 它会起作用:
env {
"CONSUL_HTTP_TOKEN" = "management token"
}
但是我不想将该管理令牌放在职位描述中,因为它们将在 git 中检查。
我是不是做错了什么,或者这根本不起作用?
先感谢您。