Spec-Zone.ru › Chef 16

Ресурс google_compute_firewall

Синтаксис

Для проверки ресурса Google Firewall используется google_compute_firewall

Ресурс Beta

Этот ресурс имеет доступные поля beta. Чтобы получить доступ к этим полям, добавьте beta: true в конструктор ресурса.

Примеры

describe google_compute_firewall(project: 'chef-gcp-inspec', name: 'inspec-gcp-firewall') do
  its('direction') { should cmp 'INGRESS' }
  its('log_config_enabled?') { should be true }
  its('source_tags') { should include 'some-tag' }
end

Проверка, что брандмауэр GCP позволяет доступ SSH по порту 22

describe google_compute_firewall(project: 'chef-inspec-gcp', name: 'firewall-rule') do
  its('allowed_ssh?')  { should be true }
end

Проверка, что брандмауэр GCP не позволяет доступ HTTP по порту 80

describe google_compute_firewall(project: 'chef-inspec-gcp', name: 'firewall-rule') do
  its('allowed_http?')  { should be false }
end

Проверка, что брандмауэр GCP позволяет доступ HTTPS по порту 443

describe google_compute_firewall(project: 'chef-inspec-gcp', name: 'firewall-rule') do
  its('allowed_https?')  { should be true }
end

Проверка направления трафика брандмауэра GCP (например, "INGRESS" или "EGRESS")

describe google_compute_firewall(project: 'chef-inspec-gcp', name: 'firewall-rule') do
  its('direction') { should eq "INGRESS" }
end

Проверка, что список диапазонов исходных IP-адресов брандмауэра GCP не открыт для всего мира

describe google_compute_firewall(project: 'chef-inspec-gcp', name: 'firewall-rule') do
  its('source_ranges') { should_not eq ["0.0.0.0/0"] }
  # or using helpers
  its('direction') { should eq "INGRESS" }
  it { should_not allow_ip_ranges ["0.0.0.0/0"] }
end

Проверка наличия порта/протокола для данного правила брандмауэра

describe google_compute_firewall(project: 'chef-inspec-gcp', name: 'firewall-rule') do
  # similar to the http  / ssh helpers above
  it { should_not allow_port_protocol("22", "tcp") }
  it { should allow_port_protocol("80", "tcp") }
end

Проверка, разрешает ли правило брандмауэра ingress/egress для указанных тегов

describe google_compute_firewall(project: 'chef-inspec-gcp', name: 'firewall-rule') do
  its('direction') { should eq "INGRESS" }
  it { should allow_source_tags ["allow-gcp-tag"] }
  it { should allow_target_tags ["allow-gcp-other-tag"] }
  # stricter
  it { should allow_source_tags_only ["allow-gcp-tag"] }
  it { should allow_target_tags_only ["allow-gcp-other-tag"] }
end

Свойства

Свойства, доступные из ресурса google_compute_firewall:

allowed
Список правил ALLOW, заданных этим брандмауэром. Каждое правило определяет тройку протокол/порт/диапазон портов, описывающую разрешённое соединение.
ip_protocol
IP-протокол, к которому применяется это правило. Тип протокола требуется при создании правила брандмауэра. Это значение может быть одним из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp, ipip) или номером IP-протокола.
ports
Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP или TCP. Каждое значение должно быть целым числом или диапазоном. Если не указано, правило применяется к подключениям через любой порт. Примеры включают: [“22”], [“80”,“443”] и [“12345-12349”].
creation_timestamp
Дата и время создания в формате RFC3339.
denied
Список правил DENY, заданных этим брандмауэром. Каждое правило определяет тройку протокол/порт/диапазон портов, описывающую запрещённое соединение.
ip_protocol
IP-протокол, к которому применяется это правило. Тип протокола требуется при создании правила брандмауэра. Это значение может быть одним из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp, ipip) или номером IP-протокола.
ports
Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP или TCP. Каждое значение должно быть целым числом или диапазоном. Если не указано, правило применяется к подключениям через любой порт. Примеры включают: [“22”], [“80”,“443”] и [“12345-12349”].
description
Необязательное описание этого ресурса. Укажите это свойство при создании ресурса.
destination_ranges
Если указаны диапазоны назначения, брандмауэр будет применяться только к трафику с адресом назначения в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Поддерживается только IPv4.
direction
Направление трафика, к которому применяется этот брандмауэр; значение по умолчанию — INGRESS. Примечание: для INGRESS-трафика не поддерживается указание destinationRanges; для EGRESS-трафика не поддерживается указание sourceRanges или sourceTags.

Возможные значения:

  • INGRESS
  • EGRESS
disabled
Указывает, отключено ли правило брандмауэра, т.е. не применяется ли оно к сети, с которой оно ассоциировано. Если установлено в значение true, правило брандмауэра не применяется, и сеть ведет себя так, как будто его нет. Если это свойство не указано, правило брандмауэра включено.
log_config
Это поле указывает, включено ли ведение журнала для конкретного правила брандмауэра. Если ведение журнала включено, журналы будут экспортированы в Stackdriver.
enable_logging
Это поле указывает, включено ли ведение журнала для конкретного правила брандмауэра. Если ведение журнала включено, журналы будут экспортированы в Stackdriver.
id
Уникальный идентификатор ресурса.
name
Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. То есть, длина должна быть от 1 до 63 символов, и оно должно соответствовать регулярному выражению [a-z]([-a-z0-9]*[a-z0-9])?, что означает, что первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом.
network
URL ресурса сети для этого правила брандмауэра. Если при создании правила брандмауэра это свойство не указано, используется сеть по умолчанию: global/networks/default. Если вы решите указать это свойство, вы можете указать сеть как полный или частичный URL. Например, следующие URL-адреса являются допустимыми: https://www.googleapis.com/compute/v1/projects/myproject/global/ networks/my-network projects/myproject/global/networks/my-network global/networks/default
priority
Приоритет для этого правила. Это целое число от 0 до 65535 включительно. Если не указано, используется значение 1000. Относительные приоритеты определяют приоритет конфликтующих правил. Более низкое значение приоритета означает более высокий приоритет (например, правило с приоритетом 0 имеет более высокий приоритет, чем правило с приоритетом 1). Правила DENY имеют приоритет над правилами ALLOW с одинаковым приоритетом.
source_ranges
Если указаны диапазоны исходных адресов, брандмауэр будет применяться только к трафику, у которого исходный IP-адрес находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Поддерживается только IPv4.
source_service_accounts
Если указаны учётные записи сервиса источника, брандмауэр будет применяться только к трафику, исходящему от экземпляра с учётной записью сервиса в этом списке. Учётные записи сервиса не могут использоваться для управления трафиком в адрес внешнего IP-адреса экземпляра, так как учётные записи сервиса связаны с экземпляром, а не с IP-адресом. sourceRanges могут быть установлены одновременно с sourceServiceAccounts. Если оба свойства установлены, брандмауэр будет применяться к трафику, исходный IP-адрес которого находится в sourceRanges ИЛИ исходный IP-адрес принадлежит экземпляру с учётной записью сервиса, указанной в sourceServiceAccount. Для применения брандмауэра не требуется соответствие обоим свойствам. sourceServiceAccounts нельзя использовать одновременно с sourceTags или targetTags.
source_tags
Если указаны теги источника, брандмауэр будет применяться только к трафику с исходным IP-адресом, который принадлежит тегу, указанному в тегах источника. Теги источника не могут использоваться для управления трафиком в адрес внешнего IP-адреса экземпляра. Поскольку теги связаны с экземпляром, а не с IP-адресом. sourceRanges и sourceTags могут быть установлены одновременно. Если оба свойства установлены, брандмауэр будет применяться к трафику, исходный IP-адрес которого находится в sourceRanges ИЛИ исходный IP-адрес принадлежит тегу, указанному в sourceTags. Для применения брандмауэра не требуется соответствие обоим свойствам.
target_service_accounts
Список учётных записей сервисов, указывающий наборы экземпляров, расположенных в сети, которые могут устанавливать сетевые подключения, как указано в allowed. targetServiceAccounts нельзя использовать одновременно с targetTags или sourceTags. Если ни targetServiceAccounts, ни targetTags не указаны, правило брандмауэра применяется ко всем экземплярам в указанной сети.
target_tags
Список тегов экземпляров, указывающий наборы экземпляров, расположенных в сети, которые могут устанавливать сетевые подключения, как указано в allowed. Если targetTags не указаны, правило брандмауэра применяется ко всем экземплярам в указанной сети.

Разрешения GCP

Убедитесь, что API Compute Engine включен для текущего проекта.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/google_compute_firewall/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API