用于计算 AWS IAM 访问密钥年龄的 shell 脚本

时间:2021-02-10 07:32:29

标签: bash amazon-web-services shell amazon-iam

用于查找 iam 访问密钥的年龄和用户上次登录的 Shell 脚本。

3 个答案:

答案 0 :(得分:0)

好吧,您将不得不使用日期操作来执行相同的操作。 将 CreatedDate 保存在一个变量中。然后你可以使用这样的东西来获取经过的天数:

   #!/bin/bash
   datediff() {
        d1=$(date -d "$1" +%s)
        d2=$(date -d "$2" +%s)
        echo $(( (d1 - d2) / 86400 )) days
    }
    datediff $(date --iso-8601=seconds) $createdDate

答案 1 :(得分:0)

使用 GNU awk:

awk -F\" '{ gsub("[-:TZ]"," ",$4);print (((strftime("%s")-mktime($4))/60)/60)/24 }' <<< '"CreateDate": "2021-02-01T12:02:36Z"'

使用 gsub 将 -,:,T,Z 替换为空格。使用 mktime 创建转换日期的纪元版本。使用 strftime 计算 epoch 格式的差异,然后除以 60 得到分钟,再次除以 60 得到小时,24 得到天。

答案 2 :(得分:0)

  1. 通过 jq 查询从 json 中提取原始日期
  2. Calculate Difference 使用 date
#!/bin/bash
user=$1
PASS_LAST_USED="$(aws iam get-user --user-name $user | jq -r '.User.PasswordLastUsed')" #| grep -i PasswordLastUsed
CREATE_DATE="$(aws iam list-access-keys --user-name $user | jq -r '.AccessKeyMetadata[].CreateDate')" #| grep -i createdate


echo "$(( (  $(gdate "+%s") - $(gdate -d "$PASS_LAST_USED" "+%s") )/(60*60*24) )) days"
echo "$(( (  $(gdate "+%s") - $(gdate -d "$CREATE_DATE" "+%s") )/(60*60*24) )) days"

相关问题