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

如何查询拥有指定S3存储桶访问权限的所有AWS资源

S3存储桶关联访问权限快速查询方案

你当前桶策略无配置、所有访问权限都通过资源侧IAM策略定义的场景,不需要逐一核查账号内每一个资源的IAM策略,可通过以下AWS原生能力快速完成查询:

方法1:使用IAM Access Analyzer(优先推荐)

  • 这是AWS官方针对权限审计推出的原生工具,可自动反向匹配所有IAM实体的权限策略,直接输出对目标S3桶拥有有效访问权限的列表
  • 操作流程:
    1. 进入IAM控制台的「访问分析器」页面,提前启用账号维度的分析器(无额外费用)
    2. 选择「查找对外部资源的访问」,输入目标桶的ARN,格式为arn:aws:s3:::你的桶名,如果需要覆盖桶内对象的访问权限,可追加/*后缀
    3. 筛选条件选择「允许的访问」,即可得到所有有权限的IAM用户、角色、用户组列表,同时可直接查看对应策略的具体规则,工具会自动过滤带条件限制的无效权限(比如限定IP、要求MFA的规则会自动排除)
  • 额外优势:可以同时识别关联了对应IAM角色的云资源,比如EC2实例、Lambda函数、ECS任务角色等,直接关联到具体的业务资源。

方法2:AWS CLI批量匹配查询

如果偏好命令行操作,可以通过AWS CLI批量拉取全量IAM策略做匹配,示例操作如下:

  1. 先定义目标桶ARN变量:
    export TARGET_BUCKET_ARN="arn:aws:s3:::你的桶名"
  2. 批量查询所有IAM角色的内联策略中包含目标桶权限的条目:
aws iam list-roles --query 'Roles[*].RoleName' --output text | tr '\t' '\n' | while read role; do
  aws iam list-role-policies --role-name $role --query 'PolicyNames[*]' --output text | tr '\t' '\n' | while read policy; do
    aws iam get-role-policy --role-name $role --policy-name $policy | grep -q $TARGET_BUCKET_ARN && echo "角色 $role 下的策略 $policy 包含目标桶权限"
  done
done
  • 注意:该方法需要自行处理策略中的通配符、条件判断逻辑,适合有脚本开发能力的场景,也可以拓展到查询IAM用户、用户组、托管策略的匹配结果。

方法3:AWS Config自定义查询(适合常态化审计)

如果已经开启了AWS Config服务,可以直接编写自定义查询规则,筛选所有引用了目标桶ARN的IAM策略,还可以配置定时扫描,自动生成审计报告,适合需要长期监控桶权限的场景。

补充注意:如果你的AWS账号存在跨账号IAM信任、组织级SCP策略配置,需要额外对信任的外部账号权限、组织SCP规则做单独核查,避免遗漏跨账号的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 08:51:02