2017-08-29 2 views
0

J'utiliseCréation NSG en utilisant sdk python Azure ne pas utiliser la règle de sécurité

λ pip show azure Name: azure Version: 2.0.0

Je veux créer un NSG avec une règle de sécurité spécifique. J'ai le code suivant.

`` `

from azure.mgmt.compute import ComputeManagementClient 
from azure.mgmt.network import NetworkManagementClient 
from azure.common.credentials import ServicePrincipalCredentials 
from azure.mgmt.network.v2017_03_01.models import NetworkSecurityGroup 
from azure.mgmt.network.v2017_03_01.models import SecurityRule 
subscription_id = 'my-id' 
credentials = ... 

compute_client = ComputeManagementClient(
    credentials, 
    subscription_id 
) 

network_client = NetworkManagementClient(
    credentials, 
    subscription_id 
) 
from azure.mgmt.resource.resources import ResourceManagementClient 

resource_client = ResourceManagementClient(
    credentials, 
    subscription_id 
) 
resource_client.providers.register('Microsoft.Compute') 
resource_client.providers.register('Microsoft.Network') 

resource_group_name = 'test-rg' 

security_rule = SecurityRule(protocol='Tcp', source_address_prefix='Internet', 
           source_port_range="*", destination_port_range="3389", priority=100, 
           destination_address_prefix='*', access='Allow', direction='Inbound') 
nsg_params = NetworkSecurityGroup(id='test-nsg', location='UK South', tags={ 'name' : 'testnsg' }) 
network_client.network_security_groups.create_or_update(resource_group_name, "test-nsg", parameters=nsg_params, security_rules=[security_rule]) 

Cela ne crée l'amende NSG mais ne parvient pas à créer les règles appropriées.

Qu'est-ce qui me manque?

Répondre

1

Nous pouvons utiliser ce script pour y parvenir:

from azure.common.credentials import ServicePrincipalCredentials 
from azure.mgmt.compute import ComputeManagementClient 
from azure.mgmt.network import NetworkManagementClient 
from azure.mgmt.network.v2017_03_01.models import NetworkSecurityGroup 
from azure.mgmt.network.v2017_03_01.models import SecurityRule 
from azure.mgmt.resource.resources import ResourceManagementClient 

subscription_id = 'xxxxxxxxx-xxxxxxxxxxxxxxxxxxxx' 
credentials = ServicePrincipalCredentials(
    client_id = 'xxxxxx-xxxx-xxx-xxxx-xxxxxxx', 
    secret = 'xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx', 
    tenant = 'xxxxxx-xxxxxxx' 
) 

compute_client = ComputeManagementClient(
    credentials, 
    subscription_id 
) 

network_client = NetworkManagementClient(
    credentials, 
    subscription_id 
) 

resource_client = ResourceManagementClient(
    credentials, 
    subscription_id 
) 
resource_client.providers.register('Microsoft.Compute') 
resource_client.providers.register('Microsoft.Network') 

resource_group_name = 'test-rg' 


parameters = NetworkSecurityGroup() 
parameters.location = 'UK South' 

parameters.security_rules = [SecurityRule('Tcp', '*', '*', 'Allow', 'Inbound', description='Allow RDP port 3389', 
           source_port_range='*', destination_port_range='3389', priority=100, name='RDP01')] 


network_client.network_security_groups.create_or_update(resource_group_name, "test-nsg", parameters) 

network_client.network_security_groups.create_or_update n'ont trois valeurs, resource_group, nom_groupe_sécurité et parametes.

Plus d'informations sur network_client.network_security_groups.create_or_update, s'il vous plaît se référer à ce link.