Политика безопасности Egress с Boto - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь создать исходящую групповую политику безопасности для sg1, в которой в качестве пункта назначения используется другая группа безопасности sg2. Согласно документации authorize_egress() :

IpPermissions-> IPRanges-> CidrIp - Вы можете указать диапазон CIDR или исходную группу безопасности , но не оба. Чтобы указать один адрес IPv4, используйте длину префикса / 32.

SourceSecurityGroupName - Не поддерживается. Используйте набор разрешений IP для указания целевой группы безопасности .

Однако следующий код завершается ошибкой с непредвиденной ошибкой типа параметра - кто-нибудь знает синтаксис этого и / или что я делаю неправильно?

sg1 = ec2.create_security_group(GroupName=sg1, Description=sg1, VpcId=vpc.id)

sg1_policy_egress = [{
    'IpProtocol': 'tcp', 
    'FromPort': 443, 
    'ToPort': 443,
    'IpRanges': [{
        'CidrIp': sg2
    }]
}]

sg1.authorize_egress(IpPermissions=sg1_policy_egress)

1 Ответ

0 голосов
/ 07 сентября 2018

Нельзя указывать группы в списке IpRanges. Вам нужно использовать список UserIdGroupPairs. Я рекомендую использовать значение идентификатора группы sg2 для поля GroupId. Возможны и другие способы указания группы адресатов, но они не нужны для описываемого вами случая.

В частности, вы хотите:

sg1_policy_egress = [{
    'IpProtocol': 'tcp', 
    'FromPort': 443, 
    'ToPort': 443,
    'UserIdGroupPairs': [{
        'GroupId': sg2
    }]
}]
...