как использовать boto3 authorize_security_group_ingress для добавления правила между двумя группами безопасности в нестандартном VPC

Я пытаюсь использовать boto3 для обновления правил группы безопасности, чтобы добавить правило в группу безопасности a (sg_a), чтобы разрешить группе безопасности b (sg_b) доступ к порту 8443.

Я пытаюсь использовать клиент EC2 для достижения этой цели со следующими

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

но я получил эту ошибку:

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

Как использовать authorize_security_group_igress для VPC не по умолчанию?


person blindstack    schedule 03.05.2016    source источник
comment
могут помочь   -  person driftcatcher    schedule 03.05.2016
comment
правильный синтаксис: ec2.authorize_security_group_ingress (GroupId = sg_a, IpPermissions = [{'IpProtocol': 'tcp', 'FromPort': from_port, 'ToPort': to_port, 'UserIdGroupPairs': [{'GroupId': sg_b} ]}],) `   -  person blindstack    schedule 03.05.2016
comment
Напишите свое решение и отметьте его как решенное.   -  person mootmoot    schedule 06.05.2016


Ответы (1)


правильный синтаксис:

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