【发布时间】:2022-01-03 20:43:45
【问题描述】:
我正在尝试创建一个脚本来将我的 IP 地址添加到 AWS VPC 安全组中
> aws ec2 modify-security-group-rules --group-id GROUPID\
> --security-group-rules SecurityGroupRuleId= RULEID\
SecurityGroupRule={IpProtocol:'tcp',FromPort:433,ToPort:433,CidrIpv4:'MYIP'}
但我不断收到不同的错误,例如 -
IpProtocol:tcp,类型:
,有效类型:
谁能帮忙找出正确的语法?
更新: 我尝试了一种似乎效果更好的新语法
SecurityGroupRule={{IpProtocol=tcp},{FromPort=433},{ToPort=433},{CidrIpv4='IP'}}
但现在我从 AWS 收到不同的错误 -
portRange 的值无效。必须使用 TCP/UDP 指定 from 和 to 端口。
更新:供参考 - 这是我使用的解决方法 - (基于 John Rotenstein 的回答) 我没有修改规则,而是每次都创建一个新规则并保存规则 ID,以便下次运行脚本时可以将其删除
IP=`curl -s http://whatismyip.akamai.com/`
aws ec2 revoke-security-group-ingress \
--group-id GROUP_ID \
--security-group-rule-ids $(cat ruleid_1.txt)
aws ec2 authorize-security-group-ingress --group-id GROUP_ID\
--ip-permissions "IpProtocol"="tcp","FromPort"=433,"ToPort"=443,"IpRanges"="[{CidrIp=$IP/32,Description=Shalev}]"|jq '.SecurityGroupRules[0].SecurityGroupRuleId' -r > ruleid_1.txt
【问题讨论】:
-
=和RULEID之间应该没有空格,并且应该有一个,而不是那个和SecurityGroupRule之间的空格 -
谢谢你的回答我照你说的做了,但仍然得到 Invalid type for each parameter Invalid type for parameter SecurityGroupRules[0].SecurityGroupRule, value: IpProtocol:tcp, type:
,有效类型:
标签: bash amazon-web-services aws-cli amazon-vpc