Skip to content

Instantly share code, notes, and snippets.

@bethdevopsbunny
Last active September 4, 2023 14:25
Show Gist options
  • Save bethdevopsbunny/89fcec74e746ed6e0ee879f6d70d9096 to your computer and use it in GitHub Desktop.
Save bethdevopsbunny/89fcec74e746ed6e0ee879f6d70d9096 to your computer and use it in GitHub Desktop.
Find unique permissions between 2 Google Cloud roles
function unique_gcp_role (){
# colouring output
red=`tput setaf 1`
green=`tput setaf 2`
underlined=`tput smul`
reset=`tput sgr0`
# request role data from google
gcp_role_1="roles/$1"
gcp_role_2="roles/$2"
gcp_role_permissions_1=$(gcloud iam roles describe $gcp_role_1 | awk '/^-/')
gcp_role_permissions_2=$(gcloud iam roles describe $gcp_role_2 | awk '/^-/')
# first unique
echo ""
echo "${underlined}permissions unique to role $1${reset}"
echo ""
gcp_role_unique_1=$(comm -23 <(echo "$gcp_role_permissions_1" | sort) <(echo "$gcp_role_permissions_2" | sort))
if [ -z "$gcp_role_unique_1" ]; then echo "- ${green}no unique permissions${reset}"; else echo $gcp_role_unique_1; fi
echo ""
# second unique
echo ""
echo "${underlined}permissions unique to role $2${reset}"
echo ""
gcp_role_unique_2=$(comm -23 <(echo "$gcp_role_permissions_2" | sort) <(echo "$gcp_role_permissions_1" | sort))
if [ -z "$gcp_role_unique_2" ]; then echo "- ${green}no unique permissions${reset}"; else echo $gcp_role_unique_2; fi
echo ""
}
@bethdevopsbunny
Copy link
Author

bethdevopsbunny commented Aug 26, 2023

Nice and simple way to compare 2 Google Cloud roles when trying to prevent redundant assignments.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment