Spec-Zone.ru › Ansible 2.11

google.cloud.gcp_compute_firewall – Создаёт брандмауэр GCP

Примечание

Этот плагин входит в сборку google.cloud (версия 1.0.2).

Для его установки используйте: ansible-galaxy collection install google.cloud

Для использования в книге задач укажите: google.cloud.gcp_compute_firewall

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Каждый сетевой интерфейс имеет собственный брандмауэр, контролирующий доступ к виртуальным машинам.
  • Весь трафик к виртуальным машинам, даже от других виртуальных машин, блокируется брандмауэром, если не созданы правила брандмауэра, разрешающие его.
  • В сети по умолчанию автоматически созданы правила брандмауэра, которые отображаются в правилах брандмауэра по умолчанию. В ручном режиме созданные сети не имеют автоматически созданных правил брандмауэра, за исключением правила «разрешить» исходящий трафик и правила «заблокировать» входящий трафик. Для всех сетей, кроме сети по умолчанию, необходимо создать любые необходимые правила брандмауэра.

Требования

Ниже приведены требования к хосту, на котором выполняется этот модуль.

  • python >= 2.6
  • requests >= 2.18.4
  • google-auth >= 1.3.0

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
allowed
список / элементы=словарь
Список правил ALLOW, заданных этим брандмауэром. Каждое правило определяет кортеж из протокола и диапазона портов, описывающий разрешённое соединение.
ip_protocol
строка / обязательно
IP-протокол, к которому относится это правило. Тип протокола требуется при создании правила брандмауэра. Это значение может быть одной из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp, ipip, all), или номером IP-протокола.
ports
список / элементы=строка
Необязательный список портов, к которым относится это правило. Это поле применимо только для протоколов UDP или TCP. Каждый элемент должен быть целым числом или диапазоном. Если не указано, это правило применяется к соединениям через любой порт.
Примеры ввода: ["22"], ["80","443"] и ["12345-12349"].
auth_kind
строка / обязательно
    Варианты:
  • application
  • machineaccount
  • serviceaccount
Тип используемых учетных данных.
denied
список / элементы=словарь
Список правил DENY, заданных этим брандмауэром. Каждое правило определяет кортеж из протокола и диапазона портов, описывающий запрещённое соединение.
ip_protocol
строка / обязательно
IP-протокол, к которому относится это правило. Тип протокола требуется при создании правила брандмауэра. Это значение может быть одной из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp, ipip, all), или номером 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
булево
    Варианты:
  • no
  • yes
Указывает, отключено ли правило брандмауэра, т.е. не применяется ли оно к сети, с которой оно связано. Если значение true, правило брандмауэра не применяется, и сеть ведет себя так, как если бы оно не существовало. Если не указано, правило брандмауэра будет включено.
env_type
строка
Указывает, в какой среде Ansible вы выполняете этот модуль.
Это значение не следует устанавливать, если вы не знаете, что делаете.
Это влияет только на строку User Agent для всех запросов к API.
log_config
словарь
Это поле обозначает параметры ведения журнала для конкретного правила брандмауэра.
Если ведение журнала включено, журналы будут экспортированы в Cloud Logging.
enable
булево
    Варианты:
  • no
  • yes
Это поле указывает, нужно ли включить ведение журнала для данного правила брандмауэра. Если ведение журнала включено, журналы будут экспортированы в Stackdriver.
metadata
строка
Это поле указывает, включать или исключать метаданные для журналов брандмауэра.
Некоторые допустимые значения: "EXCLUDE_ALL_METADATA", "INCLUDE_ALL_METADATA"
name
строка / обязательно
Имя ресурса. Указывается клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. То есть, оно должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом.
network
словарь
По умолчанию:
{"selfLink": "global/networks/default"}
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 .
Это поле представляет собой ссылку на ресурс сети GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: name-of-resource` к задаче gcp_compute_network, а затем установить это поле network в "{{ name-of-resource }}"
priority
целое число
По умолчанию:
"1000"
Приоритет этого правила. Это целое число от 0 до 65535 включительно. Если не указано, значение по умолчанию — 1000. Относительные приоритеты определяют порядок применения конфликтующих правил. Меньшее значение приоритета означает более высокий приоритет (например, правило с приоритетом 0 имеет более высокий приоритет, чем правило с приоритетом 1). Правила DENY имеют приоритет над правилами ALLOW с одинаковым приоритетом.
project
строка
Проект Google Cloud Platform для использования.
scopes
список / элементы=строка
Массив используемых областей
service_account_contents
jsonarg
Содержимое файла JSON учетной записи службы, либо в виде словаря, либо как строка JSON, его представляющая.
service_account_email
строка
Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию.
service_account_file
путь
Путь к файлу JSON учетной записи службы, если выбран тип serviceaccount.
source_ranges
список / элементы=строка
Если указаны диапазоны источника, брандмауэр будет применяться только к трафику, у которого IP-адрес источника находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Можно указать sourceRanges или sourceTags или оба параметра. Если оба параметра указаны, брандмауэр будет применяться к трафику, у которого IP-адрес источника находится в sourceRanges ИЛИ IP-адрес источника принадлежит тегу, указанному в sourceTags. Для применения брандмауэра не требуется совпадение обоих параметров. Поддерживается только 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. Для применения брандмауэра не требуется совпадение обоих параметров.
state
строка
    Варианты:
  • present ←
  • absent
Указывает, должен ли данный объект существовать в GCP
target_service_accounts
список / элементы=строка
Список учетных записей служб, указывающий на наборы виртуальных машин, расположенных в сети, которые могут устанавливать сетевые подключения, как указано в allowed[].
targetServiceAccounts нельзя использовать одновременно с targetTags или sourceTags. Если не указаны ни targetServiceAccounts, ни targetTags, правило брандмауэра применяется ко всем виртуальным машинам в указанной сети.
target_tags
list / elements=string
Список тегов экземпляров, указывающих на наборы экземпляров, расположенных в сети, которые могут осуществлять сетевые подключения, как указано в allowed[].
Если targetTags не указаны, правило брандмауэра применяется ко всем экземплярам в указанной сети.

Примечания

Примечание

  • Справочник API: https://cloud.google.com/compute/docs/reference/v1/firewalls
  • Официальная документация: https://cloud.google.com/vpc/docs/firewalls
  • для аутентификации можно установить service_account_file, используя переменную среды gcp_service_account_file.
  • для аутентификации можно установить service_account_contents, используя переменную среды GCP_SERVICE_ACCOUNT_CONTENTS.
  • Для аутентификации можно установить service_account_email, используя переменную среды GCP_SERVICE_ACCOUNT_EMAIL.
  • Для аутентификации можно установить auth_kind, используя переменную среды GCP_AUTH_KIND.
  • Для аутентификации можно установить scopes, используя переменную среды GCP_SCOPES.
  • Значения переменных среды будут использованы только в том случае, если значения в playbook не заданы.
  • Параметры service_account_email и service_account_file взаимоисключающие.

Примеры

- name: create a firewall
  google.cloud.gcp_compute_firewall:
    name: test_object
    allowed:
    - ip_protocol: tcp
      ports:
      - '22'
    target_tags:
    - test-ssh-server
    - staging-ssh-server
    source_tags:
    - test-ssh-clients
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие — поля, уникальные для данного модуля:

Ключ Возвращённое значение Описание
allowed
complex
success
Список правил ALLOW, определённых этим брандмауэром. Каждое правило определяет кортеж из протокола и диапазона портов, описывающий разрешённое соединение.

ip_protocol
string
success
IP-протокол, к которому относится это правило. Тип протокола необходим при создании правила брандмауэра. Это значение может быть одним из следующих известных строковых обозначений протоколов (tcp, udp, icmp, esp, ah, sctp, ipip, all), или номером IP-протокола.

ports
list / elements=string
success
Необязательный список портов, к которым относится это правило. Это поле применимо только для UDP или TCP протоколов. Каждый элемент должен быть либо целым числом, либо диапазоном. Если не указано, это правило применяется к соединениям через любой порт.
Примеры включают: ["22"], ["80","443"] и ["12345-12349"].

creationTimestamp
string
success
Дата и время создания в формате RFC3339.

denied
complex
success
Список правил DENY, определённых этим брандмауэром. Каждое правило определяет кортеж из протокола и диапазона портов, описывающий запрещённое соединение.

ip_protocol
string
success
IP-протокол, к которому относится это правило. Тип протокола необходим при создании правила брандмауэра. Это значение может быть одним из следующих известных строковых обозначений протоколов (tcp, udp, icmp, esp, ah, sctp, ipip, all), или номером IP-протокола.

ports
list / elements=string
success
Необязательный список портов, к которым относится это правило. Это поле применимо только для UDP или TCP протоколов. Каждый элемент должен быть либо целым числом, либо диапазоном. Если не указано, это правило применяется к соединениям через любой порт.
Примеры включают: ["22"], ["80","443"] и ["12345-12349"].

description
string
success
Необязательное описание этого ресурса. Укажите это свойство при создании ресурса.

destinationRanges
list / elements=string
success
Если указаны диапазоны назначения, брандмауэр будет применяться только к трафику, у которого IP-адрес назначения находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Поддерживается только IPv4.

direction
string
success
Направление трафика, к которому применяется этот брандмауэр; значение по умолчанию - ВХОДЯЩИЙ. Примечание: для входного трафика не поддерживается указание destinationRanges; для исходящего трафика не поддерживается указание sourceRanges или sourceTags.

disabled
boolean
success
Указывает, отключено ли правило брандмауэра, т.е. не применяется ли оно к сети, с которой оно связано. При значении true правило брандмауэра не применяется, и сеть ведет себя так, как будто его не существует. Если не указано, правило брандмауэра будет включено.

id
integer
success
Уникальный идентификатор ресурса.

logConfig
complex
success
Это поле обозначает параметры ведения журнала для определённого правила брандмауэра.
Если ведение журнала включено, журналы будут экспортированы в Cloud Logging.

enable
boolean
success
Это поле обозначает, включено ли ведение журнала для определённого правила брандмауэра. Если ведение журнала включено, журналы будут экспортированы в Stackdriver.

metadata
string
success
Это поле обозначает, следует ли включать или исключать метаданные для журналов брандмауэра.

name
string
success
Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. То есть, имя должно иметь длину от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире.

network
dictionary
success
URL ресурса сети для этого правила брандмауэра. Если при создании правила брандмауэра не указано, используется сеть по умолчанию: global/networks/default. Если вы решите указать это свойство, вы можете указать сеть как полную, так и частичную ссылку. Например, следующие ссылки являются допустимыми: https://www.googleapis.com/compute/v1/projects/myproject/global/ networks/my-network projects/myproject/global/networks/my-network global/networks/default .

priority
integer
success
Приоритет для этого правила. Это целое число от 0 до 65535 включительно. Если не указано, предполагается значение 1000. Относительные приоритеты определяют порядок следования при конфликтующих правилах. Более низкое значение приоритета подразумевает более высокий приоритет (например, правило с приоритетом 0 имеет более высокий приоритет, чем правило с приоритетом 1). Правила DENY имеют приоритет над правилами ALLOW с одинаковым приоритетом.

sourceRanges
list / elements=string
success
Если указаны диапазоны источников, брандмауэр будет применяться только к трафику, у которого IP-адрес источника находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Можно указать либо sourceRanges, либо sourceTags, либо оба. Если оба свойства указаны, брандмауэр будет применяться к трафику, у которого IP-адрес источника находится в sourceRanges ИЛИ IP-адрес источника принадлежит тегу, указанному в свойстве sourceTags. Для применения брандмауэра не требуется соответствие обоим свойствам. Поддерживается только IPv4.

sourceServiceAccounts
list / elements=string
success
Список учётных записей сервисов, указывающих на наборы виртуальных машин, расположенных в сети, которые могут устанавливать сетевые подключения, как указано в allowed[].
sourceServiceAccounts нельзя использовать одновременно с sourceTags или targetTags. Если не указаны ни sourceServiceAccounts, ни targetTags, правило брандмауэра применяется ко всем виртуальным машинам в указанной сети.

sourceTags
list / elements=string
success
Если указаны теги источников, брандмауэр будет применяться только к трафику с IP-адресом источника, принадлежащим тегу, указанному в тегах источника. Теги источников нельзя использовать для управления трафиком в внешний IP-адрес виртуальной машины. Поскольку теги связаны с виртуальной машиной, а не с IP-адресом. Можно указать либо sourceRanges, либо sourceTags, либо оба. Если оба свойства указаны, брандмауэр будет применяться к трафику, у которого IP-адрес источника находится в sourceRanges ИЛИ IP-адрес источника принадлежит тегу, указанному в свойстве sourceTags. Для применения брандмауэра не требуется соответствие обоим свойствам.

targetServiceAccounts
list / elements=string
success
Список учётных записей сервисов, указывающих на наборы виртуальных машин, расположенных в сети, которые могут устанавливать сетевые подключения, как указано в allowed[].
targetServiceAccounts нельзя использовать одновременно с targetTags или sourceTags. Если не указаны ни targetServiceAccounts, ни targetTags, правило брандмауэра применяется ко всем виртуальным машинам в указанной сети.

targetTags
list / elements=string
success
Список тегов виртуальных машин, указывающих на наборы виртуальных машин, расположенных в сети, которые могут устанавливать сетевые подключения, как указано в allowed[].
Если не указаны targetTags, правило брандмауэра применяется ко всем виртуальным машинам в указанной сети.



Авторы

  • Google Inc. (@googlecloudplatform)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/google/cloud/gcp_compute_firewall_module.html

Spec-Zone.ru

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