Группа/правило безопасности сети Azure — префиксы адресов и диапазоны портов

По определению пакета SDK Azure python для класса SecurityRule:

SecurityRule(protocol, source_address_prefix, destination_address_prefix, access, direction, id=None, description=None, source_port_range=None, destination_port_range=None, source_address_prefixes=None, destination_address_prefixes=None, source_port_ranges=None, destination_port_ranges=None, priority=None, provisioning_state=None, name=None, etag=None)

С помощью source_address_prefixes и destination_port_ranges мы должны иметь возможность настроить список CIDRS или диапазонов портов, но я не могу найти способ проверить, включена ли конфигурация.

И портал, и «получить» не отображают префиксы или диапазоны.


person H. Xiao    schedule 24.08.2017    source источник


Ответы (1)


Два параметра, о которых вы упомянули, были добавлены в 1.4.0, выпущенном вчера, пока нет примера того, как их использовать. Однако вы можете добиться такого же поведения с прежними параметрами:

async_security_rule = network_client.security_rules.create_or_update(
    self.group_name,
    security_group_name,
    new_security_rule_name,
    {
            'access':azure.mgmt.network.models.SecurityRuleAccess.allow,
            'description':'New Test security rule',
            'destination_address_prefix':'*',
            'destination_port_range':'123-3500',
            'direction':azure.mgmt.network.models.SecurityRuleDirection.outbound,
            'priority':400,
            'protocol':azure.mgmt.network.models.SecurityRuleProtocol.tcp,
            'source_address_prefix':'*',
            'source_port_range':'655',
    }
)
security_rule = async_security_rule.result()

security_rule = self.network_client.security_rules.get(
    self.group_name,
    security_group_name,
    security_rule.name
)
self.assertEqual(security_rule.name, new_security_rule_name)

Вам просто нужно использовать синтаксис соединения - для destination_port_range. Вы также можете проверить это с помощью интерфейса командной строки 2.0, который использует этот SDK и имеет команды NSG.

Обзор сетевого клиента доступен здесь: https://docs.microsoft.com/python/api/overview/azure/network

Вы можете создать задачу на трекере, чтобы запросить образцы: https://github.com/Azure/azure-sdk-for-python/issues

person Laurent Mazuel    schedule 24.08.2017
comment
Чтобы добавить к этому, с последним SDK эти параметры теперь должны отображаться в вызове get. source/destination_port_ranges просто принимает список допустимых портов или диапазонов портов. Например: ['80', '100-200']. Однако * можно использовать только с отдельным свойством, а не в списке. source/destination_address_prefixes принимает список адресов CIDR, например: ['10.0.0.0/24', '11.0.0.0/24']. Чтобы использовать * или тег (например, Internet или VirtualNetwork), вы должны использовать свойство единственного числа. Их нельзя использовать в списке. - person Travis Prescott; 26.08.2017
comment
На следующей неделе выйдет CLI 2.0, который позволит вам увидеть, настроены ли они с помощью nsg rule show. В предстоящем выпуске команды nsg rule create/update будут обновлены, чтобы вы могли установить их. - person Travis Prescott; 26.08.2017