From 4ffdcef9476417c78c82f9fed60f9130e282cfac Mon Sep 17 00:00:00 2001 From: mgeeky Date: Tue, 3 Dec 2019 16:52:32 +0100 Subject: [PATCH] evaluate-iam-role: support for wildcarded permissions --- clouds/aws/evaluate-iam-role.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/clouds/aws/evaluate-iam-role.sh b/clouds/aws/evaluate-iam-role.sh index 723ca0d..c7975cd 100755 --- a/clouds/aws/evaluate-iam-role.sh +++ b/clouds/aws/evaluate-iam-role.sh @@ -9,6 +9,7 @@ PROFILE=$1 ROLE_NAME=$2 known_dangerous_permissions=( + "*:*" "iam:CreatePolicyVersion" "iam:SetDefaultPolicyVersion" "iam:PassRole" @@ -63,6 +64,8 @@ for policy in "${attached_role_policies[@]}" ; do for dangperm in "${known_dangerous_permissions[@]}"; do if echo "$dangperm" | grep -iq $perm ; then dangerous_permissions+=("$perm") + elif echo "$perm" | grep -qP "\w+:\*"; then + dangerous_permissions+=("$perm") fi done done @@ -71,7 +74,8 @@ done if [[ ${#dangerous_permissions[@]} -gt 0 ]]; then echo -e "\n\n=============== Detected dangerous permissions granted ===============" - for dangperm in "${dangerous_permissions[@]}"; do + sorted=($(echo "${dangerous_permissions[@]}" | tr ' ' '\n' | sort -u )) + for dangperm in "${sorted[@]}"; do echo -e "\t$dangperm" done else