如何使用boto3 authorize_security_group_ingress在非默认VPC中的两个安全组之间添加规则

时间:2016-05-03 18:10:15

标签: amazon-ec2 aws-cli boto3

我正在尝试使用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?

1 个答案:

答案 0 :(得分:7)

正确的语法是:

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