gcp_compute_firewall – Создаёт брандмауэр GCP
Новая версия с 2.6.
Описание
- У каждой сети есть свой брандмауэр, контролирующий доступ к экземплярам.
- Весь трафик к экземплярам, даже из других экземпляров, блокируется брандмауэром, если не созданы правила брандмауэра для разрешения доступа.
- В сети по умолчанию автоматически созданы правила брандмауэра, которые показаны в правилах брандмауэра по умолчанию. Никаких автоматически созданных правил брандмауэра нет для вручную созданных сетей, за исключением правила по умолчанию «разрешить» исходящий трафик и правила по умолчанию «заблокировать» входящий трафик. Для всех сетей, кроме сети по умолчанию, необходимо создавать собственные правила брандмауэра.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| allowed - | Список правил ALLOW, заданных этим брандмауэром. Каждое правило определяет кортеж из протокола и диапазона портов, описывающий разрешённое соединение. | ||
| ip_protocol - / обязательно | IP-протокол, к которому применяется это правило. Тип протокола требуется при создании правила брандмауэра. Это значение может быть одним из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp), или номером IP-протокола. | ||
| ports - | Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP или TCP. Каждый элемент должен быть либо целым числом, либо диапазоном. Если не указано, это правило применяется к подключениям через любой порт. Примеры ввода: ["22"], ["80","443"], и ["12345-12349"]. | ||
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | |
| denied - добавлен в 2.8 | Список правил DENY, заданных этим брандмауэром. Каждое правило определяет кортеж из протокола и диапазона портов, описывающий запрещённое соединение. | ||
| ip_protocol - / обязательно | IP-протокол, к которому применяется это правило. Тип протокола требуется при создании правила брандмауэра. Это значение может быть одним из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp), или номером IP-протокола. | ||
| ports - | Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP или TCP. Каждый элемент должен быть либо целым числом, либо диапазоном. Если не указано, это правило применяется к подключениям через любой порт. Примеры ввода: ["22"], ["80","443"], и ["12345-12349"]. | ||
| description - | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | ||
| destination_ranges - добавлен в 2.8 | Если заданы диапазоны адресов назначения, брандмауэр будет применять правило только к трафику, у которого адрес назначения IP находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Поддерживается только IPv4. | ||
| direction - добавлен в 2.8 |
| Направление трафика, к которому применяется этот брандмауэр; значение по умолчанию — INGRESS. Примечание: для трафика INGRESS не поддерживается указание destinationRanges; для трафика EGRESS не поддерживается указание sourceRanges или sourceTags. | |
| disabled булево добавлен в 2.8 |
| Указывает, отключено ли правило брандмауэра, то есть не применяется ли оно к сети, с которой оно связано. При установке в значение true правило брандмауэра не применяется, и сеть ведёт себя так, как будто его не существует. Если это свойство не указано, правило брандмауэра будет включено. | |
| 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 . Это поле представляет собой ссылку на ресурс Network в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: name-of-resource` к задаче gcp_compute_network, а затем установить это поле network в "{{ name-of-resource }}" | |
| priority - добавлен в 2.8 | Значение по умолчанию: "1000" | Приоритет этого правила. Это целое число от 0 до 65535 включительно. Если не указано, значение по умолчанию — 1000. Относительные приоритеты определяют порядок следования конфликтующих правил. Меньшее значение приоритета означает более высокий приоритет (например, правило с приоритетом 0 имеет более высокий приоритет, чем правило с приоритетом 1). Правила DENY имеют приоритет над правилами ALLOW с равным приоритетом. | |
| project строка | Проект Google Cloud Platform, который использовать. | ||
| scopes список | Массив используемых областей. | ||
| service_account_contents строка | Строка, представляющая содержимое файла JSON учётной записи службы. Это не должно передаваться в виде словаря, а в виде строки, содержащей точное содержимое файла 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 - добавлен в 2.8 | Если заданы учетные записи служб источников, брандмауэр будет применять правило только к трафику, исходящему от экземпляра с учётной записью службы в этом списке. Учетные записи служб-источников нельзя использовать для управления трафиком на внешний IP-адрес экземпляра, так как учетные записи служб связаны с экземпляром, а не с IP-адресом. sourceRanges могут быть установлены одновременно с sourceServiceAccounts. Если оба свойства установлены, брандмауэр будет применяться к трафику, у которого исходный IP-адрес находится в sourceRanges ИЛИ исходный IP принадлежит экземпляру с учётной записью службы, перечисленной в sourceServiceAccount. Для применения брандмауэра не требуется соответствие обоим свойствам. sourceServiceAccounts нельзя использовать одновременно с sourceTags или targetTags. | ||
| source_tags - | Если заданы теги источников, брандмауэр будет применять правило только к трафику с исходным IP, который принадлежит тегу, указанному в тегах источников. Теги источников нельзя использовать для управления трафиком на внешний IP-адрес экземпляра. Так как теги связаны с экземпляром, а не с IP-адресом. Можно указать один или оба из sourceRanges и sourceTags. Если оба свойства указаны, брандмауэр будет применяться к трафику, у которого исходный IP-адрес находится в sourceRanges ИЛИ исходный IP принадлежит тегу, перечисленному в свойстве sourceTags. Для применения брандмауэра не требуется соответствие обоим свойствам. | ||
| state - |
| Указывает, должен ли данный объект существовать в GCP | |
| target_service_accounts - added in 2.8 | Список учетных записей сервисов, указывающий на наборы виртуальных машин, расположенных в сети, которые могут создавать сетевые соединения, как указано в allowed[]. targetServiceAccounts нельзя использовать одновременно с targetTags или sourceTags. Если ни targetServiceAccounts, ни targetTags не указаны, правило брандмауэра применяется ко всем виртуальным машинам в указанной сети. | ||
| target_tags - | Список тегов виртуальных машин, указывающий на наборы виртуальных машин, расположенных в сети, которые могут создавать сетевые соединения, как указано в 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_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить service_account_contents с помощью переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - Для аутентификации можно установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использованы только в том случае, если значения в playbook не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a firewall
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 строка | success | Протокол IP, к которому относится это правило. Тип протокола требуется при создании правила брандмауэра. Это значение может быть одной из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp) или номером протокола IP. | |
| ports список | success | Необязательный список портов, к которым относится это правило. Это поле применимо только для протоколов UDP или TCP. Каждый элемент должен быть целым числом или диапазоном. Если не указано, это правило применяется к соединениям через любой порт. Примеры входных данных: ["22"], ["80", "443"] и ["12345-12349"]. | |
| creationTimestamp строка | success | Дата и время создания в формате RFC3339. | |
| denied complex | success | Список правил DENY, заданных этим брандмауэром. Каждое правило задает кортеж протокола и диапазона портов, описывающий запрещенное соединение. | |
| ip_protocol строка | success | Протокол IP, к которому относится это правило. Тип протокола требуется при создании правила брандмауэра. Это значение может быть одной из следующих известных строк протоколов (tcp, udp, icmp, esp, ah, sctp) или номером протокола IP. | |
| ports список | success | Необязательный список портов, к которым относится это правило. Это поле применимо только для протоколов UDP или TCP. Каждый элемент должен быть целым числом или диапазоном. Если не указано, это правило применяется к соединениям через любой порт. Примеры входных данных: ["22"], ["80","443"], и ["12345-12349"]. | |
| description строка | success | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | |
| destinationRanges список | success | Если указаны диапазоны назначения, брандмауэр будет применяться только к трафику, у которого адрес назначения IP находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Поддерживается только IPv4. | |
| direction строка | success | Направление трафика, к которому применяется этот брандмауэр; по умолчанию INGRESS. Примечание: для INGRESS-трафика не поддерживается указание destinationRanges; для EGRESS-трафика не поддерживается указание sourceRanges или sourceTags. | |
| disabled булево | success | Указывает, отключено ли правило брандмауэра, т. е. не применяется ли оно к сети, с которой связано. При установке в значение true правило брандмауэра не применяется, и сеть ведет себя так, как если бы оно не существовало. Если это свойство не указано, правило брандмауэра будет включено. | |
| id целое число | success | Уникальный идентификатор ресурса. | |
| name строка | success | Имя ресурса. Указывается клиентом при создании ресурса. Длина имени должна составлять от 1 до 63 символов и соответствовать RFC1035. То есть, длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |
| network словарь | 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. | |
| priority целое число | success | Приоритет этого правила. Это целое число от 0 до 65535 включительно. Если не указано, используется значение 1000. Относительные приоритеты определяют порядок следования конфликтующих правил. Меньшее значение приоритета означает более высокий приоритет (например, правило с приоритетом 0 имеет более высокий приоритет, чем правило с приоритетом 1). Правила DENY имеют приоритет над правилами ALLOW с одинаковым приоритетом. | |
| sourceRanges список | success | Если указаны диапазоны источников, брандмауэр будет применяться только к трафику, у которого адрес источника IP находится в этих диапазонах. Эти диапазоны должны быть выражены в формате CIDR. Может быть указан один или оба из sourceRanges и sourceTags. Если оба свойства заданы, брандмауэр будет применяться к трафику, у которого адрес источника IP находится в sourceRanges или адрес источника IP принадлежит тегу, указанному в свойстве sourceTags. Для применения брандмауэра не требуется соответствие обоим свойствам. Поддерживается только IPv4. | |
| sourceServiceAccounts список | success | Если указаны учетные записи служб источника, брандмауэр будет применяться только к трафику, исходящему от виртуальной машины с учетной записью службы в этом списке. Учетные записи служб источника не могут использоваться для управления трафиком к внешнему IP-адресу виртуальной машины, так как учетные записи служб связаны с виртуальной машиной, а не с IP-адресом. sourceRanges могут быть заданы одновременно с sourceServiceAccounts. Если оба свойства заданы, брандмауэр будет применяться к трафику, у которого адрес источника IP находится в sourceRanges или адрес источника IP принадлежит виртуальной машине с учетной записью службы, указанной в sourceServiceAccount. Для применения брандмауэра не требуется соответствие обоим свойствам. sourceServiceAccounts не могут использоваться одновременно с sourceTags или targetTags. | |
| sourceTags список | success | Если указаны теги источника, брандмауэр будет применяться только к трафику, у которого IP-адрес источника принадлежит тегу, указанному в списке тегов источника. Теги источника не могут использоваться для управления трафиком к внешнему IP-адресу виртуальной машины, так как теги связаны с виртуальной машиной, а не с IP-адресом. Может быть указан один или оба из sourceRanges и sourceTags. Если оба свойства заданы, брандмауэр будет применяться к трафику, у которого адрес источника IP находится в sourceRanges или адрес источника IP принадлежит тегу, указанному в свойстве sourceTags. Для применения брандмауэра не требуется соответствие обоим свойствам. | |
| targetServiceAccounts список | success | Список учетных записей служб, указывающий на наборы виртуальных машин, расположенных в сети, которые могут устанавливать сетевые соединения, как указано в allowed[]. targetServiceAccounts нельзя использовать одновременно с targetTags или sourceTags. Если ни targetServiceAccounts, ни targetTags не указаны, правило брандмауэра применяется ко всем виртуальным машинам в указанной сети. | |
| targetTags список | success | Список тегов виртуальных машин, указывающий на наборы виртуальных машин, расположенных в сети, которые могут устанавливать сетевые соединения, как указано в allowed[]. Если не указаны targetTags, правило брандмауэра применяется ко всем виртуальным машинам в указанной сети. | |
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [экспериментальная версия]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.8/modules/gcp_compute_firewall_module.html