有没有办法列出 AWS Iam 用户属性

eek*_*nky 3 aws-cli

我找不到列出具有以下信息的 IAM 用户的方法:

  • 用户名
  • 关键年龄
  • 密码年龄
  • 上次登录
  • 启用 MFA
  • 最后一次使用
  • 键 活动?

我试过了,aws iam list-users但这并没有告诉我太多。

这可以使用 AWS CLI 吗?如果是这样,如何?

Ale*_*vey 5

我会给出一个答案,因为我认为有 4 个人投票结束了这个问题,这是不公平的。

简短的回答是,不,没有任何命令可以用来执行此操作,我可以理解为什么这令人困惑和令人惊讶。

可以使用以下方法在凭证报告中找到其中一些信息:

aws iam generate-credential-report
aws iam get-credential-report
Run Code Online (Sandbox Code Playgroud)

有关如何以编程方式获取凭据报告 ( ref ),请参阅文档。

从那里你可以得到:

  • mfa_active
  • access_key_1_active
  • access_key_1_last_used_date
  • access_key_1_last_rotated
  • 密码_last_used
  • 密码_last_changed

可以在list-access-keys子命令中找到其他一些信息:

? aws iam list-access-keys --user-name alex 
{
    "AccessKeyMetadata": [
        {
            "UserName": "alex", 
            "Status": "Active", 
            "CreateDate": "XXXX-XX-XXT01:33:31Z", 
            "AccessKeyId": "XXXXXXXX"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

因此,您也可以使用以下命令从此处获取“状态”和“创建日期”:

aws iam list-access-keys --user-name alex \
  --query "AccessKeyMetadata[].CreateDate" \
  --output text
Run Code Online (Sandbox Code Playgroud)

再次可以在以下位置找到更多信息:

? aws iam get-login-profile --user-name alex   
{
    "LoginProfile": {
        "UserName": "alex", 
        "CreateDate": "XXXX-XX-XXT01:33:31Z", 
        "PasswordResetRequired": false
    }
}
Run Code Online (Sandbox Code Playgroud)

您还可以通过以下方式获取访问密钥上次使用日期:

access_key_id=$(aws iam list-access-keys \
  --user-name alex \
  --query "AccessKeyMetadata[].AccessKeyId" \
  --output text)

aws iam get-access-key-last-used \
  --access-key-id $access_key_id 
Run Code Online (Sandbox Code Playgroud)

例如输出:

{
    "UserName": "alex", 
    "AccessKeyLastUsed": {
        "Region": "XXXXXX", 
        "ServiceName": "iam", 
        "LastUsedDate": "XXXX-XX-XXT05:28:00Z"
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为这涵盖了您询问的所有领域。显然,您需要围绕所有这些编写一些代码才能将它们组合在一起。

  • 谢谢亚历克斯。我感谢团结 (2认同)