我有一个shell脚本,它将我的公共IP添加到指定的ec2-security-group。我已经浏览了一些AWS文档,但找不到使用哪个API来更新现有IP地址,而不是简单地添加一个。
我经历了以下几点:
- update-security-group-rule-descriptions-ingress
- authorize-security-group-ingress
是否有API可用于简单地更新安全组中的现有IP地址?
我将使用下面的bash脚本向安全组添加新条目。
#!/bin/bash
curl https://checkip.amazonaws.com > ip.txt
awk '{ print $0 "/32" }' < ip.txt > ipnew.txt
export stuff=$(cat ipnew.txt)
aws ec2 authorize-security-group-ingress --group-name XXXXX --protocol tcp --port 22 --cidr $stuff --profile xxxxx
5条答案
按热度按时间jvidinwx1#
此脚本将查找标记为密钥
ssh-from-my-ip
和不区分大小写的值true
或yes
的任何安全组。然后,它将撤销来自端口22的旧入口访问(如果有),并授权您的新IP CIDR。它需要aws cli和jq。kmbjn2e32#
没有“更新”规则的命令。您需要添加和删除规则。
下面是我使用的一个类似脚本:
然而,这最终会添加太多的规则,所以我需要删除现有的规则。您可以在添加规则之前自动删除。
8iwquhpp3#
您要查找的命令是modify-security-group-rules:https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-security-group-rules.html
下面是一个使用它的脚本。
ovfsdjhp4#
我已经能够破解我的方式来使这个工作。正如约翰建议,我已经创建了另一个安全组,添加了需要访问的端口,并通过shell脚本更新它。更新的工作原理是删除安全组中提到的所有规则,并再次添加它们与所需的IP
源代码已在Github上发布
zi8p0yeb5#
导出我的IP地址=$(curl https://checkip.amazonaws.com)
aws ec2授权-安全-组-入口-组-id sg-xxx -协议tcp-端口22 -cidr $my_ip/32