mirror of
https://github.com/prowler-cloud/prowler.git
synced 2025-12-19 05:17:47 +00:00
40 lines
1.9 KiB
Bash
40 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Prowler - the handy cloud security tool (c) by Toni de la Fuente
|
|
#
|
|
# This Prowler check is licensed under a
|
|
# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
|
|
#
|
|
# You should have received a copy of the license along with this
|
|
# work. If not, see <http://creativecommons.org/licenses/by-nc-sa/4.0/>.
|
|
|
|
CHECK_ID_check118="1.18"
|
|
CHECK_TITLE_check118="[check118] Ensure IAM Master and IAM Manager roles are active (Scored)"
|
|
CHECK_SCORED_check118="SCORED"
|
|
CHECK_ALTERNATE_check118="check118"
|
|
|
|
check118(){
|
|
# "Ensure IAM Master and IAM Manager roles are active (Scored)"
|
|
FINDMASTERANDMANAGER=$($AWSCLI iam list-roles $PROFILE_OPT --region $REGION --query "Roles[*].{RoleName:RoleName}" --output text | grep -E 'Master|Manager'| tr '
|
|
' ' ')
|
|
if [[ $FINDMASTERANDMANAGER ]];then
|
|
textInfo "Found next roles as possible IAM Master and IAM Manager candidates: "
|
|
textInfo "$FINDMASTERANDMANAGER "
|
|
textInfo "run the commands below to check their policies with section 1.18 in the guide..."
|
|
for role in $FINDMASTERANDMANAGER;do
|
|
# find inline policies in found roles
|
|
INLINEPOLICIES=$($AWSCLI iam list-role-policies --role-name $role $PROFILE_OPT --region $REGION --query "PolicyNames[*]" --output text)
|
|
for policy in $INLINEPOLICIES;do
|
|
textInfo "INLINE: $AWSCLI iam get-role-policy --role-name $role --policy-name $policy $PROFILE_OPT --region $REGION --output json"
|
|
done
|
|
# find attached policies in found roles
|
|
ATTACHEDPOLICIES=$($AWSCLI iam list-attached-role-policies --role-name $role $PROFILE_OPT --region $REGION --query "AttachedPolicies[*]" --output text)
|
|
for policy in $ATTACHEDPOLICIES;do
|
|
textInfo "ATTACHED: $AWSCLI iam get-role-policy --role-name $role --policy-name $policy $PROFILE_OPT --region $REGION --output json"
|
|
done
|
|
done
|
|
else
|
|
textFail "IAM Master and IAM Manager roles not found"
|
|
fi
|
|
}
|