Как создать консоль ACL, которая разрешает доступ к kv-группе только по токену?

Я пытаюсь понять систему ACL Консула, и кажется невозможным создать ACL, который разрешает доступ к некоторому ключу только по токену с политикой по умолчанию "allow":

user@server01:~$ cat /etc/consul/conf.d/acl.json 
{
  "acl_datacenter": "dc-example-com",
  "acl_master_token": "00000000-1111-2222-3333-444444444444",
  "acl_default_policy": "allow",
  "acl_down_policy": "allow"
}

Я создал клиентское правило в правилах ACL:

key "group1/" {
  policy = "write"
}

Я хочу, чтобы консул разрешил записи в v1/kv/group1/* только через токен, полученный по моему новому правилу.

Трудно просто изменить default_policy, чтобы отрицать, потому что это производство.

1 ответ

Решение

Похоже, я нашел обходной путь:

Anonymous token:
key "group1/" {
    policy = "deny"
}

acl_group1_allow:
    key "group1/" {
        policy = "write"
    }

Да, насколько я знаю, вы можете создать политику по умолчанию (для всех) - "запретить", а для существующих групп - "разрешить", и члены этих групп получат доступ в соответствии с ACL этой группы.

Другие вопросы по тегам