Брандмауэр GCP App Engine не отображается на консоли GCP при применении с использованием terraform - PullRequest
0 голосов
/ 12 июля 2020

Я использую terraform для импорта состояния существующего GCP App Engine Resource firewall rules, чтобы позже можно было управлять правилами брандмауэра с помощью terraform. Также планирую добавить еще одно дополнительное правило поверх него с priority 999.

Я импортировал, используя команду ниже

terraform import google_app_engine_firewall_rule.newrule <project>/1000

После этого я выполнил terraform show, чтобы определить состояние существующего ресурсов и создал из него main.tf. Мои существующие правила следующие:

 PRIORITY    ACTION     SOURCE_RANGE          DESCRIPTION
 1000        DENY     X.X.X.X/32
 2147483647  ALLOW           *                 The default action.

После добавления информации о новом брандмауэре в main.tf файл выглядит следующим образом:

  # google_app_engine_firewall_rule.default:
  resource "google_app_engine_firewall_rule" "default" {
    action       = "ALLOW"
    description  = "The default action."
    priority     = 2147483647
    project      = "<<project>>"
    source_range = "*"

  timeouts {}
 }

 # google_app_engine_firewall_rule.newrule:
 resource "google_app_engine_firewall_rule" "newrule" {
     action       = "DENY"
     priority     = 1000
     project      = "<<project>>"
     source_range = "X.X.X.X/32"

      timeouts {}
    }

 resource "google_app_engine_firewall_rule" "newrule1" {
     action       = "DENY"
     priority     = 999
     project      = "<<project>>"
     source_range = "X.X.X.X/32"

     timeouts {}
   }

terraform plan не показал ошибок и terraform apply выполнено успешно. Проверка с помощью команды gcloud выглядит, что правило добавлено успешно. Первое правило снизу выводит с priority 999.

    $ gcloud app firewall-rules list
     PRIORITY    ACTION  SOURCE_RANGE           DESCRIPTION
     999         DENY    X.X.X.X/32
     1000        DENY    X.X.X.X/32
    2147483647   ALLOW       *                 The default action.

Но когда я проверяю его из внешнего интерфейса с помощью GCP-console, я не могу найти правило. Он по-прежнему показывает старые правила.

   PRIORITY     ACTION  SOURCE_RANGE           DESCRIPTION
     1000        DENY    X.X.X.X/32
    2147483647   ALLOW       *                 The default action.

Пожалуйста, поясните это поведение.

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Проблема, похоже, связана с browser refre sh. Я просматривал различные пункты меню из App Engine Dashboard, думая, что он обновит sh страницу firewall, но это не так. Когда я обновил его из browser, новые firewall rules отображаются.

Кроме того, когда я добавляю новое правило брандмауэра с помощью команды gcloud, как показано ниже, чтобы отразить его в GUI Console, мне нужно сделать browser refresh

  gcloud app firewall-rules create 997 --action=allow --source-range=35.X.X.X/32

Может будет кнопка refre sh в GUI будет полезна

1 голос
/ 13 июля 2020

Когда я применил ваш файл main.tf в Cloud Shell с помощью terraform apply, он показал мне следующую ошибку:

Error: Error creating FirewallRule: googleapi: Error 400: Cannot add rule at priority 2147483647. The priority for new rules must be less than the priority 2
147483647 for the Default Action.

Когда я изменил приоритет на 147483646, он был успешно применен.

...