Как я могу аннотировать две разные Cloud Armor BackendConfigs для службы - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть две политики Cloud Armor. Политика «А» позволяет нашей офисной сети подключаться к конкретным c сервисам. Политика «B» позволяет клиенту службы использовать API.

Я не могу добавить правило политики «B» в политику «A», потому что тогда правило (ip клиентов) доступ ко всем услугам, к которым применяется Политика «А». Поэтому я отделил его от автономной политики "B".

Так что теперь у меня есть два разных ресурса BackendConfig. Один из них ссылается на политику «А», а другой - на политику «В».

Следующим шагом, который я предпринял, было каким-то образом применить оба серверных конфигурации облачной брони к одной указанной c службе. Офисная сеть должна иметь доступ к этим услугам плюс IP нашего клиента. Вот как я думал, что это может работать:

metadata:
  annotations:
    beta.cloud.google.com/backend-config: '{"default":{"policy-a-cloud-armor-backend-config","policy-b-cloud-armor-backend-config"}}'

К сожалению, это не работает. На панели политики в GCP появляется следующее предупреждение:

This policy has not been applied to any targets yet, so the policy will not affect any traffic.

Есть идеи, как сделать этот эксклюзивный доступ возможным?

1 Ответ

0 голосов
/ 27 апреля 2020

Это уведомление This policy has not been applied to any targets yet, so the policy will not affect any traffic указывает, что политика безопасности не привязана ни к одной из целей через конфигурацию и аннотации бэкэнда.

Синтаксис аннотации не соответствует документации: поле ports отсутствует. Должно быть так:

{"ports": {"http":"config-http", "http2" :"config-http2"}, "default": "config-default"} 

См. Связывание порта службы с BackendConfig

Вряд ли возможно применить две разные политики безопасности к одному и тому же набору, например: сервис / порт.

В качестве обходного пути вы можете попробовать дополнительную услугу со специальной политикой безопасности, включающей правила для обоих клиентов.

...