You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看AWS特定IAM访问密钥关联权限及控制台未显示问题排查

别着急,这俩问题都是AWS日常管理里经常碰到的场景,我给你拆解一下解决方案:

一、查看特定IAM访问密钥关联的权限或角色

首先得明确:IAM访问密钥是和IAM用户(或不推荐使用的根用户)绑定的,所以要查权限/角色,得先找到密钥对应的用户,再顺藤摸瓜:

  • 第一步:用CLI定位密钥所属用户
    如果你有管理员权限,直接运行下面的命令(把AKIAXXXXXXXXXXXXXX替换成你的目标访问密钥ID):

    aws iam get-access-key-last-used --access-key-id AKIAXXXXXXXXXXXXXX
    

    输出里的UserName字段就是这个密钥的所属用户——如果是根用户的密钥,UserName会显示为你的根账户ID(比如123456789012)。

  • 第二步:查看该用户的权限
    找到用户后,就能查它的所有权限了:

    1. 查看附加的托管策略:
      aws iam list-attached-user-policies --user-name <你的用户名>
      
      这个会列出所有直接绑定到用户的AWS官方托管策略(比如AmazonS3FullAccess这类)。
    2. 查看内联策略:
      先列出用户的内联策略名称:
      aws iam list-user-policies --user-name <你的用户名>
      
      再用下面的命令查看具体策略内容:
      aws iam get-user-policy --user-name <你的用户名> --policy-name <策略名称>
      
    3. 查看用户所属组的权限:
      如果用户属于某个IAM组,组的权限会自动继承给用户,先查用户所属组:
      aws iam list-groups-for-user --user-name <你的用户名>
      
      再对每个组运行aws iam list-attached-group-policies --group-name <组名>查看组的托管策略。
  • 第三步:查看关联的角色
    注意:访问密钥本身不直接绑定角色,而是IAM用户可以扮演角色。要查用户能扮演哪些角色,可以:

    • 用命令模拟用户权限,检查是否有sts:AssumeRole权限:
      aws iam simulate-principal-policy --policy-source-arn arn:aws:iam::<账户ID>:user/<用户名> --action-names sts:AssumeRole
      
    • 或者在IAM控制台找到该用户,切换到权限标签,查看所有直接/间接权限,里面会包含可扮演的角色信息。
二、定位控制台中找不到的有效访问密钥

这种情况大概率是你没找对地方,或者权限限制了你的视野,按下面的步骤排查:

  • 先确认密钥所属账户和用户
    不管控制台能不能看到,先运行这个命令(需要管理员权限):

    aws iam get-access-key-last-used --access-key-id AKIAXXXXXXXXXXXXXX
    

    输出里的UserName和Account会直接告诉你密钥属于哪个用户、哪个账户——很多时候是你漏看了某个命名比较隐蔽的IAM用户。

  • 检查是否是根账户密钥
    如果UserName显示为你的根账户ID,那这是根账户的访问密钥。别去IAM控制台找,要去我的安全凭证页面(点击控制台右上角的账户名→我的安全凭证),在访问密钥部分查看——根密钥平时很少用,容易被忽略。

  • 排查IAM用户的可见性问题
    如果返回的是某个IAM用户名,但你在控制台搜不到,可能是你的管理员账户被限制了权限?比如缺少iam:ListUsers或iam:GetUser权限。这时候需要用拥有完整IAM管理权限的账户来排查。

  • 确认是否属于跨账户/组织成员账户
    运行aws sts get-caller-identity用该密钥直接调用,返回的Account字段就是密钥所属的账户ID——如果和你当前操作的账户不一致,那它属于Organizations里的其他成员账户,或者完全独立的另一个AWS账户。

  • 排除临时凭证的可能
    你说密钥被定期使用,临时凭证(比如角色的临时密钥)最长有效期只有12小时,所以大概率是长期IAM密钥。但如果是临时的,aws sts get-caller-identity返回的Arn会是arn:aws:sts::<账户ID>:assumed-role/<角色名>/<会话名>,这时候要找对应的角色即可。

内容的提问来源于stack exchange,提问作者marcodv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:37:32