Как я могу добавить аннотации к двум различным конфигурациям BackendConfigs Cloud Armor для службы

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

Я не могу добавить правило политики «B» к политике «A», потому что тогда правило (IP-адрес клиента) будет иметь доступ ко всем службам, к которым применяется политика «A». Поэтому я выделил его в отдельную Политику «Б».

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

Следующим шагом, который я сделал, было то, что я каким-то образом применил обе конфигурации бэкэнда облачной брони к одной конкретной службе. Офисная сеть должна иметь доступ к этим службам плюс 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.

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


comment
Может быть, вы пытаетесь применить политику безопасности Cloud Armor к типу службы NodePort во время работы с Ingress?   -  person mebius99    schedule 22.04.2020
comment
Синтаксис аннотации не выглядит совместимым с документацией: '{"ports": {"http":"config-http", "http2" :"config-http2"}, "default": "config-default"}'; , поле ports отсутствует.   -  person mebius99    schedule 22.04.2020


Ответы (1)


Это уведомление 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.

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

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

person mebius99    schedule 27.04.2020