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

如何使用boto3列出绑定到角色的所有内联策略

问题原因

你调用的list_attached_role_policies接口设计用途就是查询绑定到指定IAM角色的托管策略(包含AWS托管策略、用户自主创建的客户托管策略),本身不会返回内联策略数据。

正确实现方法

获取角色绑定的内联策略需要使用IAM客户端的内联策略专属接口:

  • 第一步:调用list_role_policies接口,获取绑定到目标角色的所有内联策略名称列表,该接口默认分页返回,单次最多返回100条结果,策略数量较多时需要处理分页逻辑
  • 第二步:如果需要获取内联策略的具体权限文档,遍历第一步拿到的策略名列表,逐个调用get_role_policy接口,传入角色名和对应策略名即可。
可直接运行的代码示例
import boto3

# 初始化IAM客户端
iam_client = boto3.client('iam')
role_name = "替换为你的目标角色名"

# 自动处理分页,获取所有内联策略名
inline_policy_names = []
paginator = iam_client.get_paginator('list_role_policies')
for page in paginator.paginate(RoleName=role_name):
    inline_policy_names.extend(page['PolicyNames'])

print(f"绑定到角色{role_name}的内联策略列表:{inline_policy_names}")

# 如需获取每个内联策略的具体权限内容,执行以下逻辑
inline_policy_details = []
for policy_name in inline_policy_names:
    policy_resp = iam_client.get_role_policy(
        RoleName=role_name,
        PolicyName=policy_name
    )
    inline_policy_details.append({
        "PolicyName": policy_name,
        "PolicyDocument": policy_resp['PolicyDocument']
    })

# 打印策略详情
for policy in inline_policy_details:
    print(f"\n内联策略{policy['PolicyName']}的权限内容:")
    print(policy['PolicyDocument'])

注意:执行上述代码需要确保你使用的身份拥有iam:ListRolePolicies、iam:GetRolePolicy对应权限,否则会触发权限不足报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:12:24