【问题标题】:Consul Key/value not working when acl enbled启用acl时Consul键/值不起作用
【发布时间】:2021-02-06 04:29:16
【问题描述】:

当我将 Spring 微服务配置为启用 acl 时,领事无法从领事读取键/值。

"acl":{ “启用”:真, "default_policy":"deny", “启用令牌持久性”:真, “down_policy”:“扩展缓存”, “代币”:{ “主”:“72bef82a-5fdd-225e-5561-c07001492b22” } }

当使 default_policy 允许我能够访问键值时。

我想确保 default_policy 拒绝。

请让我知道我在这里缺少什么?我需要任何政策吗?

【问题讨论】:

    标签: acl consul


    【解决方案1】:

    您需要创建一个 ACL 策略,该策略授予对所需 KV 路径的读取(和可选写入)访问权限。例如:

    # spring-cloud-consul-kv-policy.hcl
    #
    key_prefix "env/prod/app/springapp" {
      # Grant read and write permissions for the specified prefix.
      # Change to policy = 'read' if write is not needed.
    
      policy = "write"
    }
    

    使用consul acl policy create 创建策略。

    consul acl policy create \
      -name="SpringCloudAppPolicy" \
      -description="ACL policy for my SpringCloud app" \
      -rules=@spring-cloud-consul-kv-policy.hcl
    

    然后创建一个令牌并使用consul acl token create 分配此策略的权限。

    consul acl token create -policy-name="SpringCloudAppPolicy"
    

    令牌的 Secret ID 必须设置为 Spring Cloud Consul 中 spring.cloud.consul.config.acl-token 应用程序属性的值(参见 https://cloud.spring.io/spring-cloud-consul/reference/html/appendix.html)。

    执行这些步骤后,您的应用程序应该能够使用提供的 ACL 令牌从 Consul KV 存储中检索其配置。

    我建议阅读https://learn.hashicorp.com/tutorials/consul/access-control-setup-production,了解有关使用 ACL 保护 Consul 的更多信息。

    【讨论】:

    • 感谢您的快速回复。是的 试过一样。仍然相同的错误 ACL 配置:“acl”:{“启用”:true,“default_policy”:“deny”,“enable_token_persistence”:true,“down_policy”:“extend-cache”,“tokens”:{“master”: "72bef82a-5fdd-225e-5561-c07001492b22" } } spring.cloud.consul.config.acl-token=7e89b276-ca56-a3e5-7029-56f1e1d669bf 使用主密钥作为配置 acl 令牌。原因:java.lang.IllegalArgumentException:无法解析值“${testkey}”中的占位符“testkey”
    • Consul 中是否有任何错误记录表明来自 Spring Cloud 的 API 调用失败的原因?令牌7e89b276-ca56-a3e5-7029-56f1e1d669bf 与您配置为主令牌的不同。这个令牌是否存在于 Consul 中?
    • 是的,密钥存在于主令牌中。我找到了路由原因,我在bootstrap.properties中添加了spring.cloud.consul.config.acl-token。它的工作原理是弹簧将加载引导程序 1st。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多