Spec-Zone.ru › Ansible

модуль google.cloud.gcp_compute_firewall — создание брандмауэра GCP

Примечание

Этот модуль входит в коллекцию google.cloud (версия 1.13.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install google.cloud. Для работы с этим модулем требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: google.cloud.gcp_compute_firewall.

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

Обзор

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

Требования

Следующие требования должны быть выполнены на узле, на котором запускается этот модуль.

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

Параметры

Параметр

Комментарии

access_token

string

Токен доступа OAuth2, если тип учетных данных — accesstoken.

allowed

list / elements=dictionary

Список правил ALLOW, заданных этим брандмауэром. Каждое правило задает кортеж протокола и диапазона портов, описывающий разрешенное соединение.

ip_protocol

string / required

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

ports

list / elements=string

Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP и TCP. Каждая запись должна быть целым числом или диапазоном. Если значение не указано, правило применяется к соединениям через любой порт.

Примеры допустимых значений: [“22”], [“80”,”443”] и [“12345-12349”].

auth_kind

string / required

Тип используемых учетных данных.

Варианты:

  • "application"
  • "machineaccount"
  • "serviceaccount"
  • "accesstoken"

denied

list / elements=dictionary

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

ip_protocol

string / required

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

ports

list / elements=string

Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP и TCP. Каждая запись должна быть целым числом или диапазоном. Если значение не указано, правило применяется к соединениям через любой порт.

Примеры допустимых значений: [“22”], [“80”,”443”] и [“12345-12349”].

description

string

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

destination_ranges

list / elements=string

Если указаны диапазоны адресов назначения, брандмауэр применяется только к трафику, IP-адрес назначения которого входит в эти диапазоны. Диапазоны должны быть указаны в формате CIDR. Поддерживается только IPv4.

direction

string

Направление трафика, к которому применяется этот брандмауэр; по умолчанию — INGRESS. Примечание: для трафика INGRESS указывать destinationRanges НЕ поддерживается; для трафика EGRESS указывать sourceRanges ИЛИ sourceTags НЕ поддерживается.

Допустимые варианты: “INGRESS”, “EGRESS”

disabled

boolean

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

Варианты:

  • false
  • true

env_type

string

Указывает среду Ansible, в которой выполняется этот модуль.

Не задавайте это значение, если не знаете, что делаете.

Параметр изменяет только строку User Agent для запросов API.

log_config

dictionary

Это поле задает параметры ведения журнала для конкретного правила брандмауэра.

Если ведение журнала включено, журналы будут экспортироваться в Cloud Logging.

enable

boolean

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

Варианты:

  • false
  • true

metadata

string

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

Допустимые варианты: “EXCLUDE_ALL_METADATA”, “INCLUDE_ALL_METADATA”

name

string / required

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

network

dictionary

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 }}”.

По умолчанию: {"selfLink": "global/networks/default"}

priority

integer

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

По умолчанию: 1000

project

string

Проект Google Cloud Platform, который следует использовать.

scopes

list / elements=string

Массив используемых областей действия

service_account_contents

jsonarg

Содержимое JSON-файла учетной записи службы — в виде словаря или JSON-строки, представляющей его.

service_account_email

string

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

service_account_file

path

Путь к JSON-файлу учетной записи службы, если в качестве типа выбрано serviceaccount.

source_ranges

list / elements=string

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

source_service_accounts

list / elements=string

Если указаны учетные записи службы источника, брандмауэр применяется только к трафику, поступающему от экземпляра, которому назначена учетная запись службы из этого списка. Учетные записи службы источника нельзя использовать для управления трафиком к внешнему IP-адресу экземпляра, поскольку учетные записи службы связаны с экземпляром, а не с IP-адресом. Одновременно с sourceServiceAccounts можно задать sourceRanges. Если заданы оба свойства, брандмауэр применяется к трафику, IP-адрес источника которого входит в sourceRanges ИЛИ принадлежит экземпляру с учетной записью службы, указанной в sourceServiceAccount. Для применения брандмауэра соединение не обязано соответствовать обоим свойствам. sourceServiceAccounts нельзя использовать одновременно с sourceTags или targetTags.

source_tags

list / elements=string

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

state

string

Должен ли указанный объект существовать в GCP

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

target_service_accounts

list / elements=string

Список учетных записей службы, указывающий наборы экземпляров в сети, которым разрешено устанавливать сетевые соединения, указанные в 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.
  • Для аутентификации можно задать access_token с помощью переменной окружения GCP_ACCESS_TOKEN.
  • Для аутентификации можно задать auth_kind с помощью переменной окружения GCP_AUTH_KIND.
  • Для аутентификации можно задать scopes с помощью переменной окружения GCP_SCOPES.
  • Значения переменных окружения используются только в том случае, если значения в плейбуке не заданы.
  • Параметры 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

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

Возвращается: при успехе

ip_protocol

string

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

Возвращается: при успехе

ports

list / elements=string

Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP и TCP. Каждый элемент должен быть целым числом или диапазоном. Если значение не указано, правило применяется к подключениям через любой порт.

Примеры значений: [“22”], [“80”,”443”] и [“12345-12349”].

Возвращается: при успехе

creationTimestamp

string

Метка времени создания в текстовом формате RFC3339.

Возвращается: при успехе

denied

complex

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

Возвращается: при успехе

ip_protocol

string

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

Возвращается: при успехе

ports

list / elements=string

Необязательный список портов, к которым применяется это правило. Это поле применимо только для протоколов UDP и TCP. Каждый элемент должен быть целым числом или диапазоном. Если значение не указано, правило применяется к подключениям через любой порт.

Примеры значений: [“22”], [“80”,”443”] и [“12345-12349”].

Возвращается: при успехе

description

string

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

Возвращается: при успехе

destinationRanges

list / elements=string

Если указаны диапазоны адресов назначения, брандмауэр применяется только к трафику, IP-адрес назначения которого входит в эти диапазоны. Диапазоны должны быть указаны в формате CIDR. Поддерживается только IPv4.

Возвращается: при успехе

direction

string

Направление трафика, к которому применяется этот брандмауэр; по умолчанию используется INGRESS. Примечание: для входящего трафика (INGRESS) указывать destinationRanges нельзя; для исходящего трафика (EGRESS) указывать sourceRanges ИЛИ sourceTags нельзя.

Возвращается: при успехе

disabled

boolean

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

Возвращается: при успехе

id

integer

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

Возвращается: при успехе

logConfig

complex

Это поле содержит параметры ведения журнала для конкретного правила брандмауэра.

Если ведение журнала включено, журналы будут экспортироваться в Cloud Logging.

Возвращается: при успехе

enable

boolean

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

Возвращается: при успехе

metadata

string

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

Возвращается: при успехе

name

string

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

Возвращается: при успехе

network

dictionary

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

integer

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

Возвращается: при успехе

sourceRanges

list / elements=string

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

Возвращается: при успехе

sourceServiceAccounts

list / elements=string

Если указаны исходные сервисные аккаунты, брандмауэр применяется только к трафику, исходящему от экземпляра с сервисным аккаунтом из этого списка. Исходные сервисные аккаунты нельзя использовать для управления трафиком к внешнему IP-адресу экземпляра, поскольку сервисные аккаунты связаны с экземпляром, а не с IP-адресом. sourceRanges можно задать одновременно с sourceServiceAccounts. Если заданы оба свойства, брандмауэр применяется к трафику, IP-адрес источника которого входит в sourceRanges ИЛИ принадлежит экземпляру с сервисным аккаунтом, указанным в sourceServiceAccount. Для применения брандмауэра подключению не обязательно соответствовать обоим свойствам. sourceServiceAccounts нельзя использовать одновременно с sourceTags или targetTags.

Возвращается: при успехе

sourceTags

list / elements=string

Если указаны исходные теги, брандмауэр применяется только к трафику, IP-адрес источника которого принадлежит тегу из списка исходных тегов. Исходные теги нельзя использовать для управления трафиком к внешнему IP-адресу экземпляра, поскольку теги связаны с экземпляром, а не с IP-адресом. Можно задать sourceRanges, sourceTags или оба свойства. Если заданы оба свойства, брандмауэр применяется к трафику, IP-адрес источника которого входит в sourceRanges ИЛИ принадлежит тегу, указанному в свойстве sourceTags. Для применения брандмауэра подключению не обязательно соответствовать обоим свойствам.

Возвращается: при успехе

targetServiceAccounts

list / elements=string

Список сервисных аккаунтов, определяющих группы экземпляров в сети, которым разрешено устанавливать сетевые подключения согласно allowed[].

targetServiceAccounts нельзя использовать одновременно с targetTags или sourceTags. Если не указаны ни targetServiceAccounts, ни targetTags, правило брандмауэра применяется ко всем экземплярам в указанной сети.

Возвращается: при успехе

targetTags

list / elements=string

Список тегов экземпляров, определяющих группы экземпляров в сети, которым разрешено устанавливать сетевые подключения согласно allowed[].

Если targetTags не указаны, правило брандмауэра применяется ко всем экземплярам в указанной сети.

Возвращается: при успехе

Авторы

  • Google Inc. (@googlecloudplatform)

Ссылки на коллекцию

  • Отслеживание проблем
  • Домашняя страница
  • Репозиторий (исходный код)

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

Spec-Zone.ru

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