2015-04-19 6 views
1

J'essaie de créer une règle sortante pour un groupe de sécurité utilisant aws cli. je l'ai utilisé la commande suivanteUne erreur client (UnknownParameter) s'est produite lors de l'appel de l'opération AuthorizeSecurityGroupEgress: Le paramètre CidrIp n'est pas reconnu

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

qui m'a donné l'erreur:

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

Le fichier JSON d'entrée auth_sec_grp_egress1.json est

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

je regardais AWS documetation l'erreur code UnknownParameter, qui indique

An unknown or unrecognized parameter was supplied. Requests that could cause this error include supplying a misspelled parameter or a parameter that is not supported for the specified API version.

mais le JSON je fournis en entrée est générée par la commande

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

je travaille avec aws Version cli - aws-cli/1.7.22 Python/2.7.9 de Windows/7

Répondre

0

Il fonctionne très bien avec --ip-permissions/IpPermissions

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

Le T La réponse d'uxLife était juste. Je ne sais pas pourquoi il a été downvoted: -/ Je vais ajouter ma contribution sur le SDK Java, parce que je recevais la même erreur. J'essayais de révoquer la règle de sortie d'un SecurityGroup en utilisant le Java SDK.

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

Je recevais la même erreur à propos de CidrIp. Il semble que ce soit une erreur de le faire. Je ne sais toujours pas pourquoi, mais j'ai déplacé le paramètre CidrIp vers IpPermissions/IpRanges et cela a fonctionné.

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")); 
    }}));