Google Cloud Armor - отсутствует правило по умолчанию - PullRequest
1 голос
/ 25 февраля 2020

Я создал политику безопасности облачной брони, но у нее нет правила по умолчанию. Я запутался, потому что документация противоречит этому.

https://cloud.google.com/compute/docs/reference/rest/beta/securityPolicies

Список правил, которые относятся к этой политике. Всегда должно быть правило по умолчанию (правило с приоритетом 2147483647 и соответствием "*"). Если при создании политики безопасности не предусмотрено никаких правил, будет добавлено правило по умолчанию с действием «разрешить».

$ gcloud beta compute security-policies describe healthcheck
---
creationTimestamp: ''
description: ''
fingerprint: ...
id: '.....'
kind: compute#securityPolicy
labelFingerprint: .....
name: healthcheck
rules:
- action: deny(404)
  description: Block requests to /health
  kind: compute#securityPolicyRule
  match:
    expr:
      expression: request.path.matches('/health')
  preview: false
  priority: 1000
selfLink: https://www.googleapis.com/compute/....

На основании моих тестов поведение по умолчанию выглядит как Allow. Это правило по умолчанию скрыто или я что-то упустил? enter image description here

Правило было создано с помощью Terraform, но я не думаю, что оно имеет значение.

1 Ответ

0 голосов
/ 25 февраля 2020

Ответ на ваш вопрос заключается в том, что существуют разные способы создания политики Cloud Armor. Например, если вы создаете политику через облачную консоль, вам необходимо выбрать тип правила по умолчанию перед созданием политики.

В вашем случае политика была создана с использованием Terraform. Terraform создаст политику практически так же, как если бы вы использовали команды gcloud из Cloud Shell. Использование чего-то вроде Terraform или команд gcloud позволит создать политику Cloud Armor без правила по умолчанию.

Если политика Cloud Armor создается без указания правила (по умолчанию или иным образом), то правило «Разрешить» будет добавлено автоматически. Это поведение описано в ресурсе REST ссылка , которым вы поделились. Следует обратить внимание на то, что может пройти несколько минут, прежде чем появится правило «Разрешить» по умолчанию. В моем тестировании потребовалось минимум 2 минуты, чтобы быть видимым в консоли и через:

gcloud compute security-policies describe [POLICY_NAME]

Обычно при создании политики Cloud Armor указывается правило по умолчанию с требуемым поведением ( step # 2 ). Пример, которым вы поделились, кажется, не обновился в консоли полностью, поэтому не показывает правило «Разрешить» по умолчанию. Однако на основании описания, которое вы предоставили для вашей установки, правило «Разрешить» по умолчанию будет применяться при создании политики Terraform.

Вы всегда можете изменить поведение правила по умолчанию с «Разрешить» на «Запретить-404» (или «Запретить-502»), используя команду:

gcloud compute security-policies rules update 2147483647 --security-policy [POLICY_NAME]  --action "deny-404"

(2147483647 является приоритетом правила по умолчанию, max int32)

...