2016-05-03 57 views
5

Sto tentando di utilizzare boto3 per aggiornare le regole dei gruppi di sicurezza, per aggiungere una regola al gruppo di sicurezza a (sg_a) per consentire il gruppo di sicurezza b (sg_b) per accedere alla porta 8443.come utilizzare boto3 authorize_security_group_ingress per aggiungere una regola tra due gruppi di sicurezza in VPC non predefinito

sto cercando di utilizzare il client EC2 per raggiungere questo obiettivo con la seguente

ec2.authorize_security_group_ingress(
     GroupId=sg_a, 
     SourceSecurityGroupName=sg_b, 
     IpProtocol='tcp', 
     FromPort=service_port, 
     ToPort=service_port 
    ) 

ma ho ottenuto questo errore:

botocore.exceptions.ClientError: An error occurred (VPCIdNotSpecified) when calling the AuthorizeSecurityGroupIngress operation: No default VPC for this user. 

Come si usa Authori ze_security_group_igress per un VPC non predefinito?

+0

[la documentazione può aiutare] (http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.authorize_security_group_ingress) – hangtwenty

+1

la sintassi corretta è: ' ec2.authorize_security_group_ingress ( GroupId = sg_a, IpPermissions = [{ 'IpProtocol': 'tcp', 'FromPort': from_port, 'ToPort': to_port, 'UserIdGroupPairs' : [{ 'GroupId': sg_b }] }], ) ' – blindstack

+0

Si prega di scrivere la soluzione e contrassegnarlo come risolto. – mootmoot

risposta

3

la sintassi corretta è:

ec2.authorize_security_group_ingress( 
    GroupId=sg_a, 
    IpPermissions=[ 
     {'IpProtocol': 'tcp', 
     'FromPort': from_port, 
     'ToPort': to_port, 
     'UserIdGroupPairs': [{ 'GroupId': sg_b }] } 
    ], 
)