Възникна клиентска грешка (UnknownParameter) при извикване на операцията AuthorizeSecurityGroupEgress: Параметърът CidrIp не е разпознат

Опитвам се да създам изходящо правило за група за сигурност, използвайки aws cli. използвах следната команда

aws ec2 authorize-security-group-egress --cli-input-json file://auth_sec_grp_egress1.json

което ми даде грешка:

A client error (UnknownParameter) occurred when calling the AuthorizeSecurityGroupEgress operation: The parameter CidrIp is not recognized

Входящият json файл auth_sec_grp_egress1.json е

{
    "DryRun": false, 
    "GroupId": "sg-99b2f2fd", 
    "IpProtocol": "tcp", 
    "FromPort": 123, 
    "ToPort": 123, 
    "CidrIp": "172.24.102.126/32"
}

Разгледах документацията на AWS за кода за грешка UnknownParameter, което казва

Предоставен е неизвестен или неразпознат параметър. Заявките, които могат да причинят тази грешка, включват предоставяне на грешно изписан параметър или параметър, който не се поддържа за определената версия на API.

но json, който предоставям като вход, се генерира от командата

aws ec2 authorize-security-group-egress --generate-cli-skeleton > auth_sec_grp_egress1.json

работя с aws cli версия - aws-cli/1.7.22 Python/2.7.9 Windows/7


person Subham Tripathi    schedule 19.04.2015    source източник


Отговори (2)


Работи добре с --ip-permissions/IpPermissions

{
    "DryRun": false, 
    "GroupId": "sg-99b2f2fd",
    "IpPermissions": [
        {
            "IpProtocol": "tcp",
            "FromPort": 123,
            "ToPort": 123,
            "IpRanges": [
                {
                  "CidrIp": "172.24.102.126/32"
                }
            ]
        }
    ]
}
person Tuxlife    schedule 28.01.2016
comment
Когато направя това, вместо това получавам The specified rule does not exist in this security group. (опитвам се да премахна един CIDR диапазон от правилото, а не цялото правило...) (Не мога да добавя ново - групата е пълна, поради което Опитвам се да премахна някои диапазони) - person Gert van den Berg; 08.01.2021

Отговорът на TuxLife беше правилен. Не знам защо беше гласувано против :-/ Ще добавя моя принос за Java SDK, защото получавах същата грешка.

Опитвах се да отменя правилото за излизане на SecurityGroup с помощта на Java SDK.

ec2.revokeSecurityGroupEgress(new RevokeSecurityGroupEgressRequest()
     .withGroupId(id)
     .withCidrIp("0.0.0.0/0");

Получавах същата грешка за CidrIp. Изглежда, че начинът да се направи е грешен. Все още не знам защо, но преместих параметъра CidrIp в IpPermissions / IpRanges и той проработи.

ec2.revokeSecurityGroupEgress(new RevokeSecurityGroupEgressRequest()
     .withGroupId(id)
     .withIpPermissions(new ArrayList<IpPermission>() {{
         this.add(new IpPermission()
                 .withIpRanges(new ArrayList<String>() {{
                     this.add("0.0.0.0/0"); 
                 }})
                 .withIpProtocol("-1"));
     }}));
person JonDoe297    schedule 28.07.2016