我正在对 AWS 账户进行清理,发现很多我几乎肯定没有使用的角色。该账户使用了许多服务,因此手动检查不切实际。
有没有办法知道某个 AWS 角色被使用了多少次?如果可能的话,哪些服务和/或实例正在使用它?
答案1
目前没有使用 AWS CLI 的 SDK 来获取 IAM 角色的上次访问时间的方法。我今天向 AWS 支持确认了这一点。
目前,唯一的方法是使用 AWS 管理控制台。
- 选择您的 IAM 角色
- 单击“访问顾问”选项卡。
- 此选项卡的内容将显示各种服务(S3、EC2 等)的最后访问时间。
答案2
选择角色或用户时,选中“访问顾问”选项卡。该选项卡提供有关用户/角色上次访问的服务的信息。
答案3
如果您使用带有 awscli 的 IAM 用户,您可以执行以下操作:
aws iam get-user
这将打印当前 IAM 用户信息,例如:
{
"User": {
"UserName": "vasco",
"PasswordLastUsed": "1999-01-01T00:00:00Z",
"CreateDate": "1999-01-01T00:00:00Z",
"UserId": "AFUIDGSDOGDOG",
"Path": "/",
"Arn": "arn:aws:iam::235534637458:user/vasco"
}
}
答案4
对于 ec2 实例,我只需在 ec2 搜索选项中通过角色名称进行搜索,这对我很有帮助。如我们所见,IAM 角色显示在 ec2 实例的描述中。对于其他资源,我们也可以跟踪角色是否附加。因此,这导致角色名称中应该包含一些标签以指向范围的使用。
所以我的答案是,在创建角色之前,我们应该使用一些角色命名规则,以便以后我们可以轻松维护这些创建的角色。