sh 使用本地IP地址刷新AWS VPC安全组的脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 使用本地IP地址刷新AWS VPC安全组的脚本相关的知识,希望对你有一定的参考价值。

#!/bin/bash

SGID=sg-123ad456
PROFILE=aws-profile

# Add current IP to ingress list
myip=$(curl -s https://rand.tools/ip/)
aws --profile $PROFILE ec2 authorize-security-group-ingress --dry-run --group-id $SGID --ip-permissions "[{\"IpProtocol\": \"tcp\", \"FromPort\": 22, \"ToPort\": 22, \"IpRanges\": [{\"CidrIp\": \"$myip/32\"}]}]"

# Remove any old IPs from ingress
OIFS=$IFS
IFS=$'\n'
for i in $(aws --profile $PROFILE ec2 describe-security-groups --group-id $SGID --query "SecurityGroups[*].IpPermissions[*].{IpProtocol:IpProtocol,ToPort:ToPort,FromPort:FromPort,Ips:IpRanges[*].CidrIp|join(\`,\`,@)}" --output text); do
	IFS=$OIFS
	items=($i)
	for ip in $(echo ${items[2]} | sed -e 's/,/ /g'); do
		if [[ $ip != "$myip/32" ]]; then
			echo "REMOVE: $ip ${items[1]} ${items[0]} ${items[3]}"
			aws --profile $PROFILE ec2 revoke-security-group-ingress --group-id $SGID --ip-permissions "[{\"IpProtocol\": \"${items[1]}\", \"FromPort\": ${items[0]}, \"ToPort\": ${items[3]}, \"IpRanges\": [{\"CidrIp\": \"$ip\"}]}]"
		fi
	done
	IFS=$'\n'
done

以上是关于sh 使用本地IP地址刷新AWS VPC安全组的脚本的主要内容,如果未能解决你的问题,请参考以下文章

AWS RDS Aurora - 如何使用 PgAdmin 进行连接?

亚马逊AWS中国 VPC 流日志怎么看?

aws 创建基于vpc的elasticsearch service

aws配置点到点vpn隧道

如何在 AWS 中刷新 VPC 中的 DNS 条目?

传出流量 AWS 的公共 IP 地址