как создать правило входа с исходным кодом в boto3 - PullRequest
1 голос
/ 18 апреля 2020

Я пытаюсь создать группу безопасности в AWS, используя boto3, в которой источник трафика c поступает из существующей группы безопасности. Вот как я это делаю:

res = client.authorize_security_group_ingress(
    GroupId=sg_id,          <---- sg I want to modify
    IpPermissions=[{
        'IpProtocol': 'tcp',
        'FromPort': 80,
        'ToPort': 80,
        'IpRanges': [{'CidrIp': 'sg-xxxxxxx'] <--- sg I want to be the source
    }]
)

Но я получаю: An error occurred (InvalidParameterValue) when calling the AuthorizeSecurityGroupIngress operation: CIDR block sg-0ae9ec592f6d43219 is malformed

, что, честно говоря, довольно очевидно, потому что поле в IpRanges - CidrIp, а не что-то вроде groupId, что я и ожидал написать. Но согласно документации :

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

В действительности это не говорит «идентификатор группы безопасности источника», я просто предположил, что это будет идентификатор. Я попробовал имя, и оно также не работает (при указании имени будет пытаться посмотреть SG с именем в VP по умолчанию C)

1 Ответ

2 голосов
/ 18 апреля 2020

Необходимо использовать UserIdGroupPairs вместо IpRanges:

        'UserIdGroupPairs': [
            {
                'Description': 'string',
                'GroupId': 'string',
                'GroupName': 'string',
                'PeeringStatus': 'string',
                'UserId': 'string',
                'VpcId': 'string',
                'VpcPeeringConnectionId': 'string'
            },

Что означает:

UserIdGroupPairs (list) --

The security group and AWS account ID pairs.

    (dict) --

    Describes a security group and AWS account ID pair.
        Description (string) --

        A description for the security group rule that references this user ID group pair.

        Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*
        GroupId (string) --

        The ID of the security group.
        GroupName (string) --

        The name of the security group. In a request, use this parameter for a security group in EC2-Classic or a default VPC only. For a security group in a nondefault VPC, use the security group ID.

        For a referenced security group in another VPC, this value is not returned if the referenced security group is deleted.
        PeeringStatus (string) --

        The status of a VPC peering connection, if applicable.
        UserId (string) --

        The ID of an AWS account.

        For a referenced security group in another VPC, the account ID of the referenced security group is returned in the response. If the referenced security group is deleted, this value is not returned.

        [EC2-Classic] Required when adding or removing rules that reference a security group in another AWS account.
        VpcId (string) --

        The ID of the VPC for the referenced security group, if applicable.
        VpcPeeringConnectionId (string) --

        The ID of the VPC peering connection, if applicable.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...