Spec-Zone.ru › Chef 17

Ресурс google_compute_firewall

[править на GitHub]

Синтаксис

Используется google_compute_firewall, чтобы протестировать ресурс брандмауэра Google.

Ресурс бета-версии

Этот ресурс имеет доступные поля бета-версии. Чтобы получить эти поля, включите 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
Если указаны диапазоны назначения, брандмауэр будет применяться только к трафику, у которого IP-адрес назначения находится в этих диапазонах. Эти диапазоны должны быть выражены в формате 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 Compute Engine API.

© 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