turbot/steampipe-mod-aws-insights

Dashboard: AWS IAM Credential Report

This report answers the following questions:

  • Which users do not have a password?
  • What is the age of the password?
  • When was the password last changed?
  • When were the access keys last used?
  • Does the user have signing certificates?
  • How old are the signing certificates and when were they last rotated?
This dashboard contains 1 table and 2 texts.

Usage

Install the mod:

mkdir dashboards
cd dashboards
powerpipe mod init
powerpipe mod install github.com/turbot/steampipe-mod-aws-insights

Start the Powerpipe server:

steampipe service start
powerpipe server

Open http://localhost:9033 in your browser and select AWS IAM Credential Report dashboard.

You could also snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe dashboard run aws_insights.dashboard.iam_credential_report --share

Queries

This dashboard uses the the following queries:
select
user_name as "User Name",
user_arn as "User ARN",
password_enabled as "Password Enabled",
mfa_active as "MFA Active",
password_status as "Password Status",
now()::date - password_last_changed::date as "Password Age in Days",
password_last_changed as "Password Changed Timestamp",
date_trunc('day',age(now(),password_last_used))::text as "Password Last Used",
password_last_used as "Password Last Used Timestamp",
date_trunc('day',age(now(),password_next_rotation))::text as "Next Password Rotation",
password_next_rotation "Next Password Rotation Timestamp",
access_key_1_active as "Access Key 1 Active",
now()::date - access_key_1_last_rotated::date as "Key 1 Age in Days",
access_key_1_last_rotated as "Key 1 Last Rotated",
date_trunc('day',age(now(),access_key_1_last_used_date))::text as "Key 1 Last Used",
access_key_1_last_used_date as "Key 1 Last Used Timestamp",
access_key_1_last_used_region as "Key 1 Last Used Region",
access_key_1_last_used_service as "Key 1 Last Used Service",
access_key_2_active as "Access Key 2 Active",
now()::date - access_key_2_last_rotated::date as "Key 2 Age in Days",
access_key_2_last_rotated as "Key 2 Last Rotated Timestamp",
date_trunc('day',age(now(),access_key_2_last_used_date))::text as "Key 2 Last Used",
access_key_2_last_used_date as "Key 2 Last Used Timestamp",
access_key_2_last_used_region as "Key 2 Last Used Region",
access_key_2_last_used_service as "Key 2 Last Used Service",
cert_1_active as "Cert 1 Active",
now()::date - cert_1_last_rotated::date as "Cert 1 Age in Days",
cert_1_last_rotated "Cert 1 Last Rotated",
cert_2_active as "Cert 2 Active",
now()::date - cert_2_last_rotated::date as "Cert 2 Age in Days",
cert_2_last_rotated as "Cert 2 Last Rotated",
a.title as "Account",
r.account_id as "Account ID"
from
aws_iam_credential_report as r,
aws_account as a
where
a.account_id = r.account_id
order by
user_name;

Tags