gcp_compute_firewall - Создаёт брандмауэр GCP
Новое в версии 2.6.
Описание
- Каждый сетевой интерфейс имеет свой брандмауэр, контролирующий доступ к экземплярам.
- Весь трафик к экземплярам, даже от других экземпляров, заблокирован брандмауэром, если не созданы правила брандмауэра для его разрешения.
- В сети по умолчанию автоматически созданы правила брандмауэра, которые отображаются в правилах брандмауэра по умолчанию. В вручную созданных сетях автоматически создаются правила брандмауэра только для правила «разрешить» исходящий трафик и правила «запретить» входящий трафик. Для всех сетей, кроме сети по умолчанию, необходимо создать все необходимые правила брандмауэра.
Требования
Ниже перечислены требования к хосту, на котором выполняется данный модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| allowed | Список правил «РАЗРЕШИТЬ», заданных этим брандмауэром. Каждое правило определяет кортеж протокола и диапазона портов, описывающий разрешённое соединение. | ||
| ip_protocol обязательно | Протокол IP, к которому применяется это правило. Тип протокола необходим при создании правила брандмауэра. Это значение может быть одним из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp) или номером протокола IP. | ||
| ports | Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP или TCP. Каждый элемент должен быть либо целым числом, либо диапазоном. Если не указано, правило применяется к соединениям через любой порт. Примеры входных данных: ["22"], ["80","443"], и ["12345-12349"]. | ||
| auth_kind обязательно |
| Тип используемых учетных данных. | |
| description | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | ||
| 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 . | ||
| project | Проект Google Cloud Platform, который нужно использовать. | ||
| scopes обязательно | Массив используемых областей. | ||
| service_account_email | Необязательный адрес электронной почты учетной записи сервиса, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | ||
| service_account_file | Путь к файлу JSON учетной записи сервиса, если тип выбран serviceaccount. | ||
| source_ranges | Если указаны диапазоны источника, брандмауэр будет применять правила только к трафику, у которого IP-адрес источника находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Можно указать либо sourceRanges, либо sourceTags, либо оба. Если оба свойства установлены, брандмауэр будет применять правило к трафику, у которого IP-адрес источника находится в sourceRanges ИЛИ IP-адрес источника принадлежит тегу, указанному в sourceTags. Для применения правила не требуется соответствие обоим свойствам. Поддерживается только IPv4. | ||
| source_tags | Если указаны теги источника, брандмауэр будет применять правила только к трафику с IP-адресом источника, принадлежащим тегу, указанному в тегах источника. Теги источника не могут использоваться для управления трафиком на внешний IP-адрес экземпляра. Поскольку теги связаны с экземпляром, а не с IP-адресом. Можно указать либо sourceRanges, либо sourceTags, либо оба. Если оба свойства установлены, брандмауэр будет применять правило к трафику, у которого IP-адрес источника находится в sourceRanges ИЛИ IP-адрес источника принадлежит тегу, указанному в sourceTags. Для применения правила не требуется соответствие обоим свойствам. | ||
| state обязательно |
| Указывает, должен ли данный объект существовать в GCP. | |
| target_tags | Список тегов экземпляров, указывающих на наборы экземпляров, расположенных в сети, которые могут устанавливать сетевые соединения, как указано в allowed[]. Если targetTags не указаны, правило брандмауэра применяется ко всем экземплярам в указанной сети. | ||
Примечания
Примечание
- Для проверки подлинности вы можете установить service_account_file с помощью переменной окружения
GCP_SERVICE_ACCOUNT_FILE. - Для проверки подлинности вы можете установить service_account_email с помощью переменной окружения
GCP_SERVICE_ACCOUNT_EMAIL. - Для проверки подлинности вы можете установить auth_kind с помощью переменной окружения
GCP_AUTH_KIND. - Для проверки подлинности вы можете установить scopes с помощью переменной окружения
GCP_SCOPES. - Значения переменных окружения будут использоваться только в том случае, если значения в книге сценариев не установлены.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a firewall
gcp_compute_firewall:
name: testObject
allowed:
- ip_protocol: 'tcp'
ports:
- "22"
target_tags:
- test-ssh-server
- staging-ssh-server
source_tags:
- test-ssh-clients
project: testProject
auth_kind: service_account
service_account_file: /tmp/auth.pem
scopes:
- https://www.googleapis.com/auth/compute
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| allowed complex | success | Список правил ALLOW, заданных этим брандмауэром. Каждое правило определяет кортеж протокола и диапазона портов, описывающий разрешенное соединение. | |
| ip_protocol str | success | IP-протокол, к которому относится это правило. Тип протокола необходим при создании правила брандмауэра. Это значение может быть одним из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp) или номером IP-протокола. | |
| ports list | success | Необязательный список портов, к которым относится это правило. Это поле применимо только для протоколов UDP или TCP. Каждый элемент должен быть либо целым числом, либо диапазоном. Если не указано, это правило применяется к соединениям через любой порт. Примеры ввода: ["22"], ["80","443"] и ["12345-12349"]. | |
| creation_timestamp str | success | Дата и время создания в формате RFC3339. | |
| description str | success | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | |
| id int | success | Уникальный идентификатор ресурса. | |
| name str | success | Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. То есть, длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. | |
| network str | success | 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 . | |
| source_ranges list | success | Если указаны диапазоны исходных адресов, брандмауэр будет применять правило только к трафику, у которого исходный IP-адрес находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Одно или оба из sourceRanges и sourceTags могут быть установлены. Если оба свойства установлены, брандмауэр будет применять правило к трафику, у которого исходный IP-адрес находится в sourceRanges ИЛИ исходный IP-адрес принадлежит тегу, указанному в свойстве sourceTags. Для применения правила не требуется соответствие обоим свойствам. Поддерживается только IPv4. | |
| source_tags list | success | Если указаны теги источника, брандмауэр будет применять правило только к трафику, у которого исходный IP-адрес принадлежит тегу, указанному в списке тегов источника. Теги источника не могут использоваться для управления трафиком на внешний IP-адрес экземпляра. Поскольку теги ассоциированы с экземпляром, а не с IP-адресом. Одно или оба из sourceRanges и sourceTags могут быть установлены. Если оба свойства установлены, брандмауэр будет применять правило к трафику, у которого исходный IP-адрес находится в sourceRanges ИЛИ исходный IP-адрес принадлежит тегу, указанному в свойстве sourceTags. Для применения правила не требуется соответствие обоим свойствам. | |
| target_tags list | success | Список тегов экземпляров, указывающих на наборы экземпляров, расположенных в сети, которые могут устанавливать сетевые соединения, как указано в allowed[]. Если targetTags не указаны, правило брандмауэра применяется ко всем экземплярам в указанной сети. | |
Статус
Этот модуль помечен как предварительный, что означает, что он не гарантирует обратной совместимости интерфейса.
Техническое обслуживание
Этот модуль помечен как сообщественный, что означает, что он поддерживается сообществом Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.
Список других модулей, поддерживаемых сообществом Ansible, см. в здесь.
Автор
- Google Inc. (@googlecloudplatform)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/gcp_compute_firewall_module.html