【发布时间】:2022-04-27 21:50:03
【问题描述】:
我正在尝试获取带有特殊标签的角色列表
Python 3.9 版
Boto3 版本 1.16.25
这是我的代码
iam = boto3.client('iam', region_name='us-east-1')
roles = iam.list_roles()["Roles"]
print(roles)
结果:
{
"Path":"/",
"RoleName":"aws-***-delivery-role",
"RoleId":"AROA****LOIO",
"Arn":"arn:aws:iam::448*****770:role/aws-***-delivery-role",
"CreateDate":datetime.datetime(2017, 11, 28, 21, 13, 3, "tzinfo=tzutc())",
"AssumeRolePolicyDocument":{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"",
"Effect":"Allow",
"Principal":{
"Service":"firehose.amazonaws.com"
},
"Action":"sts:AssumeRole",
"Condition":{
"StringEquals":{
"sts:ExternalId":"448***770"
}
}
}
]
},
"MaxSessionDuration":3600
}
我没有看到标签
我也试过这个代码
iam = boto3.resource('iam', region_name='us-east-1')
roles = iam.roles.all()
但同样这些角色没有标签
只有当我运行这段代码时,我才能看到一个标签然后过滤它,但是 role.load() 每次都对 AWS 进行 API 调用,我有 3k 个没有 角色的角色。 load() 它不起作用。结果就是这么长
iam = boto3.resource('iam', region_name='us-east-1')
roles = iam.roles.all()
for role in roles:
role.load()
print(role.tags)
请给我一些建议或分享您的经验,我如何按标签过滤角色列表?
list_roles 应该返回带有标签的 JSON,但这不起作用
【问题讨论】: