123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #
- # remote-access - Setup remote access to the name ${1} security group for the ${2} port
- #
- # usage:
- # grantAccess name port
- # revokeAccess name port
- #
- grantAccess() {
- local data ip prior sgroup
- local GROUP_NAME="$1"
- local PORT="$2"
-
- ip=$(curl -s ipecho.net/plain)
- data=$(aws ec2 describe-security-groups --filter "Name=group-name,Values=${GROUP_NAME}")
- [ $? != 0 ] && exit 1
- sgroup=$(echo $data | jq -r ".SecurityGroups[].GroupId")
- existing=$(echo $data | jq -r ".SecurityGroups[].IpPermissions[] | select( (.FromPort == ${PORT})).IpRanges[].CidrIp")
- if [[ "${existing}" != *"${ip}"* ]] ; then
- aws ec2 revoke-security-group-ingress --group-id ${sgroup} --protocol tcp --port ${PORT} --cidr ${ip}/32 >/dev/null 2>&1
- aws ec2 authorize-security-group-ingress --group-id ${sgroup} --protocol tcp --port ${PORT} --cidr ${ip}/32
- [ $? != 0 ] && exit 1
- fi
- }
- revokeAccess() {
- local data ip prior sgroup
- local GROUP_NAME="$1"
- local PORT="$2"
- ip=$(curl -s ipecho.net/plain)
- data=$(aws ec2 describe-security-groups --filter "Name=group-name,Values=${GROUP_NAME}")
- [ $? != 0 ] && exit 1
- sgroup=$(echo $data | jq -r ".SecurityGroups[].GroupId")
- existing=$(echo $data | jq -r ".SecurityGroups[].IpPermissions[] | select( (.FromPort == ${PORT})).IpRanges[].CidrIp")
- if [[ "${existing}" != *"${ip}"* ]] ; then
- aws ec2 revoke-security-group-ingress --group-id ${sgroup} --protocol tcp --port 22 --cidr ${ip}/32
- [ $? != 0 ] && exit 1
- fi
- }
|