Consul Config and Discovery - хранилище ключей и значений только для чтения, права на запись для сервисов - PullRequest
0 голосов
/ 24 мая 2019

Я хочу использовать Консул для Обнаружения Услуг и в качестве Распределенной Конфигурации для моих микросервисов. Без какой-либо защиты моя система работает нормально, но я не хочу, чтобы каждый пользователь мог изменять значения в хранилище значений ключей. Поэтому я попытался ввести защиту с помощью ACL Консула, но теперь мои службы больше не могут регистрироваться.

Я установил политику по умолчанию в своей конфигурации HCL на «deny» и попытался установить политику записи для каждой службы, чтобы они могли зарегистрироваться в Consul и политику чтения для хранилища ключей-значений, поэтому значения могут только читать через пользовательский интерфейс. Но мои услуги получают 403 во время регистрации.

agent.hcl

service_prefix "" {
  policy = "write"
}
key_prefix "" {
  policy = "read"
}

консул policy.hcl

service_prefix "" {
  policy = "write"
}
key_prefix "" {
  policy = "read"
}

Я запустил сервер с:

consul agent -config-file agent.hcl -dev

И добавил политику (после получения и установки токена ACL):

consul acl policy create -name consul-server-one -rules @consul-policy.hcl
  1. Как определить политику только для чтения для хранилища значений ключей в пользовательском интерфейсе и политику записи для служб?
  2. Можно ли запустить Consul с конфигурацией ACL (вместо доставки после процесса запуска)?
  3. Какие ресурсы ACL подходят для моей проблемы? Являются ли service_prefix и key_prefix правильным выбором?

1 Ответ

0 голосов
/ 04 июня 2019

Я упустил тот факт, что вам нужно сгенерировать токены для политики.

consul acl token create -description "Token description" -policy-name "consul-server-one" -token "(your global token)"

И я хотел использовать токен по умолчанию, который можно установить с помощью:

consul acl set-agent-token -token "(your global token)" default (your generated token)
...