azure.azcollection.azure_rm_securitygroup – Управление группами безопасности Azure сети
Примечание
Этот плагин входит в коллекцию azure.azcollection (версия 1.4.0).
Для его установки используйте: ansible-galaxy collection install azure.azcollection.
Для использования в playbook, укажите: azure.azcollection.azure_rm_securitygroup.
Новое в версии 0.1.0: из azure.azcollection
Обзор
- Создать, обновить или удалить группу безопасности сети.
- Группа безопасности содержит правила списка управления доступом (ACL), которые разрешают или запрещают сетевой трафик для подсетей или отдельных сетевых интерфейсов.
- Группа безопасности создается со набором правил безопасности по умолчанию и пустым набором правил безопасности.
- Направляйте сетевой трафик, добавляя правила в пустой набор правил безопасности.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.7
- azure >= 2.0.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| ad_user строка | Имя пользователя Active Directory. Используйте при аутентификации пользователем Active Directory, а не служебным принципалом. | ||
| adfs_authority_url строка добавлено в 0.0.1 azure.azcollection | URL авторизации Azure AD. Используйте при аутентификации с помощью имени пользователя/пароля и собственной службой ADFS. | ||
| api_profile строка добавлено в 0.0.1 azure.azcollection | Значение по умолчанию: "latest" | Выбирает профиль API для взаимодействия с Azure-сервисами. Значение по умолчанию latest подходит для общедоступных облаков; будущие значения позволят использовать с Azure Stack. | |
| append_tags логическое |
| Используется для управления тем, является ли поле тегов каноническим или оно просто добавляется к существующим тегам. При каноническом представлении любые теги, не найденные в параметре тегов, будут удалены из метаданных объекта. | |
| auth_source строка добавлено в 0.0.1 azure.azcollection |
| Управляет источником учетных данных для аутентификации. Также может быть задан через переменную среды ANSIBLE_AZURE_AUTH_SOURCE.Когда установлено значение auto (значение по умолчанию), приоритет имеет параметры модуля -> env -> credential_file -> cli.При установке env, учетные данные будут считываться из переменных среды.При установке credential_file, профиль будет считываться из ~/.azure/credentials.При установке cli, учетные данные будут получены из профиля Azure CLI. subscription_id или переменная окружения AZURE_SUBSCRIPTION_ID может использоваться для определения идентификатора подписки, если их несколько, в противном случае используется стандартная подписка Azure CLI.При установке msi, хост-машина должна быть Azure-ресурсом с включённой расширенной функцией MSI. subscription_id или переменная окружения AZURE_SUBSCRIPTION_ID может использоваться для определения идентификатора подписки, если ресурсу предоставлен доступ к нескольким подпискам, в противном случае выбирается первая подписка.msi добавлена в Ansible 2.6. | |
| cert_validation_mode строка добавлено в 0.0.1 azure.azcollection |
| Управляет поведением проверки сертификатов для Azure-точек входа. По умолчанию все модули проверяют сертификат сервера, но при использовании прокси-сервера HTTPS или при работе с Azure Stack может потребоваться отключить это поведение, передав ignore. Также может быть задан через профиль файла учетных данных или переменной среды AZURE_CERT_VALIDATION. | |
| client_id строка | Идентификатор клиента Azure. Используется при аутентификации с помощью служебного принципала. | ||
| cloud_environment строка добавлено в 0.0.1 azure.azcollection | Значение по умолчанию: "AzureCloud" | Для облачных сред, отличных от общедоступного облака США, имя среды (определяется Azure Python SDK, например, AzureChinaCloud, AzureUSGovernment) или URL-адрес точки входа для обнаружения метаданных (необходимо для Azure Stack). Также может быть задан через профиль файла учетных данных или переменной среды AZURE_CLOUD_ENVIRONMENT. | |
| default_rules строка | Набор правил по умолчанию, автоматически добавляемых в группу безопасности при её создании. В общем случае, правила по умолчанию не будут изменяться. Измените правила для управления потоком трафика в подсеть или сетевую интерфейс. См. правила ниже для структуры словаря правил. | ||
| location строка | Допустимая Azure-локация. По умолчанию соответствует местоположению группы ресурсов. | ||
| name строка | Имя группы безопасности для обработки. | ||
| password строка | Пароль пользователя Active Directory. Используется при аутентификации пользователем Active Directory, а не служебным принципалом. | ||
| profile строка | Профиль безопасности, найденный в файле ~/.azure/credentials. | ||
| purge_default_rules логическое |
| Удаление любых существующих правил, не соответствующих правилам, определённым в параметре default_rules. | |
| purge_rules логическое |
| Удаление любых существующих правил, не соответствующих правилам, определённым в параметрах правил. | |
| resource_group строка / обязательно | Имя группы ресурсов, к которой принадлежит группа безопасности. | ||
| rules строка | Набор правил, определяющих поток трафика в или из подсети или сетевой интерфейс. Каждое правило — словарь. | ||
| access строка |
| Разрешить или запретить поток трафика. | |
| description строка | Краткое описание назначения правила. | ||
| destination_address_prefix строка | Значение по умолчанию: "*" | Префикс адреса назначения. CIDR или диапазон IP-адресов назначения. Звёздочка * также может использоваться для соответствия всем исходным IP-адресам.Также можно использовать теги по умолчанию, такие как VirtualNetwork, AzureLoadBalancer и Internet.Может принимать строковый тип или список строковых типов. | |
| destination_application_security_groups список / элементы=строка | Список групп безопасности приложений назначения. Может быть списком идентификаторов ресурсов. Может быть списком имён в той же группе ресурсов. Может быть списком словарей, содержащих resource_group и name. Взаимоисключительно с destination_address_prefix и destination_address_prefixes. | ||
| destination_port_range строка | Значение по умолчанию: "*" | Порт или диапазон портов, на которые направлен трафик. Может принимать строковый тип или список строковых типов. | |
| direction строка |
| Указывает направление потока трафика. | |
| name строка / обязательно | Уникальное имя правила. | ||
| priority строка / обязательно | Порядок применения правила. Должно быть уникальным целым числом от 100 до 4096 включительно. | ||
| protocol строка |
| Принимаемый протокол трафика. | |
| source_address_prefix строка | Значение по умолчанию: "*" | CIDR или диапазон IP-адресов источника. Звёздочка * также может использоваться для соответствия всем исходным IP-адресам.Также можно использовать теги по умолчанию, такие как VirtualNetwork, AzureLoadBalancer и Internet.Если это правило входа, указывает источник сетевого трафика. Может принимать строковый тип или список строковых типов. | |
| source_application_security_groups список / элементы=строка | Список групп безопасности приложений источника. Может быть списком идентификаторов ресурсов. Может быть списком имён в той же группе ресурсов. Может быть списком словарей, содержащих resource_group и name. Взаимоисключительно с source_address_prefix и source_address_prefixes. | ||
| source_port_range строка | Значение по умолчанию: "*" | Порт или диапазон портов, из которых исходит трафик. Может принимать строковый тип или список строковых типов. | |
| secret строка | Секрет клиента Azure. Используется при аутентификации с помощью служебного принципала. | ||
| state строка |
| Утверждение состояния группы безопасности. Установите значение present, чтобы создать или обновить группу безопасности. Установите значение absent, чтобы удалить группу безопасности. | |
| subscription_id строка | Ваш идентификатор подписки Azure. | ||
| tags словарь | Словарь пар «строка:строка» для назначения метаданных объекту. Метаданные-теги объекта будут обновлены с предоставленными значениями. Для удаления тегов установите параметр append_tags в значение false. | ||
| tenant string | Идентификатор Azure-аренды. Используется при аутентификации с помощью принципала службы. | ||
Примечания
Примечание
- Для аутентификации в Azure можно передать параметры, установить переменные среды, использовать профиль, сохранённый в ~/.azure/credentials, или войти в систему перед выполнением задач или плейбука с помощью
az login. - Аутентификация также возможна с помощью принципала службы или пользователя Active Directory.
- Для аутентификации через принципала службы передайте subscription_id, client_id, secret и tenant или установите переменные среды AZURE_SUBSCRIPTION_ID, AZURE_CLIENT_ID, AZURE_SECRET и AZURE_TENANT.
- Для аутентификации через пользователя Active Directory передайте ad_user и password или установите AZURE_AD_USER и AZURE_PASSWORD в среде.
- В качестве альтернативы данные для аутентификации можно сохранить в ~/.azure/credentials. Это файл ini, содержащий раздел [default] и следующие ключи: subscription_id, client_id, secret и tenant или subscription_id, ad_user и password. Также можно добавить дополнительные профили. Укажите профиль, передав параметр profile или установив AZURE_PROFILE в среде.
См. также
См. также
- Вход в Azure CLI
-
Как войти в систему, используя команду
az login.
Примеры
# Create a security group
- azure_rm_securitygroup:
resource_group: myResourceGroup
name: mysecgroup
purge_rules: yes
rules:
- name: DenySSH
protocol: Tcp
destination_port_range: 22
access: Deny
priority: 100
direction: Inbound
- name: 'AllowSSH'
protocol: Tcp
source_address_prefix:
- '174.109.158.0/24'
- '174.109.159.0/24'
destination_port_range: 22
access: Allow
priority: 101
direction: Inbound
- name: 'AllowMultiplePorts'
protocol: Tcp
source_address_prefix:
- '174.109.158.0/24'
- '174.109.159.0/24'
destination_port_range:
- 80
- 443
access: Allow
priority: 102
# Update rules on existing security group
- azure_rm_securitygroup:
resource_group: myResourceGroup
name: mysecgroup
rules:
- name: DenySSH
protocol: Tcp
destination_port_range: 22-23
access: Deny
priority: 100
direction: Inbound
- name: AllowSSHFromHome
protocol: Tcp
source_address_prefix: '174.109.158.0/24'
destination_port_range: 22-23
access: Allow
priority: 102
direction: Inbound
tags:
testing: testing
delete: on-exit
# Create a securiy group with I(protocol=Icmp)
- azure_rm_securitygroup:
name: mysecgroup
resource_group: myResourceGroup
rules:
- name: SSH
protocol: Tcp
destination_port_range: 22
access: Allow
priority: 105
direction: Inbound
- name: ICMP
protocol: Icmp
priority: 106
# Delete security group
- azure_rm_securitygroup:
resource_group: myResourceGroup
name: mysecgroup
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое | Описание | |
|---|---|---|---|
| state complex | всегда | Текущее состояние группы безопасности. | |
| default_rules list / elements=string | всегда | Стандартные правила группы безопасности сети. Пример: [{'access': 'Allow', 'description': 'Разрешить входящий трафик от всех ВМ в VNET', 'destination_address_prefix': 'VirtualNetwork', 'destination_port_range': '*', 'direction': 'Inbound', 'etag': 'W/"edf48d56-b315-40ca-a85d-dbcb47f2da7d"', 'id': '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup/defaultSecurityRules/AllowVnetInBound', 'name': 'AllowVnetInBound', 'priority': 65000, 'protocol': '*', 'provisioning_state': 'Succeeded', 'source_address_prefix': 'VirtualNetwork', 'source_port_range': '*'}, {'access': 'Allow', 'description': 'Разрешить входящий трафик от балансировщика нагрузки Azure', 'destination_address_prefix': '*', 'destination_port_range': '*', 'direction': 'Inbound', 'etag': 'W/"edf48d56-b315-40ca-a85d-dbcb47f2da7d"', 'id': '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup/defaultSecurityRules/AllowAzureLoadBalancerInBound', 'name': 'AllowAzureLoadBalancerInBound', 'priority': 65001, 'protocol': '*', 'provisioning_state': 'Succeeded', 'source_address_prefix': 'AzureLoadBalancer', 'source_port_range': '*'}, {'access': 'Deny', 'description': 'Заблокировать весь входящий трафик', 'destination_address_prefix': '*', 'destination_port_range': '*', 'direction': 'Inbound', 'etag': 'W/"edf48d56-b315-40ca-a85d-dbcb47f2da7d"', 'id': '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup/defaultSecurityRules/DenyAllInBound', 'name': 'DenyAllInBound', 'priority': 65500, 'protocol': '*', 'provisioning_state': 'Succeeded', 'source_address_prefix': '*', 'source_port_range': '*'}, {'access': 'Allow', 'description': 'Разрешить исходящий трафик от всех ВМ к всем ВМ в VNET', 'destination_address_prefix': 'VirtualNetwork', 'destination_port_range': '*', 'direction': 'Outbound', 'etag': 'W/"edf48d56-b315-40ca-a85d-dbcb47f2da7d"', 'id': '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup/defaultSecurityRules/AllowVnetOutBound', 'name': 'AllowVnetOutBound', 'priority': 65000, 'protocol': '*', 'provisioning_state': 'Succeeded', 'source_address_prefix': 'VirtualNetwork', 'source_port_range': '*'}, {'access': 'Allow', 'description': 'Разрешить исходящий трафик от всех ВМ к Интернету', 'destination_address_prefix': 'Internet', 'destination_port_range': '*', 'direction': 'Outbound', 'etag': 'W/"edf48d56-b315-40ca-a85d-dbcb47f2da7d"', 'id': '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup/defaultSecurityRules/AllowInternetOutBound', 'name': 'AllowInternetOutBound', 'priority': 65001, 'protocol': '*', 'provisioning_state': 'Succeeded', 'source_address_prefix': '*', 'source_port_range': '*'}, {'access': 'Deny', 'description': 'Заблокировать весь исходящий трафик', 'destination_address_prefix': '*', 'destination_port_range': '*', 'direction': 'Outbound', 'etag': 'W/"edf48d56-b315-40ca-a85d-dbcb47f2da7d"', 'id': '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup/defaultSecurityRules/DenyAllOutBound', 'name': 'DenyAllOutBound', 'priority': 65500, 'protocol': '*', 'provisioning_state': 'Succeeded', 'source_address_prefix': '*', 'source_port_range': '*'}] | |
| id string | всегда | Идентификатор ресурса. Пример: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup | |
| location string | всегда | Расположение ресурса. Пример: westus | |
| name string | всегда | Имя группы безопасности. Пример: mysecgroup | |
| network_interfaces list / elements=string | всегда | Коллекция ссылок на сетевые интерфейсы. | |
| rules list / elements=string | всегда | Коллекция правил безопасности группы безопасности сети. Пример: [{'access': 'Deny', 'description': None, 'destination_address_prefix': '*', 'destination_port_range': '22', 'direction': 'Inbound', 'etag': 'W/"edf48d56-b315-40ca-a85d-dbcb47f2da7d"', 'id': '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup/securityRules/DenySSH', 'name': 'DenySSH', 'priority': 100, 'protocol': 'Tcp', 'provisioning_state': 'Succeeded', 'source_address_prefix': '*', 'source_port_range': '*'}, {'access': 'Allow', 'description': None, 'destination_address_prefix': '*', 'destination_port_range': '22', 'direction': 'Inbound', 'etag': 'W/"edf48d56-b315-40ca-a85d-dbcb47f2da7d"', 'id': '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroup/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/mysecgroup/securityRules/AllowSSH', 'name': 'AllowSSH', 'priority': 101, 'protocol': 'Tcp', 'provisioning_state': 'Succeeded', 'source_address_prefix': '174.109.158.0/24', 'source_port_range': '*'}] | |
| subnets list / elements=string | всегда | Коллекция ссылок на подсети. | |
| tags dictionary | всегда | Теги для назначения группе безопасности. Пример: {'delete': 'on-exit', 'foo': 'bar', 'testing': 'testing'} | |
| type string | всегда | Тип ресурса. Пример: Microsoft.Network/networkSecurityGroups | |
Авторы
- Chris Houseknecht (@chouseknecht)
- Matt Davis (@nitzmahone)
© 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/azure/azcollection/azure_rm_securitygroup_module.html